Irrlicht引擎原始碼剖析 第十二天

2021-06-08 07:08:35 字數 720 閱讀 7578

根據在include\video下的edrivertypes.h檔案中定義的驅動器型別的排列順序,我們開始看video impl\software下的檔案。遵照標頭檔案的包含關係以及內容多少的原則,先看s2dvertex.h檔案,在該檔案中實現了乙個基於2d的頂點結構。

檔案izbuffer.h中宣告了乙個z緩衝介面類,在czbuffer.h/.cpp中,宣告的z緩衝類就是該介面類的派生類。有清空z緩衝、設定或獲取z緩衝大小、鎖定或解鎖z緩衝等方法。

在ik3d********renderer.h中,建立了乙個三角形渲染器型別的列舉變數,可能你會覺得這個列舉結構裡的內容很眼熟,因為在smaterial.h檔案中的材質標誌的列舉變數,其內容指定相似。宣告了乙個三角形渲染器類。有設定渲染目標、從表面裁剪、紋理設定、各種不同渲染器的建立函式等方法。

檔案ctrtexturegouraud.h/.cpp中,crt意指class、********、renderer,即三角形渲染器類。gouraud是指高洛德著色。這種著色的效果比平面著色要好得多,也是在遊戲中使用最廣泛的一種著色方式。它可對3d模型各頂點的顏色進行平滑、融合處理,將每個多邊形上的每個點賦以一組色調值,同時將多邊形著上較為順滑的漸變色,使其外觀具有更強烈的實時感和立體動感,不過其著色速度比平面著色慢得多。這個類有設定乙個渲染目標、設定背面剔除、根據索引列表繪製三角形、設定紋理、交換兩個紋理結構體等方法,有多個與表面、紋理相關的成員變數。

over!今天解決9個**檔案,還剩92個。

irrlicht引擎原始碼剖析 引用計數

在研究irrlicht的video driver和scene graph之前,必須先了解在irrlicht中廣泛應用的引用計數機制。irrlicht的介面ireferencecounted實現了引用計數的機制。需要採用引用計數管理的類都會繼承這個介面。irr的引用計數最重要的兩個介面就是grab 和...

irrlicht引擎原始碼剖析 引用計數

在研究irrlicht的video driver和scene graph之前,必須先了解在irrlicht中廣泛應用的引用計數機制。irrlicht的介面ireferencecounted實現了引用計數的機制。需要採用引用計數管理的類都會繼承這個介面。irr的引用計數最重要的兩個介面就是grab 和...

Irrlicht引擎原始碼剖析 第三天

今天開始看include core部分,首先開啟irrmath.h,該檔案在core命名空間裡定義了4個常數,如浮點數比較時的捨入精度,圓周率,以及用於角度與弧度之間轉換的常數值。接著看vector2d.h,該檔案實現了乙個2d向量的模板類,以其相關方法的定義。因為該類中的normalize 方法的...