4 votes

Three.js Child de la caméra n'est pas visible

J'essaie d'attacher un objet à la caméra pour qu'il puisse être utilisé plus ou moins comme un élément de l'interface graphique.

Mon appareil photo est défini comme suit :

camera = new THREE.PerspectiveCamera( 45, windowWidth / windowHeight, 1, 2000 );
camera.position.z = 100;

Dans mon init(), je définis l'objet à ajouter :

    obj = new THREE.Mesh(new THREE.CubeGeometry(5, 5, 5, 1, 1, 1),
new THREE.MeshBasicMaterial({ color: 0xFFFFFF } ));
    obj.position.set( 0, 0, -50);
    camera.add(obj);

Mais, le bloc ne s'affiche pas. J'ai essayé d'ajouter cet objet à la scène, et il est visible. J'ai ajouté une boucle à animate() qui fera glisser la position z de l'objet entre (-50, 50), mais je ne peux pas le voir.

J'ai essayé d'utiliser camera.lookAt(obj) et en enregistrant la position mondiale de l'objet (position de l'objet + position de la caméra), et ils se comportent comme prévu. La position du monde semble être ce à quoi je m'attendais, et camera.lookAt fait basculer la caméra lorsque la position z passe par 0.

Je m'excuse de ne pas fournir un exemple de code plus clair, mais je ferai de mon mieux pour coopérer avec quiconque essaiera de m'aider. Merci !

15voto

WestLangley Points 28444

Avez-vous ajouté la caméra à la scène ?

scene.add( camera );

En général, il n'est pas nécessaire d'ajouter la caméra à la scène, mais dans ce cas, l'objet est un enfant de la caméra, donc vous devez le faire.

trois.js r.58

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X