我在场景中有几个对象。而且我希望他们在一个宽阔的平面上移动,这将会受到阴影的影响。如果我只使用一个点光源或一个非常大的定向光源,当一个物体移动到角落时,它的阴影会变得非常粗糙(粗糙的阴影边缘)。像这样:
所以我想知道我是否应该为它们上面的每个物体使用一个灯光并按照它们来投射高质量的阴影边缘?在某些情况下,我无法将shadow.mapsize设置得更高。
答案 0 :(得分:3)
有很多东西可以控制阴影质量。
对我来说,你的影子相机左/右/上/下设置得太大了,它会把阴影投射到太大的区域。
阴影投射灯相当昂贵,所以我会避免尝试通过多灯来补偿。
尝试减少light.shadow.camera左/右/上/下以更好地将地图聚焦在您的对象所在的位置。还尝试将阴影贴图大小增加到1024或2048平方。
另一个有用的方法是使用THREE.PCFShadowmapping而不是默认值。这样可以平滑阴影的边缘。
编辑:同时检查PCFSoftShadowMapping ..渲染速度较慢,但会大大平滑阴影边缘。
正确制作阴影贴图是一个棘手的过程,需要大量的摆弄。
另外,尝试将DirectionalLightHelper连接到灯光,并将CameraHelper连接到灯光相机。这些将帮助您了解阴影投射区域的大小以及物体指向的位置。