其他分享
首页 > 其他分享> > Crazy Engine 3.0(又名盘古引擎)的技术特性

Crazy Engine 3.0(又名盘古引擎)的技术特性

作者:互联网

零、概述

“盘古引擎”是我2013.4-2015.12年间,在“远明山水网络科技有限公司”担任引擎部部门经理期间,带领9人团队研发的第三代大型3D游戏引擎。

这代引擎使用Ogre 3D作为框架,使用C++、D3D 9.0c、HLSL 3.0、OpenAL、PhysX3.2和MyGUI作为开发语言或者中间件。研发团队研究了大量国际上顶尖的论文,借鉴和吸收了大量的高端算法和设计模式,同时也借鉴了其它世界闻名的游戏引擎,如CryEngine 3和Frostbite。同时,我们也花费了大量时间,研究出了一些自己原创的算法。

 

 

 

一、通用

面向数据的设计模式(DOD)

能大幅减少cache miss,从而大幅提高了引擎的运行性能。

多线程渲染

将图形API的调用全部移到主线程之外的一个线程(称为渲染线程)里,并且这个线程只用于调用图形API。这样就能利用多核CPU的性能,大幅提升帧率。

Job system

将主线程里特别耗时的操作都封装成不同的Job,在主线程之外的线程池里处理。从而提升性能,也能避免主线程帧率不稳定。

内存池和对象池

集中处理小对象的内存申请,能够避免内存碎片,从而提升性能,避免内存申请失败造成的崩溃。

二、图形

渲染效果分级

渲染效果具有可伸缩性(纹理分辨率、采样类型、材质等级、可视距离、渲染算法的分级),支持各种性能的硬件,甚至支持集成显卡流畅的玩游戏。

高性能渲染管线

采用了Hybrid deferred shading,可以达到deferred lighting 的效果,并且和deferred shading 的效率一样。支持数以千计的点光源,并且支持阴影。

 

 

 

进行了深度优化,最小化状态切换,从而减少CPU开销。

材质系统

高性能的材质系统,以及大量材质算法(可以表现任何材质、视差映射和法线贴图、次表面散射、各向异性高光、菲涅尔效果、过程式植被动画)。

全实时的动态光影

由于项目要求实现24小时动态光影、动态天气和场景可破坏,所以不能使用预烘焙Lightmap和Light Probes,场景里的光源全部是实时渲染的。

那么全局光照怎么实现呢?支持了LPV,用于模拟间接光照。

SSDO用于模拟环境遮挡,可以弥补低频的间接光导致的几何细节里的AO效果缺失。https://www.bilibili.com/video/BV1rf4y147cP/

IBL(基于图像的光照)用于模拟镜面反射环境物体,支持环境立方体贴图动态产生。

新手村视频:https://www.bilibili.com/video/BV1av4y1f7md/

24小时动态光影

太阳方位连续24小时变换,也叫TOD(Time Of Day)。

视频:https://www.bilibili.com/video/BV1qZ4y1P7aR/

动态天气

在延迟着色的基础上,使用后期处理实现下雨和下雪效果。编辑器里录制的下雨视频:https://www.bilibili.com/video/BV1Ah41117qM/

上线游戏里的下雨和下雪截图:

 

 

 

开放大世界和超大视距

支持开放式大世界,地图大小不受限制。运行时,资源加载使用异步流式方案,这样就不用在加载场景时一次性加载场景的所有资源了,从而避免了加载时间过长以及内存占用过大的问题;异步加载避免了卡顿。

超大场景视距。地形支持16公里。

 

远景使用Imposter技术来提升性能。

超大规模角色渲染

支持“千人同屏,万人国战”,在使用不同的模型时,支持同屏渲染1000人左右。如果使用相同的模型,采用了VTF和LOD两个技术,支持渲染10万-100万角色。

 

 

 

捏脸

主角的脸部(包括眼睛、眉毛、瞳孔、胡须、刺青等等)都可以自定义。

 

抗锯齿(改进的MLAA)

软粒子

HDR(线性光照、Bloom、Tone mapping)和颜色色阶

软阴影(CSM和PCF)

体积雾

体积光

 

海水渲染

基于FFT。编辑器里录制的视频:https://www.bilibili.com/video/BV1i54y1a7Wx/

游戏里的截图:

 

运动模糊

景深

 

IK

支持脚部跟地面高度之间的吻合,也支持眼睛凝视的身体姿态调整。

 

其它

  1. 主角独立的光照系统,保证了不同光线下角色脸部的美观。
  2. 道路。
  3. 延迟贴花。

 

三、物理

支持PhysX 3.2

碰撞

布料

破碎

布娃娃

 

四、声音

3D声音

环境音效

DSP

 

材质声音

不同的物体指定不同的材质,用于播放不同的声音。例如人走在或者子弹击中沙地上、雪地上、石板上等的声音是不同的。

五、GUI

支持MyGUI

 

六、工具链

场景编辑器

角色编辑器

材质编辑器

特效编辑器

过场动画编辑器

质保工具

帧分析工具(GPA plus)

可以强力截取绝大部分加壳的MMO端游。

七、正在开发的技术

基于物理的渲染

流体动力学

Impostor

过程式植被

 

八、待开发

声音遮挡

声音实时合成

TOY(四季轮回)

3D或者基于flash的UI

嘴唇动作和声音过程式同步

脸部动画

九、注意

公司刚成立时,本打算只做一个传统的MMO项目,画面上过得去就行。所以美术资源制作标准上较老,甚至漫反射贴图里还带有光照信息。后来随着自研引擎的进步,公司打算将美术品质提升到“天刀”和“天谕”的水平,这个两个游戏是当时MMO端游的标杆。但是美术的工作量太大,所以一度法线贴图是使用CrazyBump批量生成的。

后来有一小部分资源是按照标准流程制作,例如,使用ZBrush制作法线贴图,还有高光贴图和材质参数经过了仔细调整等等,才将引擎的渲染能力基本上呈现了出来。

本文里的视频和截图大部分都是从2015年开发的MMO项目《战秦》里面的场景截取的,一小部分是从2014年开发的MMO项目《项羽》里面截取的。正是上述原因,视频和截图里的画面品质会出现跳跃。

如有疑问,请与我联系,QQ:463038758。

标签:Engine,贴图,Crazy,渲染,支持,编辑器,引擎,3.0,材质
来源: https://blog.csdn.net/CrazyEngine/article/details/114579286