Bouger une caméra dans une scène d'objets 3D

a marqué ce sujet comme résolu.
Auteur du sujet

Bonjour à tous,

Je souhaiterais permettre à l’utilisateur final de tourner autour de sphères dans une scène 3D, et de se déplacer en avant et en arrière dans ce monde 3D, comme on peut le faire dans Blender et AUtodesk Maya.

L’utilisateur peut tourner dans le monde en scrollant (i.e. : toutes les sphères tournent, d’un coup). Il peut se déplacer (en avant et en arrière) en tapant sur deux flèches adéquates du clavier.

Dans un premier temps, je préfère me concentrer sur la rotation du monde.

Pour ce faire :

  1. Je mets en place une PerspectiveCamera
  2. J’ajoute le listener d’événement setOnScroll, dans lequel je translationne la caméra décrite ci-dessus.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
PerspectiveCamera camera = new PerspectiveCamera(true);
camera.setNearClip(0.1);
camera.setFarClip(1000.0);
camera.setTranslateZ(-1000);
camera.setTranslateY(200);
scene.setCamera(camera);

scene.setOnScroll(event -> {
    camera.setTranslateX(camera.getTranslateX() + event.getDeltaY());
    camera.setTranslateY(camera.getTranslateY() + event.getDeltaY());
    camera.setTranslateZ(camera.getTranslateZ() + event.getDeltaY());

});

Problème

Toutefois, ça permet juste aux sphères de se déplacer jusqu’au coin haut gauche (en zoomant sur ces sphères par ailleurs). Ce n’est pas ce que je souhaite.

J’ai vraiment juste envie de permettre à l’utilisateur de regarder les sphères sous toutes leurs coutures/sous tous leurs angles, comme il pourrait le faire dans Blender et Maya.

Bref visiblement je suis sur la mauvaise voie… :-(

Édité par The-Aloha-Protocol

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte