2017-09-15 1 views
0

Ich folgte dem ersten Tutorial für three.js, bin aber ziemlich schnell stecken geblieben und habe versucht, der Szene ein Punktlicht hinzuzufügen. Egal wie ich meinen Code finagle, das Punktlicht leuchtet den Würfel niemals auf.So konfigurieren Sie ein Punktlicht in 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); 
} 

In dem obigen Code kann ich das Licht Helfer sieht angezeigt, und der grüne Würfel wird durch das Umgebungslicht beleuchtet, aber kein Licht kommt von dem Punktlicht (eingebundene Bild sehen). Was habe ich verpasst? Wie bekomme ich das Punktlicht, um den Würfel auch zu beleuchten? code result

Antwort

3

Das Licht funktioniert, aber Sie müssen die Farbe des Lichts oder des Materials ändern.

Momentan leuchten Sie rein rotes Licht auf einem rein grünen Material. Die Farbe des Materials bestimmt, welche Farbkomponenten (und in welcher Menge) vom Material reflektiert werden. Und da reines rotes Licht keine grüne Komponente hat, scheint das Licht das Objekt vollständig zu verfehlen.

Dies ist kontraintuitiv, weil es in unserer physischen Welt selten ein reines rotes Licht und ein reines grünes Material gibt.

+0

Ahh, das war das Problem. Daran hätte ich nie gedacht. Vielen Dank! – ORL

Verwandte Themen