Tim Sweeney是3D图形界的传奇人物,作为Epic Games公司的创始人和CEO,他领导开发的虚幻引擎已经成为著名的次世代引擎之一。在今年的CGDC上,Tim Sweeney做了《未来的图像引擎》的演讲,演讲中他从平台、虚拟现实、增强现实、图形渲染等方面为我们展望了图像引擎的未来。面对VR和AR带来的性能需求,Tim认为更高的性能是未来引擎的发展方向。星游社对他的演讲进行了整理。
PC游戏将会迎来新的增长
目前的主流的平台包括苹果的Metal、来自Khronos的Vulkan API和微软的Windows 10。苹果公司曾经在自己的发布会上公布过在Metal上使用虚幻4制作的”Zen Garden“的Demo,效果十分惊艳。而Vulkan API将于2016年出台,在将来将会取代Open GL和OpenGL ES。在7月29日,微软则刚刚正式发布了Windows 10,在Tim看来,Windows 10是非常高效的并且无论在桌面使用还是在移动方面使用都非常好,同时从低版本升级非常容易。Tim非常高地评价了Windows 10,并且由此预测在2015-2018年PC游戏将迎来一个新的增长。而多核将成为所有平台共同的一个趋势,并且核的数量将一直增长。底层图像API也将成为未来的一个趋势,因为这将提升CPU10倍的效率,可以在移动游戏中实现开放的世界以及10000个静态物体同屏,有助于减少BUG。从此,移动游戏的表现将媲美PC。
半导体行业一直在遵循着摩尔定律的发展,这使得移动游戏变得越来越高端,Unreal引擎也在紧跟着硬件的发展,加入了多重抗锯齿、纹理贴图、静态灯光、角色阴影、设备兼容等特性。除了移动游戏,Unreal引擎在网页游戏也有新的建树,Unreal 4引擎在网页游戏中将不需要安装插件和客户端,并且只需要使用WebGL,HTML 5以及Javascript。将在2016年出台的WebGL2.0将会使网页游戏的3D画面走向高端化,WebAssembly将会使更高表现的C++程序直接在浏览器上运行,并且支持多线程。而所有平台都将拥有以下这些特性:使用C++作为编程语言,底层图形API,多核CPU,OpenGL ES3.1+GPU。
虚拟现实要求极高的硬件配置
虚拟现实为用户创造了一个沉浸式的体验,而增强现实则将用户在虚拟和现实之间建立了连接。只不过目前的产品都还属于第一代,当迭代到3-5代的时候,就能够改变世界。
对于虚拟现实硬件,需要头戴式的显示器,头部运动传感器,可以拿在手上精确的输入设备,比如手柄、触摸板等等。同时还需要高性能的CPU和GPU,这些硬件需要能够1:1地真实进行输入的传递,这就在软件上需要极高的帧率以及尽可能低的延迟。引擎必须支持在90FPS的帧率下运行,而为了获得更高的执行效率,则需要使用C++编程。同时还需要一个高质量的渲染器,因为大脑在沉浸式的环境中对于视觉上的错误是非常敏感的,正因为如此,在VR或者AR方面,硬件的要求是要比移动,PC领域高的多。
真实感渲染让跨界合作成为可能
基于物理模型的渲染的目标是使用物理测量的场景参数得到图像的渲染,而Unreal 4具有最精确的基于物理的渲染。当然使用真实感渲染也会遇到问题,比如艺术家们很难通过不断地试错来创建真实的物理渲染,解决的方法就是使用数字相机以及数字化仪扫描真实世界的物品和材料。
基于物理的实时渲染让游戏开发者可以与其他领域的艺术家和开发者共同开发游戏,比如好莱坞的电影艺术家,建筑视觉设计者,在线商店的产品视觉设计师等。为指环王和霍比特人制作特效的WETA工作室就采用了虚幻4引擎。基于物理渲染技术提供了真实物品统一的展现,VR和AR提供了次世代的视觉体验,而虚幻引擎提供了次世代3D体验的框架。
基于物理渲染的内容是在游戏和其他领域之间搭建了一座桥梁,开发者和艺术家们可以共享不同项目之间的内容库,而扫描真实的世界是可行的,这远比手工建模来的效率。
增强现实将会改变世界
增强现实的设备目前有微软的Hololens,以及获得了Google投资的全息投影公司Magic Leap。不过增强现实设备目前都有很大的局限性,比如头盔太大、视角太小、移动传感器的局限,光学系统不完善等等,而理想的AR应该是:和太阳镜一样大小的眼镜,每只眼睛有4K清晰度的显示,可以实现聚焦任何可视的物体,有类似于Kinect一样的传感器来扫描周围的环境,可以实时并且无缝地将电脑产生的图像以半透明的方式呈现在眼镜上。如果有了这样的AR设备,我们就不再需要电话,电视,笔记本之类的了,而AR也将结合最佳的PC游戏体验以及移动游戏体验。AR还将影响所有形式的软件,比如用户界面将不再是2D,聊天、社交都会与此前不同,整个世界都将被改变。
使用C++是未来引擎的趋势
目前市面上有很多引擎:Cocos 2D、Game Maker、Unity、Unreal等等,但是大多数引擎并没有准备好应对未来的趋势。因为未来的引擎需要具备高效的编程模式,高质量的渲染,在AR和VR领域的高性能表现,以及为大型团队和项目提供产品化的工作流。从引擎的语言上来看,就不能不提到C++了,虽然所有的引擎都是用C++来写的,但是他们在实现上却是支持不同的语言,比如CryEngine支持Lua,Unity 5支持C#和.NET,虚幻4则支持C++。所以问题来了,脚本语言一般都很慢,只适合小游戏,大型游戏就基本完蛋了,那就需要将脚本转换成C++,以Unity5为例,如果是用C#写的程序,就需要用IL2CPP将C#转换成C++,然后在C++中进行编译。另外,脚本语言还有很多局限性,比如在OS库中无法调用C++,脚本和C++无法同时Debug,所以统统把他们转换成C++才是解决之道。
在引擎架构上,Unreal 4也做出了改变,因为全部采用C++,所以就没有虚拟机系统了,游戏代码直接运行在开源的引擎上。所以使用C++有很多好处,比如更高的执行效率,尤其是在移动端,从游戏到引擎代码都可以Debug,可以调用完整的C++引擎以及操作系统,100%的开源引擎让学习成本降低,普通的C++游戏代码和脚本代码十分相似。
总结起来,整个业界都在飞速地发展,移动GPU的性能每年都在以100%的速度增长,移动游戏在图像方面的竞争越来越激烈,开发团队的规模也越来越大,项目的复杂度也越来越大,同时,AR和VR的革命也已经开始,这是一个最好的时代。