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

永遠(yuǎn)也不完美的程序

不斷學(xué)習(xí),不斷實(shí)踐,不斷的重構(gòu)……

常用鏈接

統(tǒng)計(jì)

積分與排名

好友鏈接

最新評(píng)論

D3D性能優(yōu)化(轉(zhuǎn))

出處:http://blog.csdn.net/compiler/archive/2009/03/10/3975239.aspx
常規(guī)技巧

1 只在必須的時(shí)候Clear。
   IDirect3DDevice9::Clear函數(shù)通常需要花費(fèi)較多的時(shí)間,因此要盡量少調(diào)用,而且只清空的確需要清空的緩存。

2 盡量減少狀態(tài)切換。并且將需要進(jìn)行的狀態(tài)切換組合在一起設(shè)置。
   狀態(tài)包括RenderState,SamplerState,TextureStageState等

3 紋理尺寸盡可能小

4 從前至后渲染場景中的對(duì)象
   從前至后渲染可以盡可能早地精選出不需要繪制的對(duì)象和象素

5 使用三角條帶代替三角列表和三角扇。為了能更有效利用頂點(diǎn)高速緩存(cache),在排列條帶時(shí)因考慮盡快重用頂點(diǎn)。

6  根所需要據(jù)消耗的系統(tǒng)資源來逐步減少特效。

7 經(jīng)常性地檢測程序的性能。
   這樣可以更容易發(fā)現(xiàn)引起性能突變的部分

8 最小化頂點(diǎn)緩存的切換

9 盡可能使用靜態(tài)頂點(diǎn)緩存

10 對(duì)靜態(tài)對(duì)象,對(duì)每種FVF使用一個(gè)大的靜態(tài)頂點(diǎn)緩存來保存多個(gè)對(duì)象的頂點(diǎn)數(shù)據(jù),而不是每個(gè)對(duì)象使用一個(gè)頂點(diǎn)緩存。
   其目的也是減少頂點(diǎn)緩存的切換

11 如果程序需要隨機(jī)訪問AGP內(nèi)存中的頂點(diǎn)緩存,頂點(diǎn)格式的大小最好是32bytes的倍數(shù)。否則,選擇合適的最小的格式。
32bytes 也就是8個(gè)float數(shù)據(jù)或2個(gè)vector4。

12 使用頂點(diǎn)索引方式渲染,這樣可以更有效利用頂點(diǎn)高速緩存。

13 如果深度緩存格式中包含有模版緩存,總是將兩者一起Clear。

14 將計(jì)算結(jié)果和輸出的shader指令合并:
// Rather than doing a multiply and add, and then output the data with
//   two instructions:
mad r2, r1, v0, c0
mov oD0, r2

// Combine both in a single instruction, because this eliminates an
//   additional register copy.
mad oD0, r1, v0, c0

建立一個(gè)場景對(duì)象的數(shù)據(jù)庫,首先使用最低精度的模型,在保證性能的前提下逐步使用更高精度的模型。密切關(guān)注渲染的總的三角面數(shù)。

將使用相同渲染狀態(tài)和貼圖的圖元集中在一起繪制,這樣能盡量減少頂點(diǎn)緩存和狀態(tài)的切換。并且將狀態(tài)切換操作集中成一組設(shè)置。

盡量減少光源數(shù)量,使用環(huán)境光來提高亮度。方向光源比點(diǎn)光源和聚光燈更高效,因?yàn)楣獾姆较蚴枪潭ǖ摹J褂霉庹辗秶鷧?shù)來剔除不受光照影響的物體。鏡面高光幾乎使光照計(jì)算量加倍,因此只在需要時(shí)使用,將D3DRS_SPECULARENABLE設(shè)為FALSE,將材質(zhì)的specular power 設(shè)為0,將材質(zhì)的specular color 設(shè)為0。

盡量減小紋理尺寸,這樣可以增加紋理被緩存的可能性。盡量減少紋理的切換,將使用同一紋理的對(duì)象集中繪制。盡量使用正方形紋理。最快的紋理是256×256,將4張128×128的紋理拼接成256×256使用。

連接World-View Matrix, 將ViewMatrix設(shè)為Identity減少矩陣乘法運(yùn)算。

動(dòng)態(tài)紋理。首先要檢查D3DCAPS2_DYNAMICTEXTURES來判斷硬件是否支持。
其二,動(dòng)態(tài)紋理不能放在MANAGED pool中。動(dòng)態(tài)紋理總是能鎖定,甚至是在D3DPOOL_DEFAULT中。D3DLOCK_DISCARD是合法的。
DrawProceduralTexture(pTex)
{
    // pTex should not be very small because overhead of
    //   calling driver every D3DLOCK_DISCARD will not
    //   justify the performance gain. Experimentation is encouraged.
    pTex->Lock(D3DLOCK_DISCARD);
    <Overwrite *entire* texture>
    pTex->Unlock();
    pDev->SetTexture();
    pDev->DrawPrimitive();
}

當(dāng)需要在每幀里鎖定頂點(diǎn)或索引緩存是,應(yīng)該使用動(dòng)態(tài)緩存(D3DUSAGE_DYNAMIC)。對(duì)動(dòng)態(tài)緩存使用D3DLOCK_DISCARD鎖定能減少延遲。D3DLOCK_NOOVERWRITE鎖定可以用于在緩存空閑處添加新的數(shù)據(jù)而不修改已經(jīng)寫入的數(shù)據(jù)。

使用Effect時(shí),應(yīng)該根據(jù)Effect,然后根據(jù)Technique來安排渲染順序,也就是使用相同Effect和Technique的物體應(yīng)該集中繪制。這樣可以減少狀態(tài)切換開銷。

本文來自CSDN博客,轉(zhuǎn)載請(qǐng)標(biāo)明出處:http://blog.csdn.net/compiler/archive/2009/03/10/3975239.aspx

posted on 2009-06-30 08:50 狂爛球 閱讀(1107) 評(píng)論(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>
            亚洲高清123| 久久精品99无色码中文字幕| 久久av一区| 欧美影院在线| 欧美一级视频免费在线观看| 亚洲欧美中文日韩在线| 性一交一乱一区二区洋洋av| 亚洲欧美另类综合偷拍| 久久精品成人| 欧美激情一区二区| 亚洲精品资源| 欧美一级日韩一级| 免费中文字幕日韩欧美| 国产精品成人一区二区三区夜夜夜| 国产美女精品| 亚洲人屁股眼子交8| 亚洲一区视频在线观看视频| 久久av红桃一区二区小说| 亚洲大片免费看| 亚洲少妇诱惑| 久久午夜激情| 国产精品成人在线| 亚洲高清av在线| 亚洲欧美日韩一区在线观看| 欧美承认网站| 亚洲女同同性videoxma| 蜜桃精品久久久久久久免费影院| 国产精品av免费在线观看| 在线观看日韩国产| 亚洲一卡久久| 毛片精品免费在线观看| 欧美亚洲一区二区在线观看| 亚洲欧美日韩精品久久久久| 欧美激情精品久久久久久黑人| 亚洲黄色天堂| 亚洲综合清纯丝袜自拍| 久久久久久久97| 欧美国产日本韩| 国产精品视频午夜| 亚洲高清在线观看| 亚洲欧美精品中文字幕在线| 一区二区三区日韩精品视频| 中文日韩在线视频| 欧美亚洲综合网| 亚洲电影免费在线| 亚洲欧美一区二区三区久久| 免费观看亚洲视频大全| 国产精品久久77777| 在线观看一区二区精品视频| 亚洲免费伊人电影在线观看av| 久久―日本道色综合久久| 夜夜爽www精品| 久久久久久香蕉网| 亚洲第一狼人社区| 午夜精品一区二区在线观看| 欧美高清在线播放| 韩国在线视频一区| 亚洲免费婷婷| 亚洲精品日韩激情在线电影| 久久影视精品| 国产伊人精品| 欧美有码视频| 亚洲在线视频网站| 久久免费视频在线| 国产麻豆精品久久一二三| 中文日韩在线| 亚洲国语精品自产拍在线观看| 久久久久久亚洲精品中文字幕| 欧美视频一区二区| 一区二区精品在线| 亚洲第一主播视频| 久久免费观看视频| 国产精品久久97| 99国产麻豆精品| 亚洲清纯自拍| 欧美日韩国内自拍| 一本色道久久综合亚洲精品不| 欧美大片第1页| 蜜臀久久99精品久久久画质超高清| 国产一区二区久久精品| 欧美一区二区三区免费观看| 亚洲小视频在线观看| 欧美午夜大胆人体| 亚洲女女女同性video| 亚洲无线观看| 国产一区二区三区高清播放| 久久国产精品黑丝| 欧美在线免费观看| 一色屋精品视频免费看| 欧美va天堂| 蜜桃久久av| 一区二区动漫| 亚洲日本黄色| 欧美国产大片| 亚洲午夜视频在线| 午夜精品一区二区三区在线| 在线不卡欧美| 亚洲国产欧美一区二区三区同亚洲| 欧美国产亚洲视频| 亚洲欧美国产一区二区三区| 欧美在线综合| 亚洲日本在线观看| 99精品99| 国产手机视频精品| 欧美成人精品福利| 国产精品福利网| 久久久精品国产99久久精品芒果| 久久亚洲春色中文字幕| 国产视频在线观看一区二区| 久久国产精品久久精品国产| 久久久久成人精品| 欧美日韩精品在线观看| 国产亚洲美州欧州综合国| 99精品欧美一区二区三区| 中文在线一区| 在线国产亚洲欧美| 亚洲视频精选在线| 在线播放国产一区中文字幕剧情欧美| 欧美激情国产精品| 国产精品欧美一区二区三区奶水 | 99国产麻豆精品| 国产精品综合av一区二区国产馆| 欧美阿v一级看视频| 国产精品成人av性教育| 另类av一区二区| 欧美亚州在线观看| 久久大逼视频| 欧美日韩免费观看一区二区三区| 久久中文字幕一区| 国产精品日韩精品| 亚洲人成啪啪网站| 伊人久久噜噜噜躁狠狠躁 | 久久久久国产精品一区| 欧美日韩国产综合一区二区| 美女在线一区二区| 欧美11—12娇小xxxx| 欧美一级成年大片在线观看| 欧美激情一区二区三区在线视频观看| 久久av一区二区| 国产精品欧美精品| 99在线|亚洲一区二区| 亚洲成人直播| 欧美一级大片在线免费观看| 亚洲午夜影视影院在线观看| 欧美xart系列高清| 欧美a级片网| 激情久久影院| 一区二区三区高清不卡| 亚洲欧洲一区| 免费欧美电影| 欧美国产视频在线| 在线精品国产成人综合| 久久久99国产精品免费| 久久躁狠狠躁夜夜爽| 国产一本一道久久香蕉| 亚欧成人在线| 久久久久久久久久久一区| 国产欧美一区二区三区在线老狼 | 欧美在线不卡视频| 一本一本久久| 亚洲一区二区视频| 欧美亚洲成人免费| 亚洲二区视频| 99精品欧美一区二区三区综合在线| 欧美gay视频| 亚洲精品视频在线| 亚洲女性裸体视频| 国产精品影片在线观看| 亚洲欧美文学| 免费成人美女女| 另类欧美日韩国产在线| 欧美大片在线看免费观看| 亚洲国产精品成人| 久久久久久伊人| 亚洲国产精品福利| 99热这里只有成人精品国产| 欧美日韩免费| 午夜精品久久99蜜桃的功能介绍| 久久只精品国产| 亚洲美女淫视频| 国产精品亚洲美女av网站| 欧美一区亚洲二区| 亚洲国产欧美日韩| 亚洲欧洲日本国产| 欧美日韩国产区一| 欧美在线免费一级片| 亚洲国产日韩欧美综合久久| 亚洲欧美成人综合| 狠狠色丁香久久婷婷综合丁香| 老鸭窝毛片一区二区三区| 亚洲美女黄色| 久久免费视频网站| 一区二区免费在线播放| 国产日韩亚洲| 欧美精品一区二| 久久精品一区| 亚洲午夜电影在线观看| 欧美高清在线| 久久岛国电影| 在线亚洲一区二区|