簡體   English   中英

ThreeJS陰影在牆附近表現得很有趣

[英]ThreeJS shadows acting funny near walls

所以我在ThreeJS中處理陰影。 我正在使用帶有WebGLRenderer的Perspective Camera。 照明設置就是這樣。

var light = new THREE.SpotLight(0xdddddd, 1);
light.castShadow = true;
light.shadow = new THREE.LightShadow(new THREE.PerspectiveCamera(60, 1, 1, 2500));
light.shadow.bias = 0.0001;
light.shadow.mapSize.width = 1024;
light.shadow.mapSize.height = 1024;
light.position.set(100, 800, 0);

當我關閉牆壁時,我得到的是一個被遮擋的陰影。 我和Shadow Bias一起玩過,但是對我來說,這完全是黑暗中的一擊。

我得到的是這種奇怪的陰影行為。 我已經附上了屏幕截圖,並用紅色圓圈和指向它的箭頭圈了起來。 請注意,如何將陰影截斷,就好像光線從牆壁反射出來並消除陰影一樣。 有什么辦法可以避免這種情況?

在此處輸入圖片說明

陰影攝像機的挫敗感很可能會縮小。 您可以使用陰影攝像頭助手進行檢查

var helper = new THREE.CameraHelper( light.shadow.camera );
scene.add( helper );

由於性能,陰影攝像機的尺寸受到限制,但是您可以根據需要調整每個平面的角度,也可以僅將其角度增加(例如,從60增大到90):

light.shadow = new THREE.LightShadow(new THREE.PerspectiveCamera(90, 1, 1, 2500));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM