原创 Irrlicht引擎源碼剖析——第十天

在include分類目錄下的5個模塊,僅剩gui模塊了。我覺得gui模塊算是引擎的附加功能,可以獨立出來看,所以先放下這塊。一鼓作氣先把引擎最重要的核心部分——video、scene的實現模塊搞定。   按照之前看的順序,先從video模

原创 Irrlicht引擎源碼剖析——第四天

今天先看aabbox3d.h文件。在這個文件裏實現了邊界盒的相關操作,如邊界盒與點、平面、邊界盒的相交關係,重載運算符等等。   在heapsort.h中,實現了一個堆排序的算法。   在array.h中,實現了數組模板類,感覺就像SLT

原创 Irrlicht引擎源碼剖析——第十八天

今天開始看GUI(圖像用戶界面)模塊的實現部分了。首先是BuildInFont.h,內置字體,在這個頭文件裏作者使用了Bin2H。Bin2H是免費軟件,可以從www.code3d.com 免費下載,一個將二進制文件轉換到 C 頭文件中的W

原创 Irrlicht引擎源碼剖析——第十五天

今天開始看scene impl部分。場景管理部分是該引擎的核心,我們要開始最精彩的部分落!當然首先從內容最少的文件開始入手。CSeneNodeAnimatorFlyCircle.h/.cpp,實現了轉換動畫場景結點的類。CSceneNod

原创 【圖像縮放篇之一】近鄰取樣插值和其速度優化

tag:圖像縮放、速度優化、定點數優化、近鄰取樣插值、二次線性插值、三次線性插值、     MipMap鏈、三次卷積插值、MMX/SSE優化、CPU緩存優化 摘要:首先給出一個基本的圖像縮放算法,然後一步一步的優化其速度和縮放質

原创 OpenGL基礎圖形編程

一、OpenGL與3D圖形世界 1.1、OpenGL使人們進入三維圖形世界   我們生活在一個充滿三維物體的三維世界中,爲了使計算機能精確地再現這些物體,我們必須能在三維空間描繪這些物體。我們又生活在一個充滿信息的世界中,能否儘快地

原创 BSP(二叉空間分割)樹

BSP(二叉空間分割)樹是另一種類型的空間分割技術,其已經在遊戲工業上應用了許多年(Doom是第一個使用BSP樹的商業遊戲)。儘管在今天BSP樹已經沒像過去那麼受歡迎了,但現在仍在廣泛地採用這項技術。 當你看一下BSP在碰撞檢測方面那

原创 Irrlicht引擎源碼剖析——第九天

今天首先看ISceneNode.h文件,這個文件內容相比以前豐富多了。實現了場景結點的接口。對於一個場景結點,定義了結點名字、各轉換矩陣、父結點指針、子結點存儲鏈表、結點動畫存儲鏈表、結點id、結點能否訪問等屬性。並根據這些成員實現了一些

原创 Irrlicht引擎源碼剖析——第十三天

依照看的順序,今天先看CTRFlat.cpp,該文件實現了一個平面着色三角形的渲染器,派生於CTRTextureGouraud接口類。與之相關的CTRFlatWire.cpp,實現了以線框形態繪製物體的渲染器類。   在CTRGourau

原创 Irrlicht引擎源碼剖析——第十四天

昨天結束了CVideoSoftware類,今天看DirectX和OpenGL的封裝。先看DirectX中的CDirectX8Texture.h/.cpp,在這部分的實現裏,用到了d3d8.h、d3dx8tex.h頭文件以及d3dx8.li

原创 八叉樹

左: 立方體的切割. 右: 對應的八叉樹 維基釋義:八叉樹(Octree)是一種用於描述三維空間的樹狀數據結構。八叉樹的每個節點表示一個正方體的體積元素,每個節點有八個子節點,這八個子節點所表示的體積元素加在一起就等於父

原创 Irrlicht引擎源碼剖析——第五天

在目測了一番後,決定從io模塊下手。 先看IFileList.h,顧名思義,創建了一個文件列表類,一個基類。然後看IReadFile.h,創建了用於讀取文件的基類,在前兩個的基礎上實現了IFileList.h中的文件系統類。文件系統(F

原创 Irrlicht引擎源碼剖析——第十七天

今天開始看圖像用戶界面(GUI)的實現了。首先是include\gui下的頭文件,先預覽各個文件的預定義部分,發現大多數都包含了IGUIElement.h頭文件,所以首先看IGUIEnvironment.h。在該文件裏實現了一個GUI全部

原创 夢境記——老婆餅

夢境記——老婆餅 2012.08.02 騎着自行車遊弋在街道上,街景如此熟悉,卻記不得是哪。 街上過往人車很多,但是給人一詭異的安靜。 貼着街邊,一個個商店從我眼角劃過。 忽然,感覺像是被什麼給刺中了,抑或是被什麼閃耀到了。 我停住前行的

原创 Irrlicht引擎源碼剖析——第十二天

根據在include\video下的EdriverTypes.h文件中定義的驅動器類型的排列順序,我們開始看video impl\Software下的文件。遵照頭文件的包含關係以及內容多少的原則,先看S2Dvertex.h文件,在該文件中