2016-03-09 76 views
2

我有一個繪製球體的簡單示例。我在位置(x,y,z)=(0,100,0)和(0,-100,0)(即在南半球和北半球)上增加了兩盞燈。你可以看到this linkWebGL - 獲取燈光的靜態位置

我想阻止燈光跟隨鼠標旋轉,我看到了OpenGL的不同方法,但我不知道如何使用WebGL實現它。

下面的代碼片段定義這2個燈:

// Lights for scene 
    var lights = []; 
    lights[0] = new THREE.PointLight(0xffffff, 1, 0); 
    lights[1] = new THREE.PointLight(0xffffff, 1, 0); 

    lights[0].position.set(0, 100, 0); 
    lights[1].position.set(0, -100, 0); 

    scene.add(lights[0]); 
    scene.add(lights[1]); 

回答

0

你應該燈光添加到攝像機,而不是場面。這樣的燈光位置是相對於相機的:

camera.add(lights[0]) 
camera.add(lights[1]) 

,並確保你添加燈光之後相機添加到場景:

scene.add(camera) 
+0

看來燈帶您的解決方案消失並且球體的顏色也被修改。你確定這是一個好的解決方案嗎? – youpilat13

+0

在將燈光添加到場景後,您是否將相機添加到了場景中?這可能是這個問題(如在說:http://stackoverflow.com/questions/25740277/three-js-add-light-to-camera)。 (我更新了答案) – vabada

+0

謝謝,它的工作原理! – youpilat13