KlayGE游戏引擎
From KlayGE游戲引擎, post address http://www.klayge.org/about/features/轉(zhuǎn)載請注明出處為KlayGE游戲引擎,本文地址為http://www.klayge.org/about/features/
概覽
KlayGE是用于下一代游戲的一個完整的游戲開發(fā)框架。它是API無關(guān)的插件式結(jié)構(gòu),提供了很多先進(jìn)技術(shù),并且有無限的擴展性。
KlayGE的設(shè)計目的非常明確,用最先進(jìn)的技術(shù)武裝引擎。它所提供框架使游戲的開發(fā)、測試、移植得到簡化。KlayGE的目標(biāo)平臺是當(dāng)年發(fā)布的最高硬件到前一年發(fā)布的最低硬件。
圖形
- 支持D3D11,OpenGL和OpenGL ES 2
- 采用fxml作為可渲染物體的特效腳本,可以直接把美工生成的特效導(dǎo)出使用
- Python腳本可以在運行期動態(tài)解釋,所以修改腳本以后不需要重新編譯
- 可以通過height map來建立地形場景
- 支持骨骼動畫
- 硬件Occlusion culling
- 粒子系統(tǒng)
- Post processing技術(shù)
- 自適應(yīng)硬件狀態(tài)緩存和延遲更新機制
- 支持逐像素光照和渲染技術(shù)
- 基于distance的字體系統(tǒng),兼有矢量和點陣的優(yōu)點
- 支持Procedural texture
- 支持Subsurface Scattering,可用于渲染樹葉、皮膚、玉器等半透明材質(zhì)
- 支持PN Triangles技術(shù),在運行期自動光滑低模
- 著色
- 包含常用操作的shader庫
- 完全抽象出圖形API
- 多遍渲染
- 完全支持可編程著色
- 可以使用多條渲染流
- 光照
- 動態(tài)光照
- 全方向shadow map
音頻
- 支持各種平臺的音頻輸出
- 支持3D聲音定位和多普勒效應(yīng)
- 輸入格式支持Ogg Vorbis
- 支持流式播放
工具
- 法線圖生成器,可以從高度圖生成法線圖
- 距離圖生成器,可以從高度圖或3D紋理生成距離圖
- MeshML導(dǎo)出插件,從3DS Max導(dǎo)出模型
- OpenGL兼容性檢測工具
- HDR壓縮器,支持cubemap和2D HDR紋理的壓縮
- Normal map壓縮器,2:1或4:1的壓縮率
- 基于distance的字體生成器,可以把矢量字體轉(zhuǎn)換成引擎使用的字體格式
- FXML2Shader工具,把FXML的特效腳本轉(zhuǎn)換成HLSL或Cg
程序特性
- 引擎是開放源代碼的,包含了100%的引擎、工具的源代碼
- 可擴展的、面向?qū)ο蟮腃++引擎,帶有用于靜態(tài)和動態(tài)加載代碼和資源的軟件架構(gòu),易于移植和調(diào)試
- 用Python作為腳本語言,提供了對動態(tài)數(shù)據(jù)的自動支持,開發(fā)調(diào)試方便,并很容易和C++主程序配合工作
目錄
問:KlayGE是什么?
答:KlayGE是一個開放源代碼、跨平臺的游戲引擎。它是用C++開發(fā)的,并使用Python作腳本語言。KlayGE在GPL協(xié)議下發(fā)行。
回到目錄
問:KlayGE是你一個人開發(fā)的嗎?
答:是的。幾乎所有的開發(fā)都是我一個人完成的。但在這個過程中使用了一些第三方的代碼,比如7zip的解碼部分。不少朋友也在開發(fā)的過程中給予了不可或缺的幫助。
回到目錄
問:哪里能找到KlayGE的文檔?
答:目前KlayGE的文檔僅限于Documentation下的文件。文檔缺乏的原因主要是我沒有足夠的時間去寫,另外我更希望用代碼本身來自我詮釋。
回到目錄
問:為什么選擇了GPL?
答:在KlayGE 2.7之前使用的是LGPL協(xié)議,但后來為了保護它不被某些專有軟件吞并,所以換成了GPL。
回到目錄
問:為什么用Python而不是LUA?
答:KlayGE 2.0之前(當(dāng)時還叫作Clay! Engine),LUA是首選的腳本語言。LUA的優(yōu)點是速度快,缺點是在C++中的調(diào)用極其麻煩,而且語言本身能力較弱。Python速度不如LUA, 但是語言能力強大得多,也不必寫成棧式的調(diào)用方式,簡潔得多。在KlayGE中,腳本不是為了效率而存在的,所以Python成了不二之選。
回到目錄
問:為什么必須要有Shader Model 2.0及以上?
答:KlayGE是一款面向高端的引擎,所以在一定程度上要用較高的配置,以滿足先進(jìn)技術(shù)的需要。另一方面,Shader Model 2.0并不算一個很高的要求,市面上的新顯卡幾乎都是支持Shader Model 3.0的。對于游戲開發(fā)者來說,如果現(xiàn)在還在使用不支持Shader Model 2.0的硬件,那只能說實在落后得太多了。
回到目錄
問:KlayGE的網(wǎng)絡(luò)部分如何?
答:KlayGE中的網(wǎng)絡(luò)是弱項,甚至可以說幾乎無法使用。所以需要重新開發(fā),或者使用別的網(wǎng)絡(luò)庫。
回到目錄
問:編譯例子的時候出現(xiàn)像這樣的連接錯誤信息:“l(fā)ibcmtd.lib(dbgheap.obj) : error LNK2005: __CrtSetDbgFlag 已經(jīng)在MSVCRTD.lib(MSVCR80D.dll) 中定義”,請問如何解決?
答:由于KlayGE在VC下使用的運行庫是多線程的DLL,所以需要把所有連接到exe的lib的運行庫改為 多線程DLL(Project- >Properties->Configuration Properties->C/C++->Code Generation->RuntimeLibrary,選擇Multi-threaded Debug DLL/Multi-threaded DLL)。
回到目錄
問:Boost編譯的時候應(yīng)該用什么參數(shù)?
答:Boost 1.36的編譯參數(shù)可以通過bjam的命令行參數(shù)來設(shè)置,可以寫一個批處理文件,內(nèi)容是:
SET BZIP2_SOURCE="D:/bzip2-1.0.5" SET ZLIB_SOURCE="D:/zlib-1.2.3" SET ICU_PATH="D:/icu4c-3_6" bjam --toolset=msvc-9.0 --stagedir=./lib_vc9_x86 --builddir=./ address-model=32 link=shared runtime-link=shared threading=multi cxxflags=-wd4819 cxxflags=-wd4910 define=_CRT_SECURE_NO_DEPRECATE define=_SCL_SECURE_NO_DEPRECATE define=_SECURE_SCL=0 stage debug release bjam --toolset=msvc-9.0 --stagedir=./lib_vc9_x64 --builddir=./ address-model=64 link=shared runtime-link=shared threading=multi cxxflags=-wd4819 cxxflags=-wd4910 define=_CRT_SECURE_NO_DEPRECATE define=_SCL_SECURE_NO_DEPRECATE define=_SECURE_SCL=0 stage debug release直接在boost的目錄下運行這個批處理就可以編譯出dll版本的boost庫。
回到目錄
問:為什么在Visual Studio里運行例子的時候ResLoader::Load出現(xiàn)assert failed?
答:需要在Visual Studio中把工程的Working Directory設(shè)置成$(OutDir)。此問題在KlayGE 3.10中不再出現(xiàn)。
回到目錄
問:在編譯的時候提示”‘yasm’ is not recognized as an internal or external command, operable program or batch file.”,如何解決?
答:根據(jù)設(shè)置,Visual Studio的編譯工具必須能調(diào)用yasm才能編譯.asm的文件。解決方法之一是把下載下來的yasm-X.X.X-winYY.exe(X表示版本 號,YY表示32或64)改名成yasm.exe,并拷貝到VC的bin目錄下,比如”C:Program FilesMicrosoft Visual Studio 9.0VCbin”。(注:這個問題實際上不該出現(xiàn)在本FAQ中,因為這其實是個命令行調(diào)用的問題,誰都該會的。可悲于國內(nèi)“開發(fā)者”的素質(zhì),竟然有 不少人都問了我該問題,使得我不得不將它寫在這里。)此問題將在KlayGE 3.11中避免。
愿望列表
From KlayGE
Jump to: navigation, search這里列出了一些希望以后能加入KlayGE的功能。
愿望列表可以用來激勵未來的工作。其中有些是很明確的做法,有些只是飄渺的想法,大部分則介于兩者之間。同樣,實現(xiàn)這些條目的工作量從對現(xiàn)有接口的小修改到大的研究項目都有。
Contents[hide]
|
愿望列表
矢量紋理
直接在texel上存儲矢量參數(shù),字體系統(tǒng)也可以建立在其之上。
軟件渲染插件
類似于D3D10的軟件渲染插件,用純軟件支持D3D10+的所有功能。
基于HTML5的UI
集成HTML5渲染器,可以直接用HTML5來作為UI的表達(dá)方式。
地形渲染
大規(guī)模地形渲染。
去除DirectShow
不使用DirectShow來播放視頻和音頻。備選方案之一是用.ogm作為容器格式,Theora作為視頻編碼,Vorbis作為音頻編碼,同時也支持字幕。
GPU上進(jìn)行物理和數(shù)學(xué)計算
提出人:吳野
GPGPU的物理模擬和線性代數(shù)計算。
實時全局光照
提出人:吳野
實時計算全局光照。支持陰影、折射、反射、半透明和多次散射。
強大的內(nèi)存管理器
支持跨越DLL邊界的內(nèi)存分配/清除、泄露檢測和內(nèi)存池。最好能Lock-free或Wait-free。
GPU音頻處理
通過GPU處理音頻(3D、特效),然后傳給聲卡播放。
Command buffer的記錄和重放
把所有的DX/OGL API調(diào)用都在一個線程里捕捉,并可以在其它線程里重放。
實時Catmull-Clark細(xì)分
提出人:周波
實現(xiàn)Approximating Catmull-Clark Subdivision Surfaces with Bicubic Patches的GPU細(xì)分算法
正在做的
基于GPU的細(xì)分
在D3D11/D3D10(ATI)上支持硬件的細(xì)分,在D3D9/OpenGL上支持基于shader的細(xì)分。(D3D11的細(xì)分已經(jīng)支持了)
移動平臺支持
OpenGL ES 2.0插件和D3D mobile插件。(OpenGL ES 2.0插件已經(jīng)完成)
已經(jīng)完成
延遲著色
延遲著色的渲染系統(tǒng),支持抗鋸齒和透明。(作為KlayGE 3.8.0的一個例子)
深度剝離
順序無關(guān)的透明。(作為KlayGE 3.7.0的一個例子)
屏幕空間環(huán)境遮擋
用SSAO來增加暗處的細(xì)節(jié)。(作為KlayGE 3.8.0的一個例子)
KlayGE 3.12.0在上半年的最后一天發(fā)布了!本版的亮點是支持實時全局光照。主要更新如下:
- 支持全局光照
- 包含第三方庫及其編譯腳本
- 增加了Maya導(dǎo)出插件
- 支持Dual Paraboloid Shadow Map
- 增加了多種模式的BC1-BC5紋理壓縮函數(shù)
- 增加了cmake工程腳本
- 支持Filmic tonemapping
- 支持FXAA和Temporal AA
KlayGE 3.12.0的很多功能是由組員完成的。感謝吳彧文提供的GI,感謝王銳、朱曉陽、honyeung Lau提供的Maya插件,感謝張亞川提供的DPSM,感謝陳順斌、郭鵬提供的FXAA和Temporal AA,感謝王銳提供的cmake工程腳本。更感謝大家這么多年來的支持和幫助!
從此處下載KlayGE 3.12.0。
KlayGE 3.12.0 released today! The highlight feature of this version is Real-time Global Illumination. The main updates are:
- Support global illumination
- Including third party libs and compiling script
- Add Maya exporter
- Support Dual Paraboloid Shadow Map
- Add BC1-BC5 texture compression functions
- Add cmake script
- Support filmic tonemapping
- Support FXAA and Temporal AA
Many features of KlayGE 3.12.0 is done by team members. Thanks atyuwen‘s GI. Thanks Ray, Xiaoyang, honyeung Lau‘s Maya exporter. Thanks windameister’s DPSM. Thanks Shunbin, Peng‘s FXAA and Temporal AA. Thanks Ray‘s cmake script.
Download KlayGE 3.12.0 here.
Related posts:你可能感興趣的:
- KlayGE 3.12計劃中的新功能和招聘計劃
- KlayGE 3.11.0新鮮出爐
- KlayGE 3.8.0發(fā)布
- KlayGE 3.10.0發(fā)布
- KlayGE 3.9.0發(fā)布
再分享一下我老師大神的人工智能教程吧。零基礎(chǔ)!通俗易懂!風(fēng)趣幽默!還帶黃段子!希望你也加入到我們?nèi)斯ぶ悄艿年犖橹衼?#xff01;https://blog.csdn.net/jiangjunshow
轉(zhuǎn)載于:https://www.cnblogs.com/skiwnchiwns/p/10345541.html
總結(jié)
以上是生活随笔為你收集整理的KlayGE游戏引擎的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用nodejs和art-templat
- 下一篇: [转载]eXeScope 6.50本地溢