【问题标题】:360 panorama viewer with rajawali + VR howto change FieldOfView带有 rajawali + VR 的 360 全景查看器如何更改视野
【发布时间】:2016-07-29 14:44:27
【问题描述】:

我正在尝试使用 rajawali + vr(Cardboard 工具包)创建一个 360 度图像查看器。 当我在 CardboardView 上禁用 VR 模式时,我对渲染器中的视野属性所做的更改无效。 在 Google Cardboard docs 我发现视图会忽略它

对于单目渲染,实现者可以随意忽略 FieldOfView,而是创建一个具有单目渲染所需视野的透视矩阵

我的问题是我该怎么做? 我应该在哪里实现它,渲染器和 CardboardView 都没有设置透视矩阵(float [])的方法?

【问题讨论】:

  • Keiner 你得到你的解决方案了吗?其实我也在寻找这样的解决方案。
  • @KrunalIndrodiya 实际上不是。我已经切换到这个framework,但如果你有一个指向你的解决方案的链接或提示,我将不胜感激。
  • 感谢重播,其实我也在寻找 android 中的全景查看器,它可以 360 度显示全景图像。而且我还必须控制全景速度和其他东西。谷歌为此提供了图书馆,但无能为力。那么,问题是 panframe 是否支持全景图像 360?
  • 首先 panframe 不是免费的,其次它在控制方面受到限制,至少它也有它的错误。所以我认为这不是一个真正的解决方案
  • 谢谢。你对其他框架有什么想法吗?你有panframe链接吗,我可以下载吗?

标签: android google-cardboard rajawali rajawalivr


【解决方案1】:

更新设备参数似乎总是被 gvr 视图覆盖

但是如果你反编译 FieldOfView 类,你会得到:

public void toPerspectiveMatrix(float near, float far, float[] perspective, int offset) {
    if(offset + 16 > perspective.length) {
        throw new IllegalArgumentException("Not enough space to write the result");
    } else {
        float l = (float)(-Math.tan(Math.toRadians((double)this.left))) * near;
        float r = (float)Math.tan(Math.toRadians((double)this.right)) * near;
        float b = (float)(-Math.tan(Math.toRadians((double)this.bottom))) * near;
        float t = (float)Math.tan(Math.toRadians((double)this.top)) * near;
        Matrix.frustumM(perspective, offset, l, r, b, t, near, far);
    }
}

【讨论】:

  • 好的,看起来这可能是正确的方法。我试试看,谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多