Javascript 3.js暗疮的成因及修复方法
为了让所有阴影都被渲染,我将Javascript 3.js暗疮的成因及修复方法,javascript,three.js,model,Javascript,Three.js,Model,为了让所有阴影都被渲染,我将shadow.camera.top/bottom/left/right设置为平行光(投射阴影),但它会导致阴影痤疮。 我尝试使用shadow.bias,但仍然不对。是什么导致暗疮?如何修复 这是我的密码 light=新的三方向灯(0xffffff); 光。位置。设置(38,82,1); light.castShadow=true; //light.shadow.bias=-0.001; light.shadow.mapSize.width=2048; light.s
shadow.camera.top
/bottom
/left
/right
设置为平行光(投射阴影),但它会导致阴影痤疮。
我尝试使用shadow.bias
,但仍然不对。是什么导致暗疮?如何修复
这是我的密码
light=新的三方向灯(0xffffff);
光。位置。设置(38,82,1);
light.castShadow=true;
//light.shadow.bias=-0.001;
light.shadow.mapSize.width=2048;
light.shadow.mapSize.height=2048;
light.shadow.camera.near=0.1;//和照相机一样
light.shadow.camera.far=1000;//和照相机一样
light.shadow.camera.top=120;
light.shadow.camera.bottom=-120;
light.shadow.camera.left=120;
light.shadow.camera.right=-120;
场景。添加(灯光);
谢谢 将
shadow.bias
设置为-0.0005
似乎可以移除阴影瑕疵。但是,阴影的质量仍然不好,因为阴影的边缘看起来非常块状
考虑将属性
renderer.shadowMap.type
设置为THREE.PCFSoftShadowMap
,这将显著提高阴影质量。减少阴影摄影机截锥体的大小,只在某个“焦点”区域投射阴影,这可能也是一个好主意。另一个选项是将高质量照明烘焙到光照贴图中,然后将其应用于城市材质的光照贴图
属性。您也可以将阴影贴图的分辨率提高到4096 x 4096
,但这会对性能产生影响,尤其是在移动设备上。您能用一个例子来说明这个问题吗?调整灯光、阴影、偏差没有任何帮助时,这很奇怪。顺便说一句:阴影摄影机不必使用与实际摄影机相同的near
和far
值来渲染场景。我建议您使用THREE.CameraHelper
来可视化阴影摄影机,并使平截头体尽可能紧密。您可以像soscene.add(new THREE.CameraHelper(light.shadow.camera))那样创建辅助对象代码>。这是我的密码。:)由于没有从后端正确加载JSON文件(我可以在网络选项卡中看到状态为“挂起”),因此小提琴似乎不起作用。你能在这里共享JSON文件吗?然后我可以做一个本地测试
tolight1.shadow.camera.left=-side
和light1.shadow.camera.right=-side
tolight1.shadow.camera.right=side代码>。看起来好多了。我认为用3DsMax或搅拌机烘焙是最好的解决方案。:)