我发现我的点光源的阴影立方体贴图越来越不能让我的物体从我的光线中获得越来越远。帧缓冲和附加深度渲染缓冲和颜色纹理是3000x3000像素。
在大约4000个单位的距离看起来很傻:
在大约200个单位的距离,它看起来好多了(我可能会想出下一步如何做软阴影)。
在更远的距离,根本没有任何东西被写入阴影通道的深度缓冲区。我认为这是因为我的目标是远离光源的观点,它最终会达到使用不到一个像素的程度?
我也注意到,在非常大的范围内,我的物体似乎......恶化,因此没有画出一半的三角形。
考虑到这些因素,我通常应该使用3D距离的限制是什么?我正在创造一个空间场景,我可以将距离缩放到某种良好的中间地带,我只是想弄清楚这个中间地带是什么;为什么超过它(或者甚至更少)不起作用。
是否与z深度精度有关?
我认为这也适用于规模。有关如何处理像太阳系这样的场景的任何提示或技巧。距离非常大,还是非常小的尺度?
答案 0 :(得分:1)
没有完美的距离。你将永远体验到这些神器,因为你的影子将被投射到更大,更大的表面区域,你走的越远。
您的问题的解决方案是here。本教程中提到了一种用于动态调整阴影的低成本自适应方法。它对复杂场景很有用。如果你计划你的项目就像现在一样简单,那么这可能是一个过度工程 - 而只是调整你的阴影贴图的近/远平面。虽然我认为,这里的主要问题是你使用点光源,所以我想你的阴影贴图是一个立方体贴图?其中的大部分决议都被浪费了。
此外,如果您计划对某些类型进行空间模拟,点光可能不是最佳选择,因为空间大多是空的。你的大部分阴影贴图解析都会浪费掉。相反,为每个太阳 - 行星对专用一个定向光,并在需要渲染时计算它们。本教程将教授如何调整阴影贴图,以便根据您的视图组合更多目标。它可以最大限度地利用阴影映射分辨率。