• <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 閱讀(575) 評論(0)  編輯 收藏 引用 所屬分類: 它不是一個人(WOW研究專區)

            <2025年6月>
            25262728293031
            1234567
            891011121314
            15161718192021
            22232425262728
            293012345

            導航

            統計

            公告


            Name: Galen
            QQ: 88104725

            常用鏈接

            留言簿(3)

            隨筆分類

            隨筆檔案

            相冊

            My Friend

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            久久国产精品99久久久久久老狼| 国产精品久久久久久久午夜片 | 久久久久亚洲精品无码网址| 国产综合成人久久大片91| 中文精品99久久国产 | 色综合久久天天综合| 精品久久国产一区二区三区香蕉| 精品久久久久久无码不卡| 久久精品国产清高在天天线| 久久人人超碰精品CAOPOREN| 亚洲国产另类久久久精品| 久久精品三级视频| 好久久免费视频高清| 精品综合久久久久久97| 精品综合久久久久久88小说| 综合人妻久久一区二区精品| 久久精品成人免费国产片小草 | 久久无码人妻一区二区三区 | 久久精品亚洲欧美日韩久久| 午夜精品久久久久久毛片| 久久久久久A亚洲欧洲AV冫| 国产精品一区二区久久精品| 久久精品无码一区二区WWW| 国产香蕉97碰碰久久人人| 97久久天天综合色天天综合色hd| 久久久久波多野结衣高潮| 精品久久久久中文字幕一区| 国产精品99久久精品| 国内精品伊人久久久久av一坑| 久久精品日日躁夜夜躁欧美| 色婷婷狠狠久久综合五月| 久久国产精品免费一区二区三区| 国产精品天天影视久久综合网| 久久久久人妻一区二区三区vr| 狠狠色婷婷久久一区二区| 中文成人无码精品久久久不卡| 久久亚洲国产成人影院网站 | 青青青国产成人久久111网站| 久久精品中文字幕久久| 久久99免费视频| 久久本道综合久久伊人|