首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络游戏 >

D3D9 点光源阴影上的噪点是咋回事

2013-11-23 
D3D9 点光源阴影上的噪点是怎么回事?我参考http://http.developer.nvidia.com/GPUGems/gpugems_ch12.html

D3D9 点光源阴影上的噪点是怎么回事?
我参考http://http.developer.nvidia.com/GPUGems/gpugems_ch12.html试做了下点光源的阴影,基本正确,就是噪点太厉害,不知道怎样消除,请过来人指点一下,谢了。
D3D9 点光源阴影上的噪点是咋回事

图上是模拟的房间,顶上那白色方块算是灯的位置吧。那一块块黑斑就是我想去掉的东西。
我试过以下方法都不见效:1、用教程中提供的几种使用偏移值的方法,噪点似乎跟偏移值没有关系。2、缩放六个面的视图矩阵中的远近切平面。3、改变阴影图的分辨率和阴影图的精度。
教程中的下面一段我没看明白用意,我不知道fGeometryScale的值应该怎样取,所以没有用,不知它能否解决问题
12.2.5 The Range of Values for Geometry
To minimize rendering artifacts, we put all our geometry into a -0.5...+0.5 range (or 0..1). This adds accuracy to our calculations, especially if we use 16-bit precision and integer textures. We can scale our geometry at load time or in the vertex shader, using vertex shader code such as this:
o.vPositionWorld = mul(vPosition, matWorld) *  fGeometryScale;

我还发现,光源离相机(就是我们的视线)越远,光源附近的噪点面积越大,也越严重,远处没有;六个面中,头顶上的那一块最严重。
请大侠们帮分析下原因,谢谢各位了。
[解决办法]
问题可能存在于两方面:
1. 深度图有问题
2. shadow receive部分的shader有问题,关于阴影边缘模糊算法部分检查一下.
[解决办法]
信息量略大啊,我搞搞试试

热点排行