GMGC2016|EpicGames资深技术工程师王祢:UE4在移动平台的开发优势

标签:存储PC技术硬件高通

访客:21832  发表于:2016-03-09 16:21:37

2016年3月7-9日,由全球移动游戏联盟主办的第五届全球移动游戏大会GMGC2016在国家会议中心盛大举行,作为亚太地区最具影响力的游戏行业盛会,此次大会以“Game2.0:创新不止·忠于玩家”为主题,包括腾讯、百度、360、阿里、谷歌、中手游、京东、蓝港互动等在内的来自全球移动游戏及泛娱乐产业的开发商、运营商、制作商、平台商、硬件厂商、大众玩家以及相关政府机构和国际产业组织齐聚一堂,共话移动游戏及泛娱乐产业的热点议题。主会场峰会分为“游戏领袖峰会”及“泛娱乐主题峰会”两场同时进行,9日下午,来自Epic Games资深技术工程师王祢进行了题为《UE4在移动平台的开发优势》的演讲。

GMGC2016|Epic Games资深技术工程师王祢:UE4在移动平台的开发优势

以下是演讲内容实录

王祢:大家好!今天我讲的主题其实是偏移动一些。

UE4支持手游的特性,大部分编辑器里面PC上开发功能和主机上开发功能都是一致都是可以使用的,有非常丰富的编辑器。第一个,我写在这里最重要的是大家比较关心,比如材质效果,UE3时代在比较后期我们也推出了UE3对移动设备支持。当时对移动设备支持,我们在材质做了一些简化,兼容更多的设备让运行效率可控,我们当时是有一个很固定的模板,你只能在模板里填写参数。现在整个渲染的工具非常强,你在移动端也可以使用跟PC端完全一样的材质编辑器扩展各种各样的功能。

移动端的材质也是基于物理真实的,这里写的PBS的材质。这个材质有什么好处?跟以前传统的一些材质做法不太一样。你只要设置一些经验参数就可以获得跟,在各种光照环境下都跟真实比如说布料、木头、金属非常接近的效果。移动芯片性能,所以我们在移动设备上对整个模型做了简化,我写的BRDF是什么?双向的反射性物理函数,通过这样一个函数描述它的属性。虽然在移动端做了简化,依然满足了能量守恒,所以其实效果也是非常接近PC端。并且我们在最近的几个版本里面为了适配更多设备,我对这样的模板还做了更多级别的匹配,我们有更简化的模型,不带金属度的材质,完全是粗糙材质,我们可以用精简的BRDF公式计算,使得整个材质计算更精简一些。

我们手游端引擎完全支持HDR。在我们移动端是前向渲染管线,比较高效的渲染效果不太能做,依然把大量的高级的后处理效果挪到全像管线里面,这里列出了一些,由UE3比较知名的Bloom,景深,能做调色,还有屏幕空间的光线。

刚才说的图像方面的,下看看一下各个方面的支持,针对移动设备的支持,支持所有的贴图格式,PC上方便的ES2预览。Device文件和Scalability设置。为了兼容性还有非常强大的两个设置,你可以针对不同的设备,逐硬件设备或者根据你的按照GPU分类,看你的设备上需要开启哪些后处理效果,需不需要打开动态阴影质量。后面Shader模板简化设置分支,为了中低端设备做了一些更简化的Shader模板模型。 

为了方便开发者来调试,我们也能用远程,在PC上起一个命令去直接出触及安卓和iOS的应用。

零用测试兼容性的时候,可以批量分布式的发布到不同的设备,并且跑各自的测试,最终收集最终跑的结果,让大家可以更方便测试整个设备兼容性。

我们跟大部分的手机硬件开发商包括芯片厂商、SOC厂商都有非常紧密的合作。我们跟高通、ARM、三星有一个演示,我们的展台也有两台S7,上面有一个技术演示非常惊艳。

根据硬件,我们跟硬件开发商合作进行优化,根据大小盒的硬件设备做现成的调整,哪些现成使用,哪些现成不使用。比如说在iOS上面把应用的次数和游戏现成截耦,来达到省电的优化。

接下来就看一下这次在S7上展示的这个演示,发布了即将发布一些移动端高端的特性。

毫无疑问大家看到这里肯定是视频,其实在我们的展台当时有很多人路过看我们的演示,开始都以为这是视频,在设备上认为是视频,不会觉得在移动设备上已经跑出惊艳画面效果,当时有好几个场景是需要手动交互,录制完的屏幕,陨石碰撞、吸引小行星之类,都是实时去交互的,在那个地方体现出来这是一段实时技术演示。这段技术演示不是完整游戏,可以体现出来你在高端设备上做效果的时候,能达到的高度。这些都是在版本中介绍。

我们来介绍一下演示里面用到了哪些一般在移动设备上不太会看到的技术。

第一,GPU粒子。大家刚刚看到的在陨石碰撞撞到内核迸发出来GPU粒子,通过场控制它移动的方向。

第二,静态阴影与CSM混合使用,CSM可选择只影响动态单位。以前CSM在移动端也支持,  开销比较大,CSM对主方向光打全,以后会对所有的物体都做投影,现在我们改进成了对静态物体依然用烘焙,只对动态物体产生影响。这样就可以用比较低的成本完全非常高质量的动态投影,并且可以和静态投影融合得非常好。

第三,我们又改进了一些后处理效果,比如说现在支持电影化的tonemapper,移动端自由调色,我们也改变了DoF的效果,刚开始水滴的地方做出色差的后处理效果。

另外,以前版本里面支持环境光,我们所谓的IBL,我们会用一个叫relflection把环境贴图烘焙起来,作为间接光照,以前在PC上这个光照非常完美,根据粗糙度不同的切断,移动端用了三套,你的木纹非常粗糙,你用比较高的高光反射,这个时候根据粗糙度取不同的captures贴图呈现最好的效果。

最后,画面比较惊艳的部分,全动态的反射,这个反射是基于一个平面。我们跟三星推出ProtoStar。所以会把数据总GPU读出来,放到run里面再放回去,这个过程非常消耗,在移动端做游戏,尽可能不要用后处理效果,后处理效果非常强,并且对游戏画质提升非常有帮助,为了兼顾设备性能和开销,所以大部分时候我们会关掉大量的后处理效果,这是基于硬件。

哪些状态你是要保留,哪些状态是不需要保留,这些行为都可以在GPU里面做完,不需要跟run读取存取,我们有reflection画一遍再渲染到实际画面上。动态单位可以使用reflection来渲,做出非常好的融合效果,尽可能省,我绘制动态单位比较少一点。

Vulkan提供底层显示API,图像内存资源分配,复用。更明确的reder passes,更地层更显式的API。行为上的一致性。SPIR-V。任何一个设备声称支持Vulkan有一个一致性的规则,你一定要去通过这个审核。这样带来的好处是,当以后Vulkan标准普及以后,所有的设备从windows到安卓你看到的效果都是一致的,现在很多时候你写的是一样,但是效果差非常大,不同硬件厂商驱动没有标准。

体验ProtoStar那个演示就会有一个问题,这个演示与美国GDS版本有一个区别,那个打开时间会更长。现在这个版本,把进程杀掉,第一次打开,有一些地方会卡顿。这个问题怎么解决?Vulkan带来好处,画面很炫,不管硬件怎么样,所有编译成中间模块,使用的时候给不同的节点就可以,实时编译开销非常小,对硬件兼容性也会非常好。

Vulkan在大循环里面逐个循环内层,而不是每个东西site一遍,CPU开销非常高。这个开销非常小,你可以控制在最小的集合。

每个都有CPU开销,你不知道哪个硬件厂商对内存分配,驱动猜测不出来你要使用数据对内存做存储效率非常低下。得益于我们对Vulkan的支持,我非常看好Vulkan,并且兼容性非常好。

评论(0)

您可以在评论框内@您的好友一起参与讨论!

<--script type="text/javascript">BAIDU_CLB_fillSlot("927898");