¿Es posible colocar un objeto justo encima de una persona que esté 30 o 50 metros más arriba?
Cuando trato de colocar un objeto vinculado al ancla, ¿es visible en 20 metros y no visible en 40 metros?
¿Por qué sucede esto y cómo puedo configurar esto?
Es un problema de eliminación de frustum culling en ARCore: los objetos que no están dentro del área visible de la cámara frustum no se renderizarán. Por lo general, FoV (campo de visión) en los dispositivos Android es de alrededor de 60 grados en horizontal (la apertura vertical depende de la relación de aspecto). Viewing frustum culling es el proceso de eliminar objetos que se encuentran completamente fuera del view frustum del proceso de renderizado, lo que reduce significativamente la carga computacional de la CPU y la GPU. Y no olvide que los planos de recorte cercanos y lejanos también son parte del frustum.
Para configurar correctamente la visibilidad de sus objetos, simplemente use la siguiente recomendación que puede encontrar AQUÍ y AQUÍ .
Para saber más sobre el
frustum culling, lea este útil artículo .
Para devolver una matriz de proyección para renderizar contenido, use el siguiente método java:
public void getProjectionMatrix (float[] dest, int offset, float near, float far); Puedo usarlo de esta manera en el archivo MainActivity.java :
// Getting Projection Matrix float[] projectionMtx = new float[16]; arSession.getProjectionMatrix(projectionMtx, 0, 0.5f, 201.0f); // Setting Projection Matrix arRenderer.setProjectionMatrix(projectionMtx); ... o de esta manera en el archivo MainActivity.kt :
// Getting Projection Matrix private fun computeProjectionMatrix(): FloatArray { val projectionMtx = FloatArray(16) session.getProjectionMatrix(projectionMtx, 0, 0.5f, 201.0f) return projectionMtx } // Setting Projection Matrix renderer.setProjectionMatrix(computeProjectionMatrix())Espero que esto ayude.