Realtime Shadow Rendering Log(2)

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,待續。。。