Я рендеринг большой прямоугольной поверхности (плоский куб с текстурой). Когда размеры больше 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)). Но как мне ее установить?