Common Techniques to Improve Shadow Depth Maps
来源:互联网 发布:卖家中心登陆淘宝网 编辑:程序博客网 时间:2024/04/30 15:51
http://msdn.microsoft.com/en-us/library/ee416324(VS.85).aspx
dx sdk上的一个文章,比较系统和全面的介绍了shadow map中各种遇到的问题,和解决方案。
ftp://download.nvidia.com/developer/presentations/2004/GPU_Jackpot/Shadow_Mapping.pdf
还有nv的一个比较老的,内容很相似。
Perspective Aliasing
精度不够的,shadow大锯齿:
解决:cascaded shadow map比较合适。
projective alising
surface和光线平行的时候,锯齿很可怕,这个也是精度问题,和perspective alising一个解决方法。
self shadow
类似z fighting的问题,也是精度问题:
单纯图中这个问题depth bias一下就好,但是self shadow问题比这多很多啊,但是bias多了会像下面这样,也很悲剧:
一些常用解决方案:
- depth bias:直接看api就好,里面有slope参数。
- tight projection:
shadow frustum尽可能的不浪费,near,far,left, right可以根据view camera和要render的obj的bounding box来尽可能的缩紧。
但是准确的判定有可能造成精度变化大,影子看起来随着camera的变化也乱变,做出各种情况下都适用的解决方案也挺麻烦和复杂的。
- 以texel size为单位来移动lighting,这样锯齿保持稳定,不会发生慢慢锯齿蠕动的恶心事情
代码也很直接,用一个floor操作符就好。
nv文章里面一再提起的就是在精度不足情况下,几乎任何算法都是有纰漏的。
很多时候问题的解决是“art instead of science”。
- Common Techniques to Improve Shadow Depth Maps
- Common Techniques to Improve Shadow Depth Maps
- 5 Techniques to Improve Your Server Logging
- Five Invaluable Techniques to Improve Regex Performance
- Reflective Shadow maps
- Variance Shadow Maps
- Cascaded Shadow Maps
- 译Variance Shadow Maps
- Better shadow maps
- Variance Shadow Maps
- Ogre Depth Shadow Mapping
- How to improve morale
- Error to improve
- Ways to Improve Reading
- Real-time Shadow Algorithms and Techniques
- Real-time Rendering - Shadow Algorithms and Techniques
- Implementing Shadow Maps on Mainstream Graphics Hardware
- I need to improve myself
- 系统(C)盘总文件大小与占用空间不符的解决办法
- linux下测试RTC驱动date和hwclock
- 关于程序输出音标及个别音节显示乱码的问题
- 我偏要用360浏览器来看我的QQ空间, 腾讯能拿我咋的?
- 什么样的文件应该放入项目仓库里
- Common Techniques to Improve Shadow Depth Maps
- .NET 4.0新功能介绍:In Process Side By Side
- 字典序全排列生成算法
- Some characters cannot be mapped using 'ISO-8859-1' character encoding
- 【技巧】QQ, 360 和谐共处之法
- Java作业
- 可空类型练习摘记
- 正则表达式
- Ubuntu 10.04下修改分辨率