2017-09-15 4 views
0

J'ai suivi le tutoriel de démarrage de three.js mais je me suis rapidement bloqué en essayant d'ajouter un point lumineux à la scène. Peu importe comment je finagle mon code, le point lumineux n'allume jamais le cube.Comment configurer un point lumineux dans three.js

var scene = new THREE.Scene(); 
var camera = new THREE.PerspectiveCamera(75, 
      window.innerWidth/window.innerHeight, 0.1, 1000); 
var renderer = new THREE.WebGLRenderer(); 
renderer.setSize(window.innerWidth, window.innerHeight); 

document.body.appendChild(renderer.domElement); 

camera.position.z = 55; 

var light = new THREE.PointLight(0xff0000, 1, 100, 2); 
light.position.set(20,0,20); 
light.castShadow = true; 

scene.add(light); 

var spheresize = 1; 
var pointLightHelper = new THREE.PointLightHelper(light, spheresize); 
scene.add(pointLightHelper); 

var ambient = new THREE.AmbientLight(0x303030); 
scene.add(ambient); 

var cube_geometry = new THREE.BoxGeometry(10,10,10); 
var cube_material = new THREE.MeshLambertMaterial({color:0x00ff00}); 
var cube = new THREE.Mesh(cube_geometry, cube_material); 
scene.add(cube); 

animate(); 


function animate(){ 
    requestAnimationFrame(animate); 

    cube.rotation.y += 0.01; 

    renderer.render(scene, camera); 
} 

Dans le code ci-dessus, je peux voir l'aide de lumière affichée, et le cube vert est éclairé par la lumière ambiante, mais pas de lumière vient de la lumière ponctuelle (voir image ci-jointe). Qu'ai-je manqué? Comment puis-je obtenir la lumière ponctuelle pour illuminer le cube? code result

Répondre

3

La lumière fonctionne bien mais vous devez changer la couleur de la lumière ou du matériau.

Actuellement vous brillez de la lumière rouge pure sur un matériau vert pur. La couleur du matériau détermine les composants de couleur (et en quelle quantité) sont réfléchis par le matériau. Et puisque la lumière rouge pure n'a pas de composante verte, la lumière semble manquer complètement à l'objet. Ceci est contre-intuitif parce que dans notre monde physique il y a rarement une lumière rouge pure et un matériau vert pur.

+0

Ahh, c'était le problème. Je n'aurais jamais pensé à ça. Merci beaucoup! – ORL