青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

3d Game Walkman

3d圖形渲染,網(wǎng)絡(luò)引擎 — tonykee's Blog
隨筆 - 45, 文章 - 0, 評論 - 309, 引用 - 0
數(shù)據(jù)加載中……

Early ZBuffer [轉(zhuǎn)]

看到這篇文章寫的還不錯,順手轉(zhuǎn)過來了^_^
  
   一、最近在優(yōu)化客戶端性能的時候,看到了Early ZBuffer。在VSPS中間GPU會對進行Z-buffer預判機制,對無效像素進行剔除,ATI、NVIDIA都有自己的Z-buffer預判機制。其實Doom3的時候已經(jīng)開始使用預填充ZBuffer了,因為Doom3的PS需要處理陰影、NormalMap、LightMap及其他貼圖處理,PS指令非常多,所以無效像素的剔除對性能影響是很大的,越早將無效像素剔除,顯卡便能獲得更多的時間對有效像素進行渲染。

 

    二、Early-Z技術(shù)介紹(這段摘自http://tech.sina.com.cn/h/2008-06-17/09302262913.shtml

  當代的GPU都會采用Z-buffer去記錄哪些像素是可見,而哪些像素是被遮擋而不可見。一個3D Frame最終要轉(zhuǎn)換成為2D圖像才能表示在屏幕上面,來自GPU連續(xù)的頂點流(vertices)會構(gòu)建這個frame,從這個頂點流獲取相應(yīng)的2D坐 標去生成多邊形。多邊形的連續(xù)產(chǎn)生會覆蓋原來的區(qū)域,因而Z-buffer的信息就是告訴ROP,哪些像素是可見哪些是不可見的。提前進行的Early- Z對比可以節(jié)省大量資源,因為同一個區(qū)域被多個多邊形覆蓋的次數(shù)輕而易舉地達到原來的四倍甚至更高





目前甚少方法可以利用Z-buffer信息去挑選或者排出被遮擋像素的渲染,Z-Cull就是這樣的一個方法。Z-comparision通常 會發(fā)生在ROP的后期。問題就產(chǎn)生,意味著pixel要通過完整的ROP管線才能被發(fā)現(xiàn)是否可見。一些復雜的包含數(shù)千步驟的shader程序,即使是被遮 擋的pixel也全部通過流水線,這顯然浪費了GPU的性能。Early-Z移去不可見像素在它們進入流水線之前,這樣顯然會提高性能,NVIDIA認為 這個操作提升22%附近的性能。

 

    三、具體實現(xiàn):場景渲染兩遍:
    void Render()
    {
        DrawZPass();    
        DrawColorPass();    
    }
    
    // 關(guān)閉ColorBuffer寫入,以最簡單的渲染狀態(tài)繪制場景
    void DrawZPass()
    {
        // Disable color writes
        pD3DDevice->SetRenderState( D3DRS_COLORWRITEENABLE, 0x00000000);

        // Ensure alpha off
        pD3DDevice->SetRenderState( D3DRS_ALPHABLENDENABLE, false );
        pD3DDevice->SetRenderState( D3DRS_ALPHATESTENABLE, false );

        // Ensure z-enabled
        pD3DDevice->SetRenderState( D3DRS_ZENABLE, true );
        pD3DDevice->SetRenderState( D3DRS_ZWRITEENABLE, true );

        DrawScene();

        pD3DDevice->SetRenderState( D3DRS_COLORWRITEENABLE, 0x0000000F );
    }

    // 正常渲染
    void DrawColorPass()
    {
        pD3DDevice->SetRenderState( D3DRS_DEPTHBIAS, F2DW(-0.001f) );    
        DrawScene()
    }

    1.DrawZPass:應(yīng)該跳過AlphaBlend、AlphaTest的實體。
    2.DrawColorPass:對于那些預寫入ZBuffer的實體,在這個Pass中只需開啟ZBufferTest、并且可以關(guān)閉ZBufferWrite。
    3.使用了EarlyZBuffer,就不用再排序了。

    4.在第二遍渲染的時候,因為浮點的誤差,會有ZFighting現(xiàn)象,所以應(yīng)允許一定的誤差。

    5.Early ZBuffer不一定適用所有場景,比如有大量實體的室外場景,因為DrawZPass畢竟也要繪制所有的實體,如果調(diào)用太多DP,性能反而會有所下降。


     四、另外一個性能優(yōu)化提示:先畫UI;最后繪制天空盒。這也于ZBuffer有關(guān),因為天空盒總是顯示在最后,而天空盒總是被前面的實體遮擋了大部分區(qū)域。

不過最后繪制天空盒時候,大家會問如何避免被FarPlane裁剪,有一個技巧可以解決,在SkyShader的VS輸出投影后的位置時,這樣設(shè)置:

     Out.position = mul(mvp, vertex).xyww。// 不是Out.position = mul(mvp, vertex);

    這樣天空盒投影后的總是映射到FarPlane,這樣就完美了,哈哈。這個方法時我在ATI的《Depth In Depth》文檔中看到的。UI也是,游戲里的UI區(qū)域如果預先寫入ZBuffer,也可以避免大量的無效PS處理。


     五、最后希望大家可以仔細看看《Depth In Depth》,里邊有很多優(yōu)化提示。

posted on 2009-12-01 14:20 李侃 閱讀(2567) 評論(0)  編輯 收藏 引用 所屬分類: 前臺客戶端

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲深夜激情| 欧美在线不卡| 国产乱码精品| 国产精品美女在线| 国产亚洲综合精品| 亚洲高清不卡在线| 亚洲人成人77777线观看| 99日韩精品| 午夜亚洲福利| 欧美成人精品| 亚洲一级在线观看| 久久综合伊人77777尤物| 欧美日韩影院| 在线播放不卡| 亚洲免费网站| 欧美激情国产日韩精品一区18| 亚洲激情自拍| 亚洲免费在线观看| 裸体素人女欧美日韩| 欧美午夜精品一区| 在线观看成人av| 午夜精品久久久久久久男人的天堂| 久久午夜国产精品| 在线一区视频| 欧美高清视频| 黄色日韩在线| 欧美亚洲一区| 狠狠色香婷婷久久亚洲精品 | 国产欧美日韩专区发布| 一区二区三区自拍| 亚洲尤物在线视频观看| 欧美激情视频免费观看| 亚洲欧美中文字幕| 欧美日韩亚洲一区二区三区在线观看| 国产日韩欧美精品在线| 亚洲视频在线看| 欧美成人综合网站| 欧美主播一区二区三区| 欧美午夜精品理论片a级按摩| 亚洲国产精品一区在线观看不卡| 亚洲欧美在线磁力| 一区二区三区黄色| 欧美日韩午夜在线| 亚洲人成网在线播放| 久久久久国内| 亚洲欧美综合国产精品一区| 欧美午夜视频| 亚洲一区二区三区在线| 亚洲精品亚洲人成人网| 免费久久99精品国产自| 亚洲第一福利视频| 久久综合99re88久久爱| 久久成人一区| 黄色小说综合网站| 麻豆精品精华液| 可以免费看不卡的av网站| 在线观看不卡| 欧美搞黄网站| 欧美国产一区视频在线观看| 亚洲人成网站精品片在线观看| 欧美搞黄网站| 欧美激情视频网站| 亚洲午夜羞羞片| 亚洲专区在线| 精品999在线播放| 欧美激情按摩| 欧美日韩国产不卡在线看| 在线视频精品| 亚洲综合色视频| 国产一区二区视频在线观看| 久久久久久夜精品精品免费| 久久久久久一区| 亚洲精选在线| 亚洲网站在线| 黄色另类av| 亚洲三级电影全部在线观看高清| 欧美日韩在线一区二区三区| 欧美在线视频全部完| 久久一区二区三区四区五区| 亚洲美女毛片| 午夜精品美女久久久久av福利| 韩国免费一区| 日韩一级精品视频在线观看| 国产欧美日韩不卡免费| 欧美不卡在线视频| 国产精品播放| 欧美成人性网| 亚洲欧美偷拍卡通变态| 韩国av一区二区三区四区| 欧美激情一区二区三区在线视频观看 | 日韩亚洲一区在线播放| 一本色道久久综合亚洲精品高清| 国产欧美一区二区三区沐欲| 欧美高清视频一区二区三区在线观看| 欧美日韩视频免费播放| 久久亚洲精品中文字幕冲田杏梨| 欧美人与性动交cc0o| 久久久国产精彩视频美女艺术照福利| 欧美精品久久久久久久| 久久亚洲综合色一区二区三区| 欧美色一级片| 亚洲国产99精品国自产| 国产自产2019最新不卡| 99伊人成综合| 亚洲精品极品| 久久艳片www.17c.com| 性欧美超级视频| 欧美日韩精品在线播放| 欧美电影在线免费观看网站| 国产日韩欧美高清| 在线视频免费在线观看一区二区| 亚洲国产一成人久久精品| 欧美一级大片在线观看| 亚洲在线免费视频| 欧美日韩国语| 亚洲欧洲精品成人久久奇米网| 在线观看国产成人av片| 欧美一级欧美一级在线播放| 亚洲免费影视| 国产精品久久久久久久久久ktv| 亚洲欧洲视频在线| 亚洲六月丁香色婷婷综合久久| 久久久久久久999| 久久五月天婷婷| 韩国女主播一区| 久久精品视频在线免费观看| 久久久999国产| 国产一区二区三区免费不卡| 亚洲欧美日韩一区二区三区在线观看 | 午夜视频一区在线观看| 亚洲淫性视频| 国产精品午夜久久| 亚洲欧美日本国产有色| 亚欧成人在线| 国产日韩欧美精品一区| 欧美一区二区三区免费视| 久久深夜福利免费观看| 黄色av成人| 欧美不卡在线视频| 亚洲精品一区二区三区樱花| 99精品免费| 国产精品美女久久久久久免费| 午夜精品理论片| 亚洲伊人色欲综合网| 午夜精品一区二区三区在线视| 欧美三区美女| 午夜精彩国产免费不卡不顿大片| 欧美在线在线| 亚洲成色精品| 欧美日韩一二三四五区| 亚洲深夜福利网站| 久久av在线看| 亚洲福利视频专区| 欧美另类高清视频在线| 艳妇臀荡乳欲伦亚洲一区| 久久超碰97中文字幕| 亚洲国产成人精品久久久国产成人一区 | 老司机午夜精品视频在线观看| **性色生活片久久毛片| 欧美成人午夜激情在线| 在线视频你懂得一区| 久久久国产一区二区| 亚洲精品少妇| 国产视频亚洲精品| 免费h精品视频在线播放| 99国产一区| 葵司免费一区二区三区四区五区| 99亚洲精品| 国产视频一区免费看| 欧美成人午夜免费视在线看片| 这里只有精品视频在线| 久久久亚洲一区| 国产精品99久久久久久久vr| 国产亚洲精品美女| 欧美日韩视频在线一区二区观看视频 | 1024日韩| 国产精品视频九色porn| 免费人成精品欧美精品| 亚洲一区在线免费观看| 欧美国产亚洲精品久久久8v| 亚洲欧美在线x视频| 亚洲精品黄色| 黄色一区二区三区| 国产精品国产三级国产| 久久综合久久综合久久| 亚洲一区在线看| 亚洲精品一区二区网址| 免费在线看成人av| 久久国内精品视频| 亚洲午夜久久久久久久久电影院| 亚洲电影在线播放| 国产一区久久久| 国产精品成人观看视频国产奇米| 麻豆av一区二区三区久久| 欧美在线国产精品| 午夜精品成人在线| 亚洲图片自拍偷拍| 国产精品99久久久久久www| 亚洲欧洲日产国码二区| 欧美国内亚洲|