Как установить параметр ProjectionMatrix для плоскости отсечения в ARcore в Android Studio - PullRequest
0 голосов
/ 20 марта 2019

Я рендеринг большой прямоугольной поверхности (плоский куб с текстурой). Когда размеры больше 10 метров или около того, дистальная часть поверхности обрезается. При изучении темы я обнаружил, что моя проблема может иметь отношение к настройке ближних и дальних плоскостей отсечения (см .: ARCore - рендеринг объектов на расстоянии 200 м от камеры ). Как мне установить эти параметры? Вот как я рендерю поверхность:

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 г.) нет способа установить плоскость отсечения ARCamera и плоскость отсечения вблизи». Это все еще так? Кто-нибудь может предложить обходной путь, пожалуйста?

Я знаю, что есть далеко, чтобы получить Матрицу проекции (https://developers.google.com/ar/reference/java/arcore/reference/com/google/ar/core/Camera#getProjectionMatrix(float[],%20int,%20float,%20float)). Но как мне ее установить?

...