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

永遠也不完美的程序

不斷學習,不斷實踐,不斷的重構……

常用鏈接

統計

積分與排名

好友鏈接

最新評論

復習一下D3D渲染流程

       
摘自http://www.cnblogs.com/ixnehc/articles/1282350.html
我歸納一下就是:準備頂點和圖元數據----》傳到D3D渲染管線----》處理頂點數據(固定、shader)----》幾何處理(裁剪、背面剔除、光柵化)----》像素處理(紋理采樣)----》著色
牢記這個:

Direct3D Graphics Pipeline

The graphics pipeline provides the horsepower to efficiently process and render Direct3D scenes to a display, taking advantage of available hardware. This figure conceptually illustrates the building blocks of the pipeline:

Direct3D graphics pipeline diagram

Pipeline Component Description Related Topics
Vertex Data Untransformed model vertices are stored in vertex memory buffers. Vertex Buffers (Direct3D 9), IDirect3DVertexBuffer9
Primitive Data Geometric primitives, including points, lines, triangles, and polygons, are referenced in the vertex data with index buffers. Index Buffers (Direct3D 9), IDirect3DIndexBuffer9, Primitives, Higher-Order Primitives (Direct3D 9)
Tessellation The tesselator unit converts higher-order primitives, displacement maps, and mesh patches to vertex locations and stores those locations in vertex buffers. Tessellation (Direct3D 9)
Vertex Processing Direct3D transformations are applied to vertices stored in the vertex buffer. Vertex Pipeline (Direct3D 9)
Geometry Processing Clipping, back face culling, attribute evaluation, and rasterization are applied to the transformed vertices. Pixel Pipeline (Direct3D 9)
Textured Surface Texture coordinates for Direct3D surfaces are supplied to Direct3D through the IDirect3DTexture9 interface. Direct3D Textures (Direct3D 9), IDirect3DTexture9
Texture Sampler Texture level-of-detail filtering is applied to input texture values. Direct3D Textures (Direct3D 9)
Pixel Processing Pixel shader operations use geometry data to modify input vertex and texture data, yielding output pixel color values. Pixel Pipeline (Direct3D 9)
Pixel Rendering Final rendering processes modify pixel color values with alpha, depth, or stencil testing, or by applying alpha blending or fog. All resulting pixel values are presented to the output display. Pixel Pipeline (Direct3D 9)

Direct3D System Integration

This figure shows the relationships between a Window application, Direct3D,GDI, and the hardware:

Direct3D system relationship diagram

Direct3D exposes a device-independent interface to an application. Direct3D applications can exist alongsideGDI applications, and both have access to the computer's graphics hardware through the device driver for the graphics card. UnlikeGDI, Direct3D can take advantage of hardware features by creating a hal device.

A hal device provides hardware acceleration to graphics pipeline functions, based upon the feature set supported by the graphics card. Direct3D methods are provided to retrieve device display capabilities at run time. (See IDirect3D9::GetDeviceCaps and IDirect3DDevice9::GetDeviceCaps.) If a capability is not provided by the hardware, the hal does not report it as a hardware capability.

For more information about hal and reference devices supported by Direct3D, see Device Types (Direct3D 9).

*.首先Device的使用者要準備好頂點數據,也就是一個頂點的數組,稱為A 
*.然后這個數組A被傳入device的渲染管線
*.device內部依次對每個頂點進行處理,有兩種模式,固定管線和shader模式,所謂固定管線就是device內部實現的一個固定的程 序,用戶只能通過設定各種參數(一些RenderState)來控制它,當然這不夠靈活,所以有了shader模式,也就是說,用戶需要寫一個程序片段 (所謂vertex shader),傳給device,然后device使用這個片段對每個頂點進行處理.這個程序片段是在顯卡上執行的.
*.傳入的頂點數組A的每一個元素被轉換后,存儲到另一個數組B中.數組B中的每個元素必須至少包含一個透視空間的位置,用來做裁剪.
*.數組B被傳入到device的下一個計算階段,在這個階段里,數組B中的(被轉換過的)頂點被組織成一個個三角形,然后對這些三角形進行裁 剪(利用頂點數據里包含的那一個透視空間的位置),背面剔除(注意背面剔除和頂點的法線是沒關系的),最后剩下的三角形被保存到一個數組C中.(注意在這 個階段里頂點數組變成了三角形數組)
*.數組C被傳入到下一個計算階段,光柵化,對于數組C中每一個三角形,首先把它們從透視空間映射到屏幕空間,然后找出它們在屏幕上覆蓋的像素 (一個三角形覆蓋的像素的數量有可能是很多的),對于每一個像素,根據它在三角形中的位置,通過三角形的頂點進行線性插值,計算出一個像素數據(注意像素 數據是通過三角形的頂點數據插值而來,所以它們的數據類型是一致的),所有三角形算出來的像素數據最后被存儲到一個數組D中.(在這個階段里,三角形的數 組變成了像素數據數組)
*.數組D被傳入到下一個計算階段,在這個階段里,device會對這些像素做一些初步的過濾,主要是進行stencil test(根據stencil
buffer上的值)和z-test(根據這個像素的Z值和z-buffer上的值進行比較),根據測試結果會對stencil buffer進行一些修改(使用一組render state來控制這個過程),通過這些test的像素被存儲到數組E.
*.數組E被傳入到下一個計算階段,在這個階段里,device對每個像素數據進行處理,這個階段也有兩種模式,固定管線和shader模式, 與頂點處理階段類似,用戶也可以寫一個程序片段,來對每一個像素數據進行處理,稱為pixel shader.像素數據可能包含各種類型的數據,但經過這一階段的處理后,輸出是很簡單的,一般就是一個顏色值和一個alpha值(透明度),也可以輸出 一個Z值,不過好像不常用.在pixel shader里還可以使用專門的指令來放棄某一個像素的后續處理.所有的像素數據被處理后,結果存在一個數組F中.
*.數組F進入下一個階段,在這一個階段里,進行alpha test(根據像素的alpha 值),alpha test是最后一個test了,通過了alpha test的像素可以保證繪制到屏幕上去,通過test的像素會把它們的z值更新到z-buffer中去(具體由一組render state控制),通過test的像素被存入數組G
*.數組G進入下一個階段,在這個階段里,主要是把數組G里的像素和屏幕上已有的像素進行混合,具體混合的方式有多種多樣,由一系列render state進行控制.混合以后的像素就被"畫"到屏幕上了

posted on 2009-05-11 22:21 狂爛球 閱讀(4232) 評論(2)  編輯 收藏 引用 所屬分類: 圖形編程

評論

# re: 復雜一下D3D渲染流程 2009-05-11 23:06 chib

@@ 標題??  回復  更多評論   

# re: 復習一下D3D渲染流程 2009-05-12 10:25 Sail Tsao

原來標題是復習.....汗一個....  回復  更多評論   

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美在线地址| 亚洲精品乱码久久久久久按摩观 | 亚洲欧美日本日韩| 欧美视频在线播放| 亚洲性xxxx| 亚洲欧美韩国| 在线看片一区| 亚洲国产乱码最新视频| 久久伊人精品天天| 日韩视频欧美视频| 亚洲一区在线看| 精品69视频一区二区三区| 欧美高清在线| 欧美色中文字幕| 欧美在线精品一区| 乱码第一页成人| 亚洲在线视频免费观看| 亚洲在线观看免费| 午夜视频在线观看一区二区三区| 黄色成人在线观看| 91久久精品网| 国产亚洲免费的视频看| 欧美国产一区二区三区激情无套| 欧美日韩日本视频| 久久成人羞羞网站| 欧美精品久久久久久久| 久久av红桃一区二区小说| 美女久久一区| 欧美专区一区二区三区| 欧美极品在线观看| 久久久久免费视频| 欧美日韩精品免费观看视一区二区| 欧美一区亚洲| 欧美激情中文字幕在线| 久久精品欧美日韩| 欧美三级网页| 亚洲国产精品黑人久久久| 国产精品一区二区你懂得 | 欧美凹凸一区二区三区视频| 欧美婷婷在线| 亚洲国产精品123| 国产视频精品网| 99亚洲精品| 亚洲精品综合| 久久美女艺术照精彩视频福利播放| 亚洲影院色无极综合| 免费观看亚洲视频大全| 久久精品在线观看| 国产精品日本欧美一区二区三区| 亚洲高清在线精品| 在线播放不卡| 久久国产视频网| 欧美在线视频在线播放完整版免费观看 | 国产精品日韩久久久| 亚洲人成毛片在线播放| …久久精品99久久香蕉国产 | 亚洲欧洲一区二区三区在线观看| 一区二区三区在线看| 欧美一级视频免费在线观看| 午夜精品国产更新| 国产精品久久7| 在线视频一区观看| 亚洲综合色激情五月| 欧美日韩亚洲国产精品| 亚洲美女在线视频| 一区二区欧美在线观看| 欧美肉体xxxx裸体137大胆| 亚洲乱码国产乱码精品精| 99在线精品视频在线观看| 欧美精品七区| 亚洲美女av电影| 制服诱惑一区二区| 国产精品a久久久久久| 一本色道久久88综合亚洲精品ⅰ| 日韩天天综合| 欧美伊人久久大香线蕉综合69| 亚洲综合日韩中文字幕v在线| 欧美视频网址| 亚洲欧美福利一区二区| 久久av在线| 黄色成人在线| 欧美激情综合亚洲一二区| 亚洲欧洲中文日韩久久av乱码| 日韩亚洲欧美中文三级| 国产精品美女主播在线观看纯欲| 午夜精品视频在线| 久久先锋影音av| 亚洲三级网站| 国产精品九九| 久久久久国产精品午夜一区| 亚洲成人资源| 亚洲一区二区视频| 国产午夜精品久久| 另类国产ts人妖高潮视频| 日韩午夜在线电影| 久久aⅴ国产欧美74aaa| 亚洲欧洲日本国产| 欧美午夜视频网站| 久久精品国产77777蜜臀| 亚洲国产欧美一区二区三区同亚洲 | 精品成人在线视频| 欧美日韩国产欧| 欧美一区二区三区喷汁尤物| 欧美大片在线影院| 午夜精品电影| 亚洲精品久久久一区二区三区| 国产精品久久久久久久久借妻| 久久精品综合网| 在线午夜精品自拍| 欧美黄色小视频| 欧美有码在线观看视频| 亚洲精品一区久久久久久| 国产日韩欧美在线一区| 欧美日韩mp4| 久久午夜电影网| 亚洲欧美精品suv| 亚洲破处大片| 麻豆成人在线观看| 欧美一区二区视频在线观看| 日韩午夜av| 亚洲国产精品www| 国产日韩精品一区二区三区| 欧美精品亚洲精品| 久久免费国产精品| 欧美一区二区三区日韩视频| 一本久久综合亚洲鲁鲁五月天| 欧美成人亚洲成人日韩成人| 久久久国产精品一区二区三区| 亚洲一区欧美一区| 一本色道久久综合亚洲精品按摩| …久久精品99久久香蕉国产 | 欧美日韩dvd在线观看| 欧美a一区二区| 六月丁香综合| 久久久久国产精品厨房| 久久精品亚洲精品| 欧美在线一二三四区| 亚洲欧美激情诱惑| 午夜影视日本亚洲欧洲精品| 亚洲一区欧美| 亚洲欧美一区二区三区在线| 亚洲一级影院| 亚洲午夜精品一区二区| 亚洲国产精品va在线看黑人 | 99国内精品久久久久久久软件| 欧美国产在线观看| 欧美成人午夜剧场免费观看| 美女视频黄a大片欧美| 可以免费看不卡的av网站| 久久久久国内| 欧美77777| 欧美激情久久久久久| 亚洲成色999久久网站| 亚洲国产精品精华液2区45| 欧美高清视频| 亚洲美女在线一区| 亚洲一区二区三区在线播放| 亚洲在线观看免费| 久久精品视频播放| 看欧美日韩国产| 欧美精品免费看| 国产精品主播| 在线视频观看日韩| 一区二区三区欧美亚洲| 亚洲素人在线| 久久久久国色av免费看影院| 麻豆国产精品va在线观看不卡| 亚洲国产精品传媒在线观看 | 久久国产欧美精品| 欧美电影打屁股sp| 国产精品久久久久久久久搜平片 | 一区在线播放视频| 亚洲美女91| 欧美中文在线免费| 欧美aⅴ一区二区三区视频| 亚洲理论在线| 欧美一区免费视频| 欧美极品色图| 国产欧美日韩精品专区| 在线观看日韩av| 亚洲午夜精品一区二区三区他趣| 久久久久国产精品午夜一区| 亚洲国产婷婷| 欧美一区二区观看视频| 欧美a级片一区| 国内精品一区二区| 亚洲网站在线| 欧美激情va永久在线播放| 亚洲一区二区视频在线| 久久这里只精品最新地址| 国产精品久久久久久久久久免费看 | 亚洲精品久久久久久久久久久久| 亚洲欧美综合精品久久成人| 欧美国产日韩一区二区| 狠狠狠色丁香婷婷综合激情| 在线一区二区视频| 欧美黄色免费网站| 久久久久久日产精品| 国产精品拍天天在线| 一本一本大道香蕉久在线精品|