KlayGE游戏引擎

1623 篇文章 22 订阅
1407 篇文章 2 订阅
 

概览

KlayGE是用于下一代游戏的一个完整的游戏开发框架。它是API无关的插件式结构,提供了很多先进技术,并且有无限的扩展性。

KlayGE的设计目的非常明确,用最先进的技术武装引擎。它所提供框架使游戏的开发、测试、移植得到简化。KlayGE的目标平台是当年发布的最高硬件到前一年发布的最低硬件。

图形

  • 支持D3D11,OpenGL和OpenGL ES 2
  • 采用fxml作为可渲染物体的特效脚本,可以直接把美工生成的特效导出使用
  • Python脚本可以在运行期动态解释,所以修改脚本以后不需要重新编译
  • 可以通过height map来建立地形场景
  • 支持骨骼动画
  • 硬件Occlusion culling
  • 粒子系统
  • Post processing技术
  • 自适应硬件状态缓存和延迟更新机制
  • 支持逐像素光照和渲染技术
  • 基于distance的字体系统,兼有矢量和点阵的优点
  • 支持Procedural texture
  • 支持Subsurface Scattering,可用于渲染树叶、皮肤、玉器等半透明材质
  • 支持PN Triangles技术,在运行期自动光滑低模
  • 着色
    • 包含常用操作的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++主程序配合工作
      • 愿望列表

        From KlayGE

        Jump to: navigation, search

        这里列出了一些希望以后能加入KlayGE的功能。

        愿望列表可以用来激励未来的工作。其中有些是很明确的做法,有些只是飘渺的想法,大部分则介于两者之间。同样,实现这些条目的工作量从对现有接口的小修改到大的研究项目都有。

        Contents

        [hide]

        愿望列表

        矢量纹理

        直接在texel上存储矢量参数,字体系统也可以建立在其之上。

        软件渲染插件

        类似于D3D10的软件渲染插件,用纯软件支持D3D10+的所有功能。

        基于HTML5的UI

        集成HTML5渲染器,可以直接用HTML5来作为UI的表达方式。

        地形渲染

        大规模地形渲染。

        去除DirectShow

        不使用DirectShow来播放视频和音频。备选方案之一是用.ogm作为容器格式,Theora作为视频编码,Vorbis作为音频编码,同时也支持字幕。

        GPU上进行物理和数学计算

        提出人:吴野

        GPGPU的物理模拟和线性代数计算。

        实时全局光照

        提出人:吴野

        实时计算全局光照。支持阴影、折射、反射、半透明和多次散射。

        强大的内存管理器

        支持跨越DLL边界的内存分配/清除、泄露检测和内存池。最好能Lock-free或Wait-free。

        GPU音频处理

        通过GPU处理音频(3D、特效),然后传给声卡播放。

        Command buffer的记录和重放

        把所有的DX/OGL API调用都在一个线程里捕捉,并可以在其它线程里重放。

        实时Catmull-Clark细分

        提出人:周波

        实现Approximating Catmull-Clark Subdivision Surfaces with Bicubic Patches的GPU细分算法

        正在做的

        基于GPU的细分

        在D3D11/D3D10(ATI)上支持硬件的细分,在D3D9/OpenGL上支持基于shader的细分。(D3D11的细分已经支持了)

        移动平台支持

        OpenGL ES 2.0插件和D3D mobile插件。(OpenGL ES 2.0插件已经完成)

        已经完成

        延迟着色

        延迟着色的渲染系统,支持抗锯齿和透明。(作为KlayGE 3.8.0的一个例子

        深度剥离

        顺序无关的透明。(作为KlayGE 3.7.0的一个例子

        屏幕空间环境遮挡

        SSAO来增加暗处的细节。(作为KlayGE 3.8.0的一个例子

         

        KlayGE 3.12.0在上半年的最后一天发布了!本版的亮点是支持实时全局光照。主要更新如下:

        • 支持全局光照
        • 包含第三方库及其编译脚本
        • 增加了Maya导出插件
        • 支持Dual Paraboloid Shadow Map
        • 增加了多种模式的BC1-BC5纹理压缩函数
        • 增加了cmake工程脚本
        • 支持Filmic tonemapping
        • 支持FXAA和Temporal AA

        KlayGE 3.12.0的很多功能是由组员完成的。感谢吴彧文提供的GI,感谢王锐朱晓阳honyeung Lau提供的Maya插件,感谢张亚川提供的DPSM,感谢陈顺斌郭鹏提供的FXAA和Temporal AA,感谢王锐提供的cmake工程脚本。更感谢大家这么多年来的支持和帮助!

        此处下载KlayGE 3.12.0。

        
      • 0
        点赞
      • 2
        收藏
        觉得还不错? 一键收藏
      • 0
        评论

      “相关推荐”对你有帮助么?

      • 非常没帮助
      • 没帮助
      • 一般
      • 有帮助
      • 非常有帮助
      提交
      评论
      添加红包

      请填写红包祝福语或标题

      红包个数最小为10个

      红包金额最低5元

      当前余额3.43前往充值 >
      需支付:10.00
      成就一亿技术人!
      领取后你会自动成为博主和红包主的粉丝 规则
      hope_wisdom
      发出的红包
      实付
      使用余额支付
      点击重新获取
      扫码支付
      钱包余额 0

      抵扣说明:

      1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
      2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

      余额充值