如何在Android Studio中的ARcore中设置ProjectionMatrix远裁剪平面参数

时间:2019-03-20 19:27:01

标签: augmented-reality arcore clipping frustum

我正在渲染一个大的矩形表面(带有纹理的扁平立方体)。当尺寸超过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))。但是我该如何设置?

0 个答案:

没有答案