Three.js University OrbitControls

Contrôler la Caméra avec OrbitControls

Une version plus récente de cet article est disponible !

Dans une application 3D, implémenter le contrôle de la caméra est une étape indispensable pour proposer du contenu interactif et intuitif.

Dans cet article, nous étudierons une classe permettant de contrôler facilement la caméra : OrbitControls.

Camera Controls
OrbitControls

La classe OrbitControls

La classe de contrôle OrbitControls permet de faire orbiter la caméra autour d’une cible. Pour l’utiliser, nous devons l’importer depuis les add-ons de Three.js :

import { OrbitControls } from 'https://threejs.org/examples/jsm/controls/OrbitControls.js';

Puis, nous créons une instance de OrbitControls dans notre code :

controls = new OrbitControls( camera, renderer.domElement );

Son constructeur accepte deux paramètres : Notre caméra et le moteur de rendu de notre application.

Les propriétés de OrbitControls

Cette classe met a notre disposition plusieurs propriétés permettant de régler son fonctionnement selon nos besoins ! Dans ce chapitre nous en étudierons trois :

  • enableDamping
  • dampingFactor
  • maxpolarAngle
controls.enableDamping = true;
controls.dampingFactor = 0.05;
controls.maxPolarAngle = Math.PI / 2;

La propriété enableDamping

Cette propriété de classe est utilisée pour activer l’inertie : Un ralentissement progressif du mouvement de caméra.

La valeur de cette propriété doit être définie sur true pour activer l’inertie. Dans ce cas, il est nécessaire d’appeler la méthode update() de OrbitControls dans la boucle principale.

function animate()
{
	requestAnimationFrame( animate );
	controls.update(); // controls.enableDamping = true
	renderer.render( scene, camera );
}

La propriété dampingFactor

Cette propriété de classe représente le coefficient d’inertie de la caméra.

La propriété maxPolarAngle

Il est possible de de définir une inclinaison maximale de la caméra grâce a la valeur de la propriété maxPolarAngle.
Dans notre exemple, nous souhaitons que l’inclinaison maximale de la caméra soit de Math.PI / 2.

OrbitControls Camera maxPolarAngle
OrbitControls – maxPolarAngle

Résultat final

See the Pen Orbit Controls by Thomas (@thomassifferlen) on CodePen.

(2 commentaires)

Les commentaires sont fermés.