技术交流

TECHNICAL EXCHANGES

【永航技术】QQ炫舞游戏引擎的过去与现在



概 述

QQ炫舞》(http://x5.qq.com),《QQ炫舞2(http://x52.qq.com)的开发分别使用了自行研发的两代3D引擎和工具链。2个产品的底层技术研发横跨10年有余。这里记录一点游戏引擎演变的历史。


  游戏引擎一代 ---2006年7月29日

 早年的 ENGINE当初设计具有GL的1.2.1 ,1.3和1.5三条渲染管道。就是在TNT2(radeon), GEFORCE2-4(RADEON8500-9200), GEFORCE5(ATI9500-)三种平台上分别跑固定管线,带VP,带VP和FP的图形功能。对应于D3D,大概相当于D3D7,D3D8,D3D9 sm2。 GL2的规范和驱动迟迟未出,GLSL也很晚驱动才支持。所以引擎没有支持GLSL。Engine支持室内Octree与室外Terrain 。这是Terrain室外渲染引擎截图:



GL版本引擎支持一套相当于D3DX Effect自定义系统。另外有一些比较重要的扩展。动态支持VP FP(VS,PS)。以及所有渲染状态。相当于对3个硬件平台的动态支持。后移植到D3D。

另外还有一些诸如动态LOD /OUT OF CORE 地形室外系统,以及后期加入的portal/octree室内系统。

那时的《QQ炫舞1》可以跑在64MB 显存的NVIDIA TNT2 。


  游戏引擎二代 --- 2009121


第一个项目Project H

 2009年已经是次世代的时期。Engine已经全面改为Per-Pixel 光照系统。一个JIT的shader compiler让渲染管道非常灵活。汇集了《SHADER X》《GPU GEMS》《GAME PROGRAMMING GEMS》系列论文技术的新引擎面世。

为了体现赛马场景的绚丽速度感,HDR, DOF, MOTION BLURVOLUME LIGHTING等技术纷纷加入。那时的渲染系统还是前向渲染。




  游戏成型 --- 2010年4月30日


 游戏成型了 :)  有了可玩的版本。游戏的本意是有个双人骑乘的竞速动作类游戏。这个时候Deferred Rendering开始研发



 《QQ炫舞2》DEMO  --- 2010年12月 

 关于H3D

 永航科技公司一直进行自主研发3D游戏引擎的工作。这个引擎的第一代(DX7,DX8)经过了一个成功网络游戏(如前所述---QQ炫舞,一个拥有1.5亿注册用户,几千万活跃玩家,188万最高同时在线玩家)的锻炼。目前进入第二个阶段。一个基于DX9 shader的multipass传统渲染和Light pre-pass Deferred Rendering延迟着色管道的引擎。最主要的是,它完全是基于实际游戏工程而来。对于一个要应付几千万玩家的PC电脑各种配置,以及要应付5个G游戏内容制作的游戏引擎,它的开发必须满足无数庞杂现实的需求。它的开发不同于学术研究或者技术试验性质的project。参与H3D2的开发过程本身,就是一个引擎工具程序员真正具备技术能力和个人价值的过程。如何赋予技术价值。在没有开发过一个实际工程应用的游戏引擎之前。是不会有答案的

关于 《Run Devil Run

 H3D2 的《QQ炫舞2 》DEMO。所有截图均是实时渲染,没有后期处理(实际上在引擎内部有一个很强大的后期处理模块,景深,动态模糊,包括PHOTOSHOP中调节曲线,对比度,饱和度,色阶等都可以实时完成。参考crytek3...)。其中教堂场景中放置了100多个实时光源。每个光源可以独立用曲线控制颜色,亮度,锥度,衰减等。结合之前的室外地形和传统multi-pass渲染管道。以及相应的室外/室内场景编辑器工具集.

因为《QQ炫舞1》的成功,我们决定在衣服上做一做文章。因为大部分收入来自卖衣服:) H3D2的所有程序员都非常高兴能够把技术直接变为收入(哦生产力)。

实际上,我们为QQ炫舞2 制作了一套复杂的舞台程控灯光系统。来控制舞台播放的效果。营造逼真的现代演唱会景象。

我们去韩国购买了曾经最火的少女时代两首歌曲的动作捕捉数据。以下是截图。

 

少女时代 Gee Gee Gee

这个场景灯光比较简单,主要是阳光的方向光与几个角色辅助补光。布光原理和经典人像摄影布光差不多。由于都是实时光源,所以游戏美术的制作逐渐进入了一个新的领域。更加类似摄影和摄像的艺术创作。这种感知也是一点点在DEMO搭建中得来了。技术是为了应用服务的。光有技术远远不够。重要的在于有能够让美术发挥创造力的工具链。以及能够给美术以指导的新技术下的创作方法。

 

新技术给游戏制作带来的不仅仅是更多的三角形,更高的帧率,更亮更复杂的模型。 而是隐隐约约在真正实现人脑中的构想,在实现某种可以称之为艺术创作的领域,开始发生点滴细微的作用。这种作用受限于硬件与技术水平,还只是稍微有点朦胧的意味,但并不明晰。在制作技术时,并没有任何这样的感觉。而当工具日益完善,美术的创造力开始加入时,你才能够感受所谓下一代技术在游戏制作中的新鲜作用。

这次材质偏重对牛仔和棉布等模拟.

 

  QQ炫舞2与NVIDIA  --- 2012年3月

 

我们与最大3D显卡厂商NVIDIA的合作由来已久。无论是显卡发布还是世界Game Developer Conference,QQ炫舞2布料DEMO都作为技术展示。



技术资料下载 《run devil run 录像》《 GEE GEE GEE录像》,《NVIDIA 布料演示 录像》, 《技术ppt》


http://5s.qq.com/



工具集

对于游戏制作,离不开强大工具集。全部都是艰辛的伴随游戏一起,从无到有开发。

                         &     室内舞台灯光程控系统的数据编辑(红色的是实时光源)

                          &材质,Avatar


                           &发型与布料

                           &关卡

                          &模型,特效与粒子

                            &室外地形编辑

 

 


  其他技术

 随着游戏开发过程,我们与大学,科研人员,显卡公司(Nvidia)广泛合作,加上自行研发,给游戏加入了很多实用且先进的技术。比如高效的Motion Capture Data的无损压缩与实时解压,人体舞蹈动捕有损压缩技术(QQX52 WEB版本),基于人体动力学的任意舞蹈动作无缝衔接技术,基于频谱分析的音乐节奏自动识别和游戏关卡自动生成技术,DX9 GPU based发丝生成与渲染,多核布料渲染,布料模拟与软体模型结合的人物发型与服饰综合解决方案等等。


  WEB,微端与手机

2014之后,QQ炫舞2 的游戏引擎微端化。告别了肥大客户端的历史。从而同时以微端与网页游戏的面貌重新出现。其中,游戏的虚拟文件系统已经进化为统一的网络文件服务体系。新开发了基于服务的多进程/多线程资源更新与加载技术。以及网页3D引擎移植。

基于全套QQ炫舞2资源生产线的手机客户端也已经上市。

 

★  未来

  基于UNITY3D的《全民炫舞》已经登录微信。我们将迎来新的时代 ---- 移动互联。

《全民炫舞》资源制作流水线基本沿用QQ炫舞2 。为Unity3D做了资源转换。

 凭借在PC CLIENT时期打下的丰厚技术底蕴,公司使用第三方游戏引擎开发产品如鱼得水游刃有余。已完成和在开发一系列U3D二次开发工具(如U3D C#自定义对象堆内存监测工具等),对于Unity3D开发速度起到质的飞跃。






 



Copyright © 2005-2016 Yonghang Technology. All Rights Reserved   
京ICP备09024877号 京公网安备11010102000822号.