• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            WOW的地形渲染 (轉)


                魔獸世界的地形渲染,基本上有三種渲染路徑:固定渲染管線(其中是不是又分幾種就不清楚了);shader(帶高光);shader(不帶高光)
              用到shader的渲染路徑又分別針對1層,2層,3層,4層(最多允許每個chunk使用4層紋理)專門寫了shader代碼。
              用MyWarCraftStudio打開WOW的misc.mpq包,shader \ pixel \ 目錄下以"terrain"打頭的bls文件就是地形渲染使用的shader,帶有"_s"后綴的是帶高光的渲染,否則就是不帶高光的。
              我仔細看了其中的terrain4_s.bls(用UltraEdit之類的工具可以直接當成文本文件打開)。是匯編形式的ps代碼,由于之前俺只用過c形式的HLSL所以看起來有點吃力,好在還是看明白了。
              texture0~3就是待混合的4層紋理,每層紋理的a通道是該層紋理對應的高光通道;texture4是一張用來控制混合權重的alpha紋理。texture4的r,g,b通道分別對應texture1~3的alpha值,而texture4.a則代表地形的陰影,0為陰影,1為正常。
              混合的公式為res_n = res_n-1 * ( 1 - alpha_n ) + texture_n * alpha_n。其中n代表第n層紋理。res_n代表第n層混合后的結果。
              從代碼可以看出,最終混合結果的a通道(高光通道)被乘以陰影值,也就是說陰影中沒有高光。同時,陰影中的diffuse光照被削減了30%。
              1,2,3層紋理混合,以及不帶高光的情況想必也沒有什么特別之處,也不去細看了。
              值得一提的是我原來一直以為WOW的地形渲染只用了ps_1_1,但從這個shader看用了5張紋理,超出了ps_1_1的4個紋理采樣的限制,所以至少使用了ps_1_4(允許6個紋理采樣)。而1~3層紋理混合的情況使用ps_1_1就夠了。我不知道在渲染時頻繁切換ps版本會不會收到性能上的懲罰,但有些顯卡(比如NV的5200)同樣的代碼在ps_1_4上運行要比在ps_1_1上運行慢很多。
              至于固定渲染管線的渲染路徑,由于不可能看到代碼,具體如何實現多層紋理混合無法揣測,集合了各層紋理混合系數的alpha圖應該不能直接用于渲染,因為固定渲染管線似乎只能用a通道來控制混合系數,可能需要將這張紋理拆成4張才行。。。

            posted on 2008-12-24 12:03 RedLight 閱讀(580) 評論(0)  編輯 收藏 引用 所屬分類: 它不是一個人(WOW研究專區)

            <2009年1月>
            28293031123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567

            導航

            統計

            公告


            Name: Galen
            QQ: 88104725

            常用鏈接

            留言簿(3)

            隨筆分類

            隨筆檔案

            相冊

            My Friend

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            久久WWW免费人成—看片| 久久久久久久91精品免费观看 | 品成人欧美大片久久国产欧美... 品成人欧美大片久久国产欧美 | 国产午夜福利精品久久| 久久天天躁狠狠躁夜夜2020| 欧美精品国产综合久久| 国产婷婷成人久久Av免费高清| 久久男人中文字幕资源站| 亚洲AV成人无码久久精品老人| 94久久国产乱子伦精品免费| 亚洲国产精品无码久久| 亚洲а∨天堂久久精品9966| 久久青青草原综合伊人| 欧美牲交A欧牲交aⅴ久久| 色综合久久天天综线观看| 日本精品久久久久中文字幕8| 亚洲精品美女久久久久99| 国产午夜精品理论片久久| 欧洲精品久久久av无码电影| 伊人久久无码精品中文字幕| 国产99久久久久久免费看| 国产午夜福利精品久久2021| 一本色道久久88精品综合 | 香蕉久久夜色精品国产小说| 久久久噜噜噜久久中文字幕色伊伊| 亚洲午夜久久影院| 97久久精品午夜一区二区| 少妇久久久久久被弄高潮| 尹人香蕉久久99天天拍| 国产精品va久久久久久久| 久久精品免费观看| 久久青青草原综合伊人| 久久精品无码一区二区三区| 精品蜜臀久久久久99网站| 精品少妇人妻av无码久久| 国产三级久久久精品麻豆三级| 7777精品久久久大香线蕉| 亚洲中文字幕无码一久久区| 亚洲日本va中文字幕久久| 亚洲中文字幕久久精品无码喷水| 亚洲精品乱码久久久久久蜜桃不卡|