概览
KlayGE是用于下一代游戏的一个完整的游戏开发框架。它是API无关的插件式结构,提供了很多先进技术,并且有无限的扩展性。
KlayGE的设计目的非常明确,用最先进的技术武装引擎。它所提供框架使游戏的开发、测试、移植得到简化。KlayGE的目标平台是当年发布的最高硬件到前一年发布的最低硬件。
图形
- 支持D3D 11.2,OpenGL 2.1-4.5和OpenGL ES 2.0-3.1
- 采用fxml作为可渲染物体的特效脚本,可以直接把美工生成的特效导出使用
- Python脚本可以在运行期动态解释,所以修改脚本以后不需要重新编译
- 可以通过height map来建立地形场景
- 支持骨骼动画
- 硬件Occlusion culling
- 粒子系统
- Post processing技术
- 自适应硬件状态缓存和延迟更新机制
- 支持逐像素光照和渲染技术
- 基于distance的字体系统,兼有矢量和点阵的优点
- 支持Procedural texture
- 支持Subsurface Scattering,可用于渲染树叶、皮肤、玉器等半透明材质
- 支持Phong tessellation技术,在运行期自动光滑低模
- 着色
- 包含常用操作的shader库
- 完全抽象出图形API
- 多遍渲染
- 完全支持可编程着色
- 可以使用多条渲染流
- 光照
- 动态光照
- 全方向shadow map
- 实时间接光照
音频
- 支持各种平台的音频输出
- 支持3D声音定位和多普勒效应
- 输入格式支持Ogg Vorbis
- 支持流式播放
工具
- 法线图生成器,可以从高度图生成法线图
- 距离图生成器,可以从高度图或3D纹理生成距离图
- MeshML导出插件,从3DS Max导出模型
- OpenGL兼容性检测工具
- HDR压缩器,支持cubemap和2D HDR纹理的压缩
- Normal map压缩器,2:1或4:1的压缩率
- 基于distance的字体生成器,可以把矢量字体转换成引擎使用的字体格式
- FXML2Shader工具,把FXML的特效脚本转换成HLSL或Cg
程序特性
- 引擎是开放源代码的,包含了100%的引擎、工具的源代码
- 可扩展的、面向对象的C++引擎,带有用于静态和动态加载代码和资源的软件架构,易于移植和调试
- 用Python作为脚本语言,提供了对动态数据的自动支持,开发调试方便,并很容易和C++主程序配合工作
Overview
KlayGE is a framework for developing the next generation games. It’s an open source game engine with cross-platform plugin-based architecture. It introduces many advanced technologies with unlimited expansibility.
The explicit goal of KlayGE is: to arm your engine with cutting-edge technology. It provides a framework to make game development, testing, porting as simple as possible. KlayGE can cover platforms from the high-end to the low-end at most one year before it’s release.
Graphics
- Support D3D 11.2, OpenGL 2.1-4.5 and OpenGL ES 2.0-3.1
- Use fxml as the effect script for any renderable object. It can be exported directly from artist created content.
- Python script can be dynamic interpreted at runtime. So scripts don’t need to be recompiled after modification.
- Build terrains by height map technology.
- Support skinned animation.
- Hardware occlusion culling
- Particle system
- Post processing technology
- Self-adaptive hardware states cache and deferred update mechanism.
- Support per-pixel lighting and rendering
- Distance-based font system, takes advantages from both vector fonts and bitmap fonts.
- Support procedural texture
- Support Subsurface Scattering, which can be used to render translucency materials such as leaf, skin, jade-ware.
- Support Phong Tessellation to smooth low polygon mesh at runtime
- Shading
- A shader library includs common operations
- A complete interface abstracted from many low level graphics API.
- Multi-pass rendering.
- Fully support of programmable shading
- Multiple input vertex streams is supported
- Lighting
- Dynamic lighting
- Omni-directional shadow mapping
- Realtime indirect lighting
Audio
- Audio output on many platforms.
- 3D audio source and Doppler effect.
- Ogg Vorbis as input format.
- Streaming playing
Tools
- Normal map generator, converts height map to normal map.
- Distance map generator, generates distance map from height map or 3D volume.
- MeshML export plug in, export models from 3DS Max.
- OpenGL compatibility checking tool.
- HDR compressor, compresses both cubemap and 2D HDR textures.
- Normal map compressor, provides 2:1 or 4:1 compression ratio.
- Distance-based font generator, converts a vector font to the format that engine uses.
- FXML2Shader tool, converts a FXML effect script to HLSL or Cg shader.
Programming
- KlayGE is open sourced. Includes all the source code of engine and tools.
- An extendable, object-oriented engine written in C++. This architecture can loading commands and resources both statically and dynamically. Easy for porting and debugging.
- Takes Python as scripting language. Automatically provides support for dynamic data type. Easy for development and cooperating with C++ host.
Comments