Realtime Shadow Rendering Log(2)

来源:互联网 发布:windows日志分析工具 编辑:程序博客网 时间:2024/05/17 23:27
 

Shadow Volume对于遮挡物几何拓扑关系信息的要求,是此方法最大弊病。无论skin还是变形mesh,甚至只要物体或灯一动,都必须重新背面剔除着寻找轮廓,重新生成volume三角形等等繁重几何体力劳动。由于算法所注定,用volume者,身心具勤也....

Soft Shadow Volume: 软阴影方面,利用volume的几何属性,可以根据面光源大小,真的切出些模仿半影空间来。来看看画条轮廓边的阴影如何做:

多的就不记录了。一般来讲,太复杂的算法,除非硬件真死命支持,否则生命力很难说。。。
Shadow Maps, 顾名思义,就是阴影图。其本质定义,应该叫Depth Maps(深度图)。记录了遮挡物表面象素到光源的距离。实际SHADOWMAPS就是做了个判断,在光源投影坐标系里(就是把相机屏幕摆到光源前,观察点就在光源),遮挡物和接受物都投影在光源透视平面(相机屏幕)。两物体在屏幕上会有重合的点,比较这两个点的实际位置离光源哪个更远。再概括讲,就是判断从光源射出的光线,是先遇到了遮挡物,还是先遇到了接受物。如果先遇到遮挡物,那么这条光线延伸线的地方如果有接受物,则接受物这个地方就在阴影下。

SHADOWMAP的变形改进算法,主要致力于解决走样问题。有限空间,SHADOWMAP一般也就512X512。
透视SHADOWMPA,著名的PSM,它本身瑕疵多多,限制很大。难为被咬牙切齿的咒骂为骗局。确实光PSM在游戏实用工程上还是比较难。但其创造性的打开一个局面,即,shadowmaps不光只可以和视觉透视一样采用正常透视绘制,也可以无所不用其极的变形绘制shadowmaps的空间。也就有了后来的梯形shadow maps,光源空间透视shadow mpas,对数shadow maps等方法.甚至还引发了irregular shadow maps等奇思怪想。发明一种新光栅化方法,加速shadow maps...有这功夫,还不如发明一种自动64X64采样的柔化shadow maps功能,或者自动shadow cubemaps,把点光源的shadow maps自动化。
因为Perspective shadow maps,Light-space perspective shadow,Trapezoidal shadow maps,Practical Logarithmic Shadow Maps的思路都大体一样,所以查一篇就清楚一大片。不多说。
切分shadow maps,想法也很直接,既然一个shadowmap分辨率有限,就想办法按照空间(Z)多分出几块来,每个部分用不同分辨率的画。类似Adaptive shadow maps,Plural sunlight buffers,Tiled shadow maps。
变形+切分:Dual paraboloid类似环境贴图,但这回是把周围360球型世界映射到双抛物面上。PSM with cube maps可以模拟点光源的阴影。点光源是shadowmaps的死穴。犹如shadow volume的几何密集劳动...把周围场景分6次绘制进一个CUBE MAP。。。听着就很辛苦...

SOFT SHADOW MAPS,待续。。。