我正在渲染一个大的矩形表面(带有纹理的扁平立方体)。当尺寸超过10米左右时,表面的远端部分会被夹住。在研究该主题时,我发现我的问题可能与设置近裁剪平面和远裁剪平面有关(请参阅:ARCore – Rendering objects 200m far from camera)。如何设置这些参数?这是我渲染表面的方式:
fun renderImage(arFragment: ArFragment, anchor: Anchor, renderable: Int, width: Float, length: Float, x: Float, y: Float, z: Float, nodeName: String, scale: Float) {
Texture.builder().setSource(BitmapFactory.decodeResource(arFragment.resources, renderable))
.build()
.thenAccept {
MaterialFactory.makeTransparentWithTexture(arFragment.context, it)
.thenAccept { material ->
val modelRenderable = ShapeFactory.makeCube(
Vector3(width, 0.000001f, length),
Vector3(x,y,z), // position
material)
addNodeToScene(arFragment, anchor, modelRenderable, nodeName, scale)
}
}
}
其中length = 200f;宽度= 100f;
根据上述帖子中的答案-0:“目前(2019年3月),无法设置ARCamera的远裁剪平面和近裁剪平面。”还是这样吗?有人可以建议解决方法吗?
我知道可以得到投影矩阵(https://developers.google.com/ar/reference/java/arcore/reference/com/google/ar/core/Camera#getProjectionMatrix(float[],%20int,%20float,%20float))。但是我该如何设置?