你想自己开发游戏吗,快来下载KlayGE游戏引擎进行开发吧,它是一款跨平台的开源游戏引擎,它也是用于下一代游戏的一个完整的游戏开发框架,基于C++开发的,使用Python作为脚本语言,采用了API无关的插件式结构,提供了大量十分先进技术同时具有无限的扩展性,所提供框架使游戏的开发、测试、移植得到进行一步的简化,能够通过高度图创建地形场景,使用fxml作为渲染对象的特效脚本,能够直接导出艺术家生成的效果,支持Phong曲面细分技术,在运行时自动平滑低模式,距离地图生成器,能够从高度图或3D纹理生成距离图,基于距离的字体生成器,可将矢量字体转换为引擎使用的字体格式,可以说还是挺实用的,快下载KlayGE游戏引擎进行相关使用吧。
功能特色
1、图形
能够通过高度图创建地形场景
支持的程序纹理
粒子系统、后处理技术
支持逐像素照明和渲染
支持骨骼动画、硬件遮挡剔除
自适应硬件状态缓存和延迟更新机制
支持D3D 11.2,OpenGL 2.1-4.5和OpenGL ES 2.0-3.1
使用fxml作为渲染对象的特效脚本,能够直接导出艺术家生成的效果。
Python脚本能够在运行时动态解释,因此在修改脚本后无需重新编译。
基于距离的字体系统,具有矢量和点阵优势
支持次表面散射,可用于渲染半透明材质,如树叶,皮肤,玉石
支持Phong曲面细分技术,在运行时自动平滑低模式
2、音频
支持流式播放
支持各种平台的音频输出
输入格式支持Ogg Vorbis
支持3D声音定位和多普勒效应
3、工具
MeshML导出插件,3DS Max导出模型
OpenGL兼容性检测工具
法线贴图压缩比,压缩比为2:1或4:1
HDR压缩器,支持立方体贴图和2D HDR纹理的压缩
FXML2Shader工具将FXML特效脚本转换为HLSL或Cg
一个法线贴图生成器,可从高度贴图生成法线贴图
距离地图生成器,能够从高度图或3D纹理生成距离图
基于距离的字体生成器,可将矢量字体转换为引擎使用的字体格式
4、程序特性
该引擎是开源的,包含该工具的100%引擎和源代码。
可扩展的面向对象的C ++引擎,具有用于静态和动态加载代码和资源的软件架构,易于移植和调试
使用Python作为脚本语言,它为动态数据提供自动支持,易于开发和调试,并且能够轻松地与C ++主程序一起使用。
使用说明
第1步:生成一个大位图
在KFontGen中,此步骤是读取具有freetype的矢量字体并渲染4096×4096灰度图像。
第2步:轮廓搜索
由freetype生成的灰度图像被光栅化,即,字的轮廓和内部被填充。我们只关心轮廓本身,所以在这一步中我们需要提取它的轮廓,也就是说,它同时满足。
此元素的值不为0
元素的8个相邻元素为0
这两个条件的要素。轮廓元素标识为1,另一个标记为0,能够提取轮廓。
第3步:获取距离场
通常,目标字体大小远小于4096×4096。因此,需要离散地采样在前一步骤中获得的大位图,以获得目标字体大小的点阵。默认情况下,KFontGen生成的目标字体大小为32×32。也就是说,从(64,64)开始,x和y方向每128个取一个点。分别计算这些样本点与轮廓的最近距离,从而得到32×32距离场。同时,在采样时,根据步骤1中获得的灰度图像,能够判断采样点是否在单词内。如果它在单词内,则距离为正数,否则为负数。这为你提供了所需的签名距离字段。
第4步:量化和压缩
在前一步骤中获得的距离场的每个元素是浮点数据,其需要被量化为每个元素8比特以减少占用空间并加速渲染。量化数据由LZMA压缩并存储在文件中。
更新说明
引擎改进
完整的场景树支持。
可以加载多个模型和纹理格式。
资源元数据。
通用软件Buffer和Texture支持格式不受硬件限制。
支持树结构的新模型格式。
改进了SSVO,性能提升了40%。
摘要着色器资源视图,以提高纹理绑定性能。
进一步优化D3D12插件。
工程改进
使用AppVeyor和Travis-CI进行自动编译
使用git管理一些第三方库。
Clang可以打开预编译的头文件。
第三方库被组织到一个CMake项目中,以提高编译速度。
其他改进
多个错误修正。
延迟呈现框架比以前的版本快10%。