Saltar al contenido principal

Seguimiento y problemas de la cámara

El movimiento de la cámara 6DoF no funciona

Problema

Cuando muevo el teléfono, la posición de la cámara no se actualiza.

Resolución

Compruebe la posición de la cámara en su escena. La cámara NO debe estar a una altura (Y) de cero. Ajústalo a un valor distinto de cero. La posición Y de la cámara al inicio determina efectivamente la escala del contenido virtual en una superficie (por ejemplo, menor y, mayor contenido)

El objeto no sigue la superficie correctamente

Problema

El contenido de mi escena no parece "pegarse" correctamente a una superficie

Resolución

Para colocar un objeto sobre una superficie, la base ** del objeto tiene que estar a una altura de Y=0**

Nota: fijar la posición a una altura de Y=0 no es necesariamente suficiente.

Por ejemplo, si la transformación de tu modelo está en el centro del objeto, colocarla en Y=0 hará que parte del objeto esté por debajo de la superficie. En este caso tendrás que ajustar la posición vertical del objeto para que la parte inferior del objeto se sitúe en Y=0.

A menudo resulta útil visualizar la posición del objeto respecto a la superficie colocando un plano semitransparente en Y=0.

Ejemplo de A-frame

<a-plane
position="0 0 0"
rotation="-90 0 0"
width="4"
height="4"
material="side: double; color: #FFFF00; transparent: true; opacity: 0.5"
shadow>
</a-plane>

ejemplo tres.js

  // Crea un Plano 1x1 con un material amarillo transparente
var geometry = new THREE.PlaneGeometry(1, 1, 1, 1); // THREE.PlaneGeometry (width, height, widthSegments, heightSegments)
var material = new THREE.MeshBasicMaterial({color: 0xffff00, transparent:true, opacity:0.5, side: THREE.DoubleSide});
var plane = new THREE.Mesh(geometry, material);
// Gira 90 grados (en radianes) a lo largo de X para que el plano quede paralelo al suelo
plane.rotateX(1.5708)
plane.position.set(0, 0, 0)
scene.add( plane );