1. 程式人生 > >DirectX.9.0.3D遊戲開發總結

DirectX.9.0.3D遊戲開發總結

DirectX.9.0.3D遊戲開發總結 涉及到的書籍:《3D數學基礎:圖形與遊戲開發》、《DirectX 9.0.3D遊戲開發程式設計基礎》、《深入理解C++11》、《計算機圖形學》、《遊戲引擎架構》 渲染==繪製(向目標視窗繪製圖像) 一、三維幾何學基礎 1、三維座標系統 2、點與向量 3、矩陣與三維旋轉 4、四元數與三維矩陣
二、實時渲染管道(渲染管道=繪製流水線): 1、應用場景(場景管理、可見性剔除、分組排序、提交圖元) 2、幾何階段(頂點著色、圖元組裝、面向剔除、三角形剪裁、透視除法、視區變換) 3、光柵化階段(掃描轉換、scissor/stencil/alpha測試、alpha混合)
三、遊戲中的光照與陰影
1、實時光照分類(正向渲染、延遲渲染、Tile正向/延遲渲染) 2、區域性光照中的光源(環境光、方向光、聚光、cookie) 3、陰影(平面陰影、陰影體積、陰影貼圖、PCF、VSM、CSM) 4、全域性光照(光照貼圖、幅照度環境貼圖、球諧函式)
四、材料著色原理與實踐 1、材質反射模型(渲染方程、BRDF、Lambertian、Phong、Blinn-Phong) 2、材質著色器程式設計(環境光、環境遮蔽、發光物體、貼圖取樣、環境貼圖、法線貼圖、輪廓光、紋理座標動畫) 3、特殊著色器(卡通渲染、Kajiya-Kay、......)
重要問題: 1、世界座標系、區域性座標系、觀察座標系。
2、圖形渲染(繪製流水線) 一旦建立了3D場景的幾何描述,並設定好虛擬攝像機,我們下面的任務就是在顯示器中建立該場景的2D表示。為實現這一目標所實施的一系列運算統稱為繪製流水線(rendering pipeline) (用來建立為3D世界進行幾何描述的2D圖形並設定一個虛擬照相機確定這個世界哪一部分將被投影到螢幕上) 流程: 一個簡化的繪製流水線 1)座標系之間的變換借助矩陣來實現 區域性座標系 世界座標系 觀察者座標系 2)背面消隱 3)光照 4)剪裁 5)投影 投影變換定義了視域體,並負責將視域體中的幾何體投影到投影視窗中 6)視口變換 7)光柵化 繪製流水線總結 繪製流水線方法

表現模型:點、線和 三角形是用來建立模型或物件的渲染基元。3D世界中最基本的圖元就是三角形 一個多邊形的兩邊相交的點叫做 頂點,為了描述一個三角形,我們通常指定三個點的位置來對應三角形的三個頂點,從而明確表示出三角形。
頂點格式:Direct3D 頂點包含了許多附加屬性,例如,一個頂點可以有顏色和法線向量屬性。可以靈活的構造自己的頂點格式。一旦擁有了完整的頂點格式,就要使用靈活頂點格式(FVF)的組合標誌來描述它。
三角形:構建3D物體的基本圖形。為了構造物體,建立了三角形列表(triangle list)來描述物體的形狀和輪廓。三角形列表包含了將要畫的每一個三角形的資料資訊。
索引:存放在視訊記憶體中,進行繪製時,使用視訊記憶體中的資料比使用系統記憶體中的資料快的多繪製速度。頂點索引與索引快取