From KlayGE游戏引擎, post address http://www.klayge.org/about/features/转载请注明出处为KlayGE游戏引擎,本文地址为http://www.klayge.org/about/features/
KlayGE是用于下一代游戏的一个完整的游戏开发框架。它是API无关的插件式结构,提供了很多先进技术,并且有无限的扩展性。
KlayGE的设计目的非常明确,用最先进的技术武装引擎。它所提供框架使游戏的开发、测试、移植得到简化。KlayGE的目标平台是当年发布的最高硬件到前一年发布的最低硬件。
答:KlayGE是一个开放源代码、跨平台的游戏引擎。它是用C++开发的,并使用Python作脚本语言。KlayGE在GPL协议下发行。
答:是的。几乎所有的开发都是我一个人完成的。但在这个过程中使用了一些第三方的代码,比如7zip的解码部分。不少朋友也在开发的过程中给予了不可或缺的帮助。
答:目前KlayGE的文档仅限于Documentation下的文件。文档缺乏的原因主要是我没有足够的时间去写,另外我更希望用代码本身来自我诠释。
答:在KlayGE 2.7之前使用的是LGPL协议,但后来为了保护它不被某些专有软件吞并,所以换成了GPL。
答:KlayGE 2.0之前(当时还叫作Clay! Engine),LUA是首选的脚本语言。LUA的优点是速度快,缺点是在C++中的调用极其麻烦,而且语言本身能力较弱。Python速度不如LUA, 但是语言能力强大得多,也不必写成栈式的调用方式,简洁得多。在KlayGE中,脚本不是为了效率而存在的,所以Python成了不二之选。
答:KlayGE是一款面向高端的引擎,所以在一定程度上要用较高的配置,以满足先进技术的需要。另一方面,Shader Model 2.0并不算一个很高的要求,市面上的新显卡几乎都是支持Shader Model 3.0的。对于游戏开发者来说,如果现在还在使用不支持Shader Model 2.0的硬件,那只能说实在落后得太多了。
答:KlayGE中的网络是弱项,甚至可以说几乎无法使用。所以需要重新开发,或者使用别的网络库。
答:由于KlayGE在VC下使用的运行库是多线程的DLL,所以需要把所有连接到exe的lib的运行库改为 多线程DLL(Project- >Properties->Configuration Properties->C/C++->Code Generation->RuntimeLibrary,选择Multi-threaded Debug DLL/Multi-threaded DLL)。
答:Boost 1.36的编译参数可以通过bjam的命令行参数来设置,可以写一个批处理文件,内容是:
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 releasebjam --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中把工程的Working Directory设置成$(OutDir)。此问题在KlayGE 3.10中不再出现。
答:根据设置,Visual Studio的编译工具必须能调用yasm才能编译.asm的文件。解决方法之一是把下载下来的yasm-X.X.X-winYY.exe(X表示版本 号,YY表示32或64)改名成yasm.exe,并拷贝到VC的bin目录下,比如”C:Program FilesMicrosoft Visual Studio 9.0VCbin”。(注:这个问题实际上不该出现在本FAQ中,因为这其实是个命令行调用的问题,谁都该会的。可悲于国内“开发者”的素质,竟然有 不少人都问了我该问题,使得我不得不将它写在这里。)此问题将在KlayGE 3.11中避免。
这里列出了一些希望以后能加入KlayGE的功能。
愿望列表可以用来激励未来的工作。其中有些是很明确的做法,有些只是飘渺的想法,大部分则介于两者之间。同样,实现这些条目的工作量从对现有接口的小修改到大的研究项目都有。
直接在texel上存储矢量参数,字体系统也可以建立在其之上。
类似于D3D10的软件渲染插件,用纯软件支持D3D10+的所有功能。
集成HTML5渲染器,可以直接用HTML5来作为UI的表达方式。
大规模地形渲染。
不使用DirectShow来播放视频和音频。备选方案之一是用.ogm作为容器格式,Theora作为视频编码,Vorbis作为音频编码,同时也支持字幕。
提出人:吴野
GPGPU的物理模拟和线性代数计算。
提出人:吴野
实时计算全局光照。支持阴影、折射、反射、半透明和多次散射。
支持跨越DLL边界的内存分配/清除、泄露检测和内存池。最好能Lock-free或Wait-free。
通过GPU处理音频(3D、特效),然后传给声卡播放。
把所有的DX/OGL API调用都在一个线程里捕捉,并可以在其它线程里重放。
提出人:周波
实现Approximating Catmull-Clark Subdivision Surfaces with Bicubic Patches的GPU细分算法
在D3D11/D3D10(ATI)上支持硬件的细分,在D3D9/OpenGL上支持基于shader的细分。(D3D11的细分已经支持了)
OpenGL ES 2.0插件和D3D mobile插件。(OpenGL ES 2.0插件已经完成)
延迟着色的渲染系统,支持抗锯齿和透明。(作为KlayGE 3.8.0的一个例子)
KlayGE 3.12.0在上半年的最后一天发布了!本版的亮点是支持实时全局光照。主要更新如下:
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:
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:你可能感兴趣的:
再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow