作者lulumi07 (嚕嚕米)
看板GameDesign
標題[程式] Dual-Paraboloid Shadow Maps
時間Sat Nov 1 16:05:07 2014
今天想跟各位介紹兩個我喜歡的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。
我不會做太多的數學推倒,以下是個很棒的參
考網站:
http://ppt.cc/Yw5r
優化:
很明顯我們可以事先檢查物體落在哪一個半球
,減少Draw Call;另一個技巧是利用Geometry
Shader,把整個演算法縮減成One Pass。
Demo影片:
利用Frap錄製我Render的結果給大家參考
http://ppt.cc/o~SJ
第一次在這邊發表文章,我個人很喜歡Rendering
,希望可以跟板上喜歡圖學的互相交流技術。
-------------------------------------------------
我的Blog:
http://www.shuoweic.net/index.html
Youtube頻道:
http://ppt.cc/J1TO
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 73.42.141.90
※ 文章網址: http://www.ptt.cc/bbs/GameDesign/M.1414829110.A.B32.html
推 cjcat2266: 我教授有研究一個目的類似的投影方式,只不過不是兩半 11/01 16:11
→ cjcat2266: 球,而是沿著像是網球的紋路把球拆成兩片 11/01 16:12
→ cjcat2266: 他就直接叫它tennis-ball projection XD 11/01 16:12
推 damody: 可以去研究看看unreal 4的源碼,有點信心全失的感覺 11/01 22:51
→ damody: 他有soft shadow了 11/01 22:52
→ damody: 而且未來 render pipe line 可能會在變化 11/01 22:53
→ damody: 現在想的方法也不知道能不能用在未來的pipe line上 11/01 22:53
推 a27417332: 推一下,少見的技術心得分享文 11/01 23:03
→ lulumi07: Tennis-ball projection 該不會是Herron吧XD 11/01 23:19
→ lulumi07: Unreal的話用的方法更先進吧 11/01 23:28
→ lulumi07: 分享這個方法是因為實作簡單!效果也不錯! 11/01 23:29
→ lulumi07: 篇幅有限我就沒有介紹Soft Shadow了 11/01 23:29
→ lulumi07: 我個人是用Exponential Soft Shadow 11/01 23:30
推 riveranb: 推 11/03 09:59
推 cjcat2266: 好像是Herron沒錯 11/06 03:37