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

優化3D圖形渲染通道負載(轉)

一般來說, 定位渲染通道瓶頸的方法就是改變渲染通道每個步驟的工作量, 如果吞吐量也改變了, 那個步驟就是瓶頸.。找到了瓶頸就要想辦法消除瓶頸, 可以減少該步驟的工作量, 增加其他步驟的工作量。

   一般在光柵化之前的瓶頸稱作”transform bound”, 三角形設置處理后的瓶頸稱作”fill bound”定位瓶頸的辦法:
  • 1.改變幀緩沖或者渲染目標(Render Target)的顏色深度(16 到 32 位), 如果幀速改變了, 那么瓶頸應該在幀緩沖(RenderTarget)的填充率上。
  • 2.否則試試改變貼圖大小和貼圖過濾設置, 如果幀速變了,那么瓶頸應該是在貼圖這里。
  • 3.否則改變分辨率.如果幀速改變了, 那么改變一下pixel shader的指令數量, 如果幀速變了, 那么瓶頸應該就是pixel shader. 否則瓶頸就在光柵化過程中。
  • 4.否則, 改變頂點格式的大小, 如果幀速改變了, 那么瓶頸應該在顯卡帶寬上。
  • 5.如果以上都不是, 那么瓶頸就在CPU這一邊。
  • 優化方法36條:
  • 1.盡量減少無用的頂點數據, 比如貼圖坐標, 如果有Object使用2組有的使用1組, 那么不 要將他們放在一個vertex buffer中, 這樣可以減少傳輸的數據量。
  • 2.使用多個streamsource, 比如SkinMesh渲染, 可以把頂點坐標和法線這些每一幀都要修改的數據放在一個動態VB中, 其它不需要修改的(如貼圖坐標)放到一個靜態VB中, 這樣就減少了數據傳輸量。
  • 3.盡量使用16位的索引緩沖,避免32位的. 一方面浪費帶寬, 一方面也不是所有的顯卡都支持32位的索引緩沖。
  • 4.可以考慮使用vertex shader來計算靜態VB中的數據.比如SkinMesh的頂點可以放到vectex shader中計算, 這樣就可以避免每一幀都從AGP內存中向顯存傳送數據. 這樣也可以使用靜態VB了。
  • 5.堅決避免使用Draw**UP一族的函數來繪制多邊形。
  • 6.在設計程序之前好好規劃一下顯卡內存的使用, 確保framebuffer, 貼圖, 靜態VB能夠正好放入顯卡的本地內存中。
  • 7.盡量使頂點格式大小是32字節的倍數.可以考慮使用壓縮過的頂點格式然后用vertex shader去解. 或者留下冗余的部分, 使頂點大小剛好使32字節的倍數。
  • 8.頂點在頂點緩沖中的順序盡量符合繪制的順序, 考慮使用strips來代替list。
  • 9.如果可能盡量多的使用static vertex buffer代替dynamic vertex buffer。
  • 10.動態VB使用DISCARD參數來lock更新, 使用NOOVERWRITE來添加.盡量不要使用不帶參數的lock調用(0)。
  • 11.盡量減少lock的次數, 有些東西并不一定非要每一幀都更新VB, 比如人物動畫一般每秒鐘更新30次VB基本上就夠了。
  • 12.如果是因為需要繪制的頂點數據太多了可以考慮使用LOD, 但是現在的顯卡的繪制能力都很強勁, 所以需要權衡一下LOD是否能夠帶來相應的好處, 如果過分的強化LOD很可能將瓶頸轉移到CPU這邊。
  • 13.避免過多的頂點計算,比如過多的光源, 過于復雜的光照計算(復雜的光照模型), 紋理自動生成的開啟也會增加頂點的計算量. 如果貼圖坐標變換矩陣不是單位矩陣, 也會造成頂點計算量的增加, 所以如果紋理變換已經結束, 記得要將紋理變換矩陣設為單位矩陣同時調整貼圖坐標。
  • 14.避免Vertex shader指令數量太多或者分支過多, 盡量減少vertex shader的長度和復雜程度. 盡量使用swizzling代替mov。
  • 15.如果圖象質量方面的計算(pixel shader)范圍很大, 并且很復雜, 可以考慮試試全屏反走樣。說不定更快。
  • 16.盡量按照front – back的順序來繪制。
  • 17.在shader中判斷Z值可以避免繪制不可見的象素, 但是nvidia建議簡單的shader不要這么做.(Don't do this in a simple shader)。
  • 18.如果可能, 盡量使用vertex shader來代替pixel shader.將計算從逐象素變成逐頂點。
  • 19.盡量降低貼圖的大小.過大的貼圖可能造成貼圖cache過載, 從而導致貼圖cache命中降低.過大的貼圖會導致顯存過載, 這時候貼圖是從系統內存中取的。
  • 20.只要可能就用16位色的貼圖, 如環境貼圖或者shadow map.它們用32位色的貼圖實在是浪費。
  • 21.考慮使用DXT 貼圖壓縮。
  • 22.如果可能,使用簡單的貼圖過濾或者mip map, 除非必要否則盡量不要使用三線過濾和各項異性過濾. light map 和 環境貼圖基本上都不需要使用它們。
  • 23.只有真正需要修改的貼圖才使用Dynamic, 并且使用DISCRAD和WRITEONLY來lock。
  • 24.太多的幀緩沖讀寫可以考慮關閉Z-Writes如有些多pass的渲染中的后續pass或者粒子系統等半透明幾何物體(如果可以)。
  • 25.可能的話盡量使用alpha test代替alpha blending。
  • 26.如果不需要stencil buffer就盡量使用16位的Z buffer。
  • 27.減小RenderTarget 貼圖的大小, 如shadow map 環境貼圖. 可能根本不需要那么大效果就很好。
  • 28.Stencil 和 Z buffer 盡量一起clear. 他們本來就是一塊緩沖。
  • 29.盡量減少渲染狀態的切換, 盡量一次畫盡可能多的多邊形。(根據顯卡性能決定最多畫多少, 不過一般再多也不會多到哪里去。 除非你根本不需要貼圖和渲染狀態的切換)。
  • 30.盡量使用shader來代替Fixed Pipeline。
  • 31.盡量使用shader來實現來取代Multipass渲染效果。
  • 32.盡量優先先建立重要的資源, 如Render target, shaders, 貼圖, VB, IB等等.以免顯存過載的時候它們被創建到系統內存中。
  • 33.堅決不要在渲染循環中調用創建資源。
  • 34.按照shader和貼圖分組后再渲染.先按照shaders分組再按貼圖。
  • 35.Color Stencil Z buffer盡量在一次Clear調用中清除。
  • 36.一個Vertex buffer 的大小在2M-4M之間最好。

posted on 2009-09-01 01:32 RedLight 閱讀(597) 評論(0)  編輯 收藏 引用 所屬分類: 3D渲染技術

<2009年11月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

導航

統計

公告


Name: Galen
QQ: 88104725

常用鏈接

留言簿(3)

隨筆分類

隨筆檔案

相冊

My Friend

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美视频在线视频| 亚洲欧美大片| 亚洲高清色综合| 国产精品欧美经典| 欧美一区综合| 国内在线观看一区二区三区| 久久精品国产清高在天天线| 99这里只有久久精品视频| 久久国内精品视频| 久久九九99| 久久精品国产免费观看| 久久成人这里只有精品| 欧美在线精品免播放器视频| 亚洲欧美中文日韩v在线观看| 亚洲欧美国产制服动漫| 午夜精品国产更新| 午夜精品国产精品大乳美女| 亚洲欧美一区二区精品久久久| 亚洲欧美激情在线视频| 亚洲国产一区二区三区青草影视| 国产私拍一区| 国产精品你懂得| 欧美性一区二区| 欧美日韩综合不卡| 国产午夜久久| 亚洲精品一区二区网址| 亚洲天堂免费在线观看视频| 亚洲综合色在线| 亚洲欧美中文在线视频| 久久久久久久综合| 9久re热视频在线精品| 亚洲一区欧美二区| 久久激情综合网| 韩国精品久久久999| 亚洲精品国产系列| 亚洲欧美日本国产专区一区| 亚洲国产成人精品久久久国产成人一区| 久久综合狠狠综合久久综合88 | 国产精品午夜国产小视频| 欧美日韩视频第一区| 国内精品久久久久影院薰衣草 | 91久久在线播放| 亚洲一级影院| 久久人人97超碰国产公开结果 | 亚洲精品123区| 欧美一二三视频| 国产精品久久久久免费a∨| 国产亚洲福利一区| 欧美一区二区三区四区在线观看地址| 亚洲国产欧美一区二区三区同亚洲 | 亚洲毛片一区| 在线播放日韩| 久久青青草原一区二区| 欧美一区影院| 亚洲第一在线综合网站| 久久这里有精品15一区二区三区| 先锋影音久久久| 亚洲视屏在线播放| 亚洲视频在线看| 久久久www成人免费精品| 午夜一区二区三视频在线观看| 欧美日韩一区二区三区视频| 午夜欧美不卡精品aaaaa| 欧美在线视频观看| 午夜视频久久久久久| 久久精品99无色码中文字幕| 亚洲激情一区二区三区| 亚洲国产精品一区二区久| 亚洲一二三区在线| 欧美在线视屏| 亚洲欧美一级二级三级| 欧美—级在线免费片| 狠狠色丁香久久婷婷综合丁香 | 国产一区二区黄色| 这里只有精品视频| 亚洲青涩在线| 欧美午夜片在线观看| 亚洲蜜桃精久久久久久久| 免费成人高清| 久久午夜视频| 亚洲人成人77777线观看| 麻豆国产va免费精品高清在线| 性欧美长视频| 国产亚洲一二三区| 久久9热精品视频| 亚洲免费在线观看| 国产日韩欧美综合在线| 久热成人在线视频| 久久综合伊人| 亚洲黑丝在线| 亚洲一区二区日本| 国产精品久久久99| 久久se精品一区精品二区| 欧美在线播放| 99精品热视频只有精品10| 日韩亚洲欧美成人一区| 国产精品久久久久久一区二区三区| 亚洲综合精品自拍| 久久久久久久97| 日韩亚洲欧美成人一区| 国产日韩欧美黄色| 欧美 日韩 国产一区二区在线视频| 欧美亚洲在线视频| 宅男噜噜噜66一区二区| 久久久久9999亚洲精品| 黄色av一区| 午夜精品久久久久久久99黑人| 亚洲成人在线视频网站| 一区二区日韩精品| 亚洲成在人线av| 久久国产精品99精品国产| 亚洲欧美成aⅴ人在线观看| 久久久久九九视频| 欧美一级视频免费在线观看| 欧美金8天国| 欧美不卡视频一区发布| 国产欧美一区二区三区久久人妖| 亚洲国产一区二区三区在线播 | 国产日韩高清一区二区三区在线| 欧美成人一品| 国产在线精品成人一区二区三区| 亚洲乱码国产乱码精品精可以看| 亚洲精品一二| 欧美日韩精品免费| 亚洲黄色在线看| 中日韩美女免费视频网站在线观看| 久久精品日产第一区二区三区| 欧美一区二区三区四区在线观看| 欧美精品一区二区三区蜜桃| 欧美www视频| 91久久国产自产拍夜夜嗨| 亚洲欧美日韩一区二区| 亚洲午夜精品久久久久久app| 欧美肥婆bbw| 99精品国产在热久久| 亚洲视频999| 国产精品成人观看视频免费| 亚洲视频在线观看网站| 香蕉久久精品日日躁夜夜躁| 韩国一区二区三区在线观看| 美女视频网站黄色亚洲| 亚洲精华国产欧美| 欧美一区二区成人6969| 在线观看成人av| 欧美日韩国产精品专区| 亚洲影院色无极综合| 久久国产精品色婷婷| 亚洲美女视频网| 久久精品国产成人| 妖精成人www高清在线观看| 欧美日韩免费高清一区色橹橹| 亚洲综合精品四区| 欧美激情bt| 久久av红桃一区二区小说| 亚洲精品在线看| 国产日韩欧美一区二区三区在线观看| 老司机精品视频一区二区三区| 国产精品99久久久久久www| 亚洲福利视频在线| 亚洲性人人天天夜夜摸| 一区二区三区在线视频播放| 国产精品国产成人国产三级| 久久伊人精品天天| 日韩一二三区视频| 免费在线欧美黄色| 午夜精品偷拍| 亚洲伊人伊色伊影伊综合网| 一区二区三区久久网| 亚洲精品欧美在线| 在线观看免费视频综合| 狠狠入ady亚洲精品| 黑人巨大精品欧美黑白配亚洲| 欧美精品一区二区久久婷婷| 玖玖国产精品视频| 亚洲欧美在线视频观看| 亚洲一区二区三区在线播放| 99爱精品视频| 日韩视频中文| 亚洲一二三四久久| 妖精成人www高清在线观看| 亚洲日本中文字幕免费在线不卡| 久久婷婷国产综合精品青草 | 亚洲另类在线一区| 免费观看成人网| 免费在线日韩av| 亚洲高清不卡av| 欧美激情综合色| 91久久亚洲| 亚洲乱码久久| 一区二区日韩| 午夜精品福利一区二区蜜股av| 亚洲午夜久久久久久尤物 | 亚洲第一黄色网| 亚洲国产成人精品久久| 亚洲毛片av| 久久成人一区二区| 欧美激情视频免费观看| 亚洲成人中文| 欧美69wwwcom| 亚洲无人区一区|