2015-07-26 14 views
2

J'utilise threejs pour afficher un objet et OrbitControls pour contrôler le déplacement de la scène avec ma souris. Ma scène comprend également un DirectionalLight.three.js mettre à jour la lumière OrbitControls

Lorsque la scène s'affiche pour la première fois, le DirectionalLight allume mon objet de la manière attendue. Cependant, quand je modifie la scène en tournant à l'aide de ma souris, la source DirectionalLight ne se met pas à jour et fait briller la lumière du nouvel angle comme je le souhaite.

Quelqu'un peut-il expliquer comment je peux mettre à jour ma scène afin que la lumière se mette à jour en fonction de ma rotation avec OrbitControls?

+1

Montrez votre code. 'controls = new THREE.OrbitControls (camera)' est utilisé pour contrôler une caméra, pas une scène. – WestLangley

Répondre

2

Si vous voulez que la relation entre la direction de la lumière et la vue de la caméra reste constante, je vous suggère d'ajouter la lumière à la CAMÉRA, pas à la SCÈNE.

Ainsi, au lieu de, disons scene.add(dirLight) vous utilisez camera.add(dirLight)