ThreeJS 陰影條紋BUG


ThreeJS 開啟陰影正確做法:

1. 渲染器啟用陰影 renderer.shadowMap.enabled = true;
2. 燈光產生陰影 light.castShadow = true;
3. 物體遮擋陰影 obj.castShadow = true;
4. 地面顯示陰影 obj.receiveShadow = true;

無陰影效果

有陰影效果,產生了許多條紋

產生原因

1. 將四方塊設置為 不接收陰影 obj.receiveShadow = false; 可避免條紋,但四方塊上就沒有投影效果了。
2. 將材質的 let material = new THREE.MeshLambertMaterial( { color: color, side: THREE.DoubleSide } ); side屬性去掉也可以正常。
3. 或者將材質的投影面設置為背面也可解決 let material = new THREE.MeshPhysicalMaterial( { color: color, side: THREE.DoubleSide, shadowSide: THREE.BackSide } );

正確陰影效果

總結:

材質的 sideshadowSide 設置對陰影產生影響,需特別注意;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM