转载请注明出处为KlayGE游戏引擎,本文的永久链接为http://www.klayge.org/?p=163

概览

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++主程序配合工作