2016-12-02 42 views
0

我有一個物體將其材質淡化爲50%的不透明度,但我注意到陰影不隨其不透明度而改變。ThreeJS中的陰影黑暗和物體不透明度

如果對象的不透明度爲50%alpha'd。我希望看到的是物體的陰影率達到100%的50%。

使用threejs處理這個問題的好方法是什麼?

+0

你是什麼意思?影100%黑暗,但你不想它是? –

+0

如果一個物體的不透明度爲50%,我希望它的影子能夠達到100%的陰影的50%。 – yeahdixon

回答

1

有一個shadowMaterial這是不可見的,但只能渲染陰影。您可以設置其opacity模仿陰影黑暗,這裏是一個演示:

http://jsfiddle.net/f17Lz5ux/5336/

var planeMaterial = new THREE.ShadowMaterial(); 
planeMaterial.opacity = 0.5; 
var shadowPlane = new THREE.Mesh(geometry, planeMaterial); 
shadowPlane.receiveShadow = true; 

缺點:在老版本出現了shadowDarkness - 屬性已被刪除。現在你需要額外的幾何圖形和材質來模擬一個簡單的屬性。

+1

很好的答案,是有幫助的。還要考慮到'陰影明暗'不允許改變不透明度,只有黑暗(因此而得名)。 shadowMaterial更靈活:你可以改變陰影的不透明度和顏色來創建許多複雜的效果。 – taseenb