一、 引言
Irrlicht引擎是一個用C++書寫的高性能實時的3D引擎,可以應(yīng)用于C++程序或者.net語言中。通過使用Direct3D(Windows平臺),OpenGL 1.2或它自己的軟件著色程序,可以實現(xiàn)該引擎的完全跨平臺。盡管是開源的,該Irrlicht庫提供了可以在商業(yè)級的3D引擎上具有的藝術(shù)特性,例如動態(tài)的陰影,粒子系統(tǒng),角色動畫,室內(nèi)和室外技術(shù)以及碰撞檢測等。
Irrlicht是一個德國神話故事中的一種動物的名字,它能夠發(fā)光和飛翔,可以在大部分的沼澤地附近發(fā)現(xiàn)它。單詞"Irrlicht"是兩個德國單詞("irr"意思是瘋狂的;而"Licht"意思是光)的組合。在英語中,它被譯為"鬼火"。
Irrlicht十分幸運地為一個巨大的活躍的開發(fā)團隊以大量的工程所支持。然而,因為Irrlicht主要由游戲名家Nikolaus Gebhardt所設(shè)計,所以該游戲在設(shè)計上十分連貫。你可以在網(wǎng)上到處發(fā)現(xiàn)有Irrlicht的增強程序,如可選用的地形生成器,入口生成器,輸出器,world層生成器,相關(guān)教程和編輯器等。而且,它獨立地創(chuàng)建了到Java,Perl,Ruby,BASIC,Python,LUA甚至更多種語言的綁定。而最為重要的是,它是完全自由的。
二、 Irrlicht特性
在深入分析API之前,請讓我更具體地介紹一下Irrlicht提供給了3D游戲開發(fā)者哪些功能:
·一個可以運行于Linux以及Windows 98,ME,NT,2000和XP(MacOS在計劃之中)等操作系統(tǒng)之上的引擎
·針對Direct3D 8生成器或Direct3D 9生成器(可選)提供了Anti-aliasing支持
·可換膚的GUI環(huán)境(包括一個很酷的具有金屬質(zhì)地的帶陰影的皮膚),給一些老式的對話框加上漂亮的外觀
·場景管理系統(tǒng),它允許無縫的室內(nèi)/室外過渡
·角色動畫系統(tǒng),帶有骨骼和變形目標動畫功能
·一個特殊的效果系統(tǒng),包括粒子效果(雨,煙,火,雪,等等),告示板,燈光貼圖,環(huán)境,地圖,模板緩沖區(qū)陰影,霧,紋理動畫,視差貼圖,凹凸貼圖,還有更多
·內(nèi)建的材質(zhì)支持,包括支持Pixel and Vertex Shaders版本1.1到3.0,ARB Fragment and Vertex程序以及HLSL(GLSL正在計劃中)
·.NET語言綁定,這使得引擎可用于所有的.NET語言例如C#,Visual Basic.NET以及Delphi.NET
·一內(nèi)建的平*立的軟件生成器,特性有:z-緩沖,Gouraud陰影,alpha混合和透明性,還有快速的2D繪圖(見圖2)
·你久已期待的2D繪圖功能,例如alpha混合,基于關(guān)鍵色的位圖復(fù)制,字體繪制,以及混合3D與2D圖形
·能直接導(dǎo)入常見的建模文件格式:Maya,3DStudio Max,COLLADA,DeleD,Milkshape,Quake 3 levels,Quake2 models,DirectX,Pulsar,My3DTools,F(xiàn)SRad以及Cartography Shop
·能直接從BMP,PNG,Photoshop,JPEG,Targa和PCX導(dǎo)入紋理
·快速而易用的碰撞檢測與響應(yīng)
·為快速的3D運算和容器模板庫進行了優(yōu)化處理
·直接讀取檔案(可能是壓縮的,如.zip文件)
·集成了快速的XML分析器
·為實現(xiàn)容易的本地化開發(fā)提供Unicode支持
Irrlicht引擎是一個用C++書寫的高性能實時的3D引擎,可以應(yīng)用于C++程序或者.net語言中。通過使用Direct3D(Windows平臺),OpenGL 1.2或它自己的軟件著色程序,可以實現(xiàn)該引擎的完全跨平臺。盡管是開源的,該Irrlicht庫提供了可以在商業(yè)級的3D引擎上具有的藝術(shù)特性,例如動態(tài)的陰影,粒子系統(tǒng),角色動畫,室內(nèi)和室外技術(shù)以及碰撞檢測等。
Irrlicht是一個德國神話故事中的一種動物的名字,它能夠發(fā)光和飛翔,可以在大部分的沼澤地附近發(fā)現(xiàn)它。單詞"Irrlicht"是兩個德國單詞("irr"意思是瘋狂的;而"Licht"意思是光)的組合。在英語中,它被譯為"鬼火"。
Irrlicht十分幸運地為一個巨大的活躍的開發(fā)團隊以大量的工程所支持。然而,因為Irrlicht主要由游戲名家Nikolaus Gebhardt所設(shè)計,所以該游戲在設(shè)計上十分連貫。你可以在網(wǎng)上到處發(fā)現(xiàn)有Irrlicht的增強程序,如可選用的地形生成器,入口生成器,輸出器,world層生成器,相關(guān)教程和編輯器等。而且,它獨立地創(chuàng)建了到Java,Perl,Ruby,BASIC,Python,LUA甚至更多種語言的綁定。而最為重要的是,它是完全自由的。
二、 Irrlicht特性
在深入分析API之前,請讓我更具體地介紹一下Irrlicht提供給了3D游戲開發(fā)者哪些功能:
·一個可以運行于Linux以及Windows 98,ME,NT,2000和XP(MacOS在計劃之中)等操作系統(tǒng)之上的引擎
·針對Direct3D 8生成器或Direct3D 9生成器(可選)提供了Anti-aliasing支持
·可換膚的GUI環(huán)境(包括一個很酷的具有金屬質(zhì)地的帶陰影的皮膚),給一些老式的對話框加上漂亮的外觀
·場景管理系統(tǒng),它允許無縫的室內(nèi)/室外過渡
·角色動畫系統(tǒng),帶有骨骼和變形目標動畫功能
·一個特殊的效果系統(tǒng),包括粒子效果(雨,煙,火,雪,等等),告示板,燈光貼圖,環(huán)境,地圖,模板緩沖區(qū)陰影,霧,紋理動畫,視差貼圖,凹凸貼圖,還有更多
·內(nèi)建的材質(zhì)支持,包括支持Pixel and Vertex Shaders版本1.1到3.0,ARB Fragment and Vertex程序以及HLSL(GLSL正在計劃中)
·.NET語言綁定,這使得引擎可用于所有的.NET語言例如C#,Visual Basic.NET以及Delphi.NET
·一內(nèi)建的平*立的軟件生成器,特性有:z-緩沖,Gouraud陰影,alpha混合和透明性,還有快速的2D繪圖(見圖2)
·你久已期待的2D繪圖功能,例如alpha混合,基于關(guān)鍵色的位圖復(fù)制,字體繪制,以及混合3D與2D圖形
·能直接導(dǎo)入常見的建模文件格式:Maya,3DStudio Max,COLLADA,DeleD,Milkshape,Quake 3 levels,Quake2 models,DirectX,Pulsar,My3DTools,F(xiàn)SRad以及Cartography Shop
·能直接從BMP,PNG,Photoshop,JPEG,Targa和PCX導(dǎo)入紋理
·快速而易用的碰撞檢測與響應(yīng)
·為快速的3D運算和容器模板庫進行了優(yōu)化處理
·直接讀取檔案(可能是壓縮的,如.zip文件)
·集成了快速的XML分析器
·為實現(xiàn)容易的本地化開發(fā)提供Unicode支持