我正在尝试使用rajawali + vr(Cardboard toolkit)创建360图像查看器。 当我在CardboardView上禁用VR模式时,我在渲染器中对Field of View属性所做的更改无效。 在Google Cardboard docs中,我发现视图会忽略它
对于单眼渲染,实现者应该随意忽略FieldOfView,而是创建一个透视矩阵,其中包含单眼渲染所需的任何视野
我的问题是我该怎么做? 我应该在哪里实现它,渲染器和CardboardView都没有设置perspectiveMatrix(float [])的方法?
答案 0 :(得分: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);
}
}