我刚才说了Vulkan这么多的好处,大家可能会有一个问题,我其实并不想真的写这么多底层的代码。其实非常非常简单,我整个最简单的就是这个模块。首先你安装Unity的时候需要看一下你有没有安装好安卓的支持。目前为止还是基于安卓的平台,如果你已经把安卓这个模块加入以后,只需要显示屏幕上的六步就可以搞定。这里有一个蓝色的箭头,这是它支持的三种API。我们选了Vulkan以后,里面的内容就是Vulkan的。就是这么简单,这个细节大家不用去着急,一个是你可以去ARM网站上去看。另外一个Unity的最新的手册上面也有。它是一个产品feature。这个是ARM的开发指南中的一部分。这个开发指南大概有百来页左右。如果大家有兴趣,可以去我们ARM官网上去下载。如果时间比较紧,我们展台上有纸质的打印出来的。 实际上有很多人已经尝试Vulkan了,实际当中他的表现怎么样了。我们后面通过一些case给大家看一看。这个很炫的一个画面,这是一个游戏,它的名字叫做Sky Force Reloaded,目前为止在Google Play上还只有OpenGL的版本下载,Vulkan的版本会在不久的将来发布。因为这个工作室Inifinite Dreams跟ARM有很好的合作,我们共同对Vulkan内部版本做了一些评估工作。这两幅图是后面可以给大家秀一个视频,大概几十秒。这是两幅截图,这是一个表,中间还有一个指针。左边是Vulkan的渲染画面,右边是OpenGL的画面。左边的比较节省电能,同样的游戏体验可以玩更久。我们反过来在同样的帧率,你可以看到这边同样地观看你的位置,这个屏幕上面明显更复杂,更多的星星,和其它各种物体细节,大概能多2-6倍。所以是我们做的实验的结果。如果在同样一个平台上面,你的场景复杂度可以提升很多倍。我们现在看一下这个视频。你仔细去看,它的半透明效果做得非常不错,这个工作室是波兰的,基本上在整个渲染的过程,从前到后,Vulkan都在功耗上面占据一个很大的优势。下面我们再看一下在同样的60帧率下面,能带来怎么样不同的场景复杂度。像场面上的星星这边要多6倍,像其他子弹、敌人细节基本上是两倍左右的区别。这个是它里面这个游戏的第七关里面的场景,是相对复杂的场景。 我们刚才已经大概对这个游戏场景有了一个直观的认识,它的特点是什么?我们可以看一下,我们遇到了哪些问题呢?永远保持60帧还是比较有挑战的。不可能一卡一卡的,然后Fill rate也有很多很多的场景。所以把CPU、GPU推到了极限。这里面有两条曲线,蓝色是Vulkan,红色是OpenGL3,基本上Vulkan始终保持在20%多的性能。它更稳定。OpenGL性能与功耗上窜下跳。特别在移动设备上,当这个温度超过某一个值的话会降频的,引起更多麻烦河卡顿。如果一直保持的话,整个体验是非常smooth的。我把这个场景变得极端复杂的话,Vulkan也始终在OpenGL的体验之上。如果你的写法没有问题的话,使用Vulkan肯定更加高效。 我这边讲的是商业项目,已经发布过的产品。后面有一个在实验性的产品,叫Lofoten,它还没有完全发布。在不久的将来你可以看到Unity也提供类似的新的特性。Lofoten这个demo有什么特点,它有很多地方是很复杂的。整个场景是你飞到一个岛屿上面,这个岛屿在太平洋中间,然后它里面有2.5百万的图元,而且有很多很多的光照,同时里面还有一个挑战,因为是模拟在海中的岛,有很多的波浪。开发游戏的人知道波浪不是那么简单的事情,你要很高效地模拟一个大面积的水面,是需要一些技巧在里面的。而且以前的运行版本里面还需要一些其他的东西。如果大家有兴趣,可以跟我们线下去交流。这个是对它的一个总结,这是我们为什么这个场景有一些区别。这个是Lofoten 1.1的版本,我们增加了一个黑夜里光照的场景,而使用了Vulkan之后,我们用了一些实验性的新的东西。这里面的lighting pass也不太一样,然后再加上光影,再加上雾的效果,再加上灯光的效果。最后再加tonemap,我们在里面大量使用了Vulkan的特性。包括一些优化的方式,还有multi-pass。 (责任编辑:本港台直播) |