3

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

对于单目渲染,实现者应该随意忽略 FieldOfView,而是创建一个透视矩阵,其中包含单目渲染所需的任何视野

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

4

1 回答 1

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);
    }
}
于 2016-08-05T14:26:20.523 回答