首页 > 解决方案 > 如何在 Android Studio 的 ARcore 中设置投影矩阵远裁剪平面参数

问题描述

我正在渲染一个大的矩形表面(带有纹理的扁平立方体)。当尺寸超过 10 米左右时,表面的远端部分会被剪掉。在研究该主题时,我发现我的问题可能与设置近距和远距剪切平面有关(请参阅:ARCore – 渲染距相机 200m 远的对象)。如何设置这些参数?这是我渲染表面的方式:

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)
                    }
        }

}

其中长度=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))。但是我该如何设置呢?

标签: augmented-realityarcoreclippingfrustum

解决方案


推荐阅读