今天想跟各位介紹兩個我喜歡的Render技術,
這個技術可以同時運用在Shadow以及Reflection
一般來說,對於靜態的場景cube map會是個很好
的選擇,因為只需要查找相對應的Texture位置就
好。但動態場景中,你不會想要更新六個Texture
於是,我想介紹使用Dual-Paraboloid這個方法。
優點:只需要更新兩張Texture
缺點:細節失真、Render場景多次
這個演算法將場景分成左右半球(或上下),
分別做兩次全場景的Render,
利用Paraboloid Mapping生成兩張Texture
生成兩張Texture之後,當你Render反射面的
Pixel的時候,利用Paraboloid Mapping查找
你所生成的Texture。
這個技術也可以運用在Shadow上面,換而言之
,你只是存不同資訊而已。屆時,你的Shadow
Mapping不會再受到Frustum限制。你可以有全
方位的Shadow。
我不會做太多的數學推倒,以下是個很棒的參
考網站:
![]()
優化:
很明顯我們可以事先檢查物體落在哪一個半球
,減少Draw Call;另一個技巧是利用Geometry
Shader,把整個演算法縮減成One Pass。
Demo影片:
利用Frap錄製我Render的結果給大家參考
![]()
第一次在這邊發表文章,我個人很喜歡Rendering
,希望可以跟板上喜歡圖學的互相交流技術。