2012-09-28 86 views
0

我試圖創建threejs卡通天氣視覺,所以我決定先成立了一步到位的一個美麗的一天一個基本的場景,但我無法投射陰影。我複製了燈光的代碼從這裏計算器和示例工作,但是當我在我的項目中使用它,它失敗。three.js所投射陰影的麻煩

這裏的例子:

https://dl.dropbox.com/u/12939276/ImportedScene/index.html

我想光這是盒子,投下的陰影裏面,就好像它是太陽。我用了點光,因爲我讀的地方,你必須使用正視相機的方向燈投射陰影?

有什麼建議嗎?

謝謝!

回答

2

您有需要一些控制檯錯誤加以處理,但你的spotlight基本工作。

首先,添加一個攝像頭控制器,所以你可以旋轉視圖並查看發生了什麼:

controls = new THREE.OrbitControls(camera); 

然後更新控制在動畫功能:

controls.update(); 

添加一些軸,所以你可以得到一個參照系:

scene.add(new THREE.AxisHelper()); 

你會看到你的聚光燈太近了。相反,設置:

light.position.set(5, 5, -5); 

另外,如果你想的話,陰影平截頭體可以減小尺寸。

2

首先,只有DirectionalLight的和Spotlight能夠投射陰影。

然後,你必須激活陰影:

renderer.shadowMapEnabled = true; 
directionalLight.castShadow = true; 
object3D.castShadow = true; 
anOtherObject3D.receiveShadow = true; 
+1

優秀片斷的解決方案! – xmoonlight