缓冲区|UE渲染师Dyomin:做次世代手游,可以用好这项技能

2020虚幻引擎技术开放日上,来自虚幻引擎移动端团队的负责人Jack Porte和团队的渲染工程师Dmitriy Dyomin,为大家分享了虚幻引擎4对于移动端的更新内容。

缓冲区|UE渲染师Dyomin:做次世代手游,可以用好这项技能
文章插图

我们已经分享了Jack Porte的演讲内容了,接下来,Dmitriy Dyomin会详细讲述虚幻引擎的图像渲染技术,尤其是移动端的延迟着色。
以下为演讲内容(有节选):
大家好!我是Dmitriy Dyomin,我在Epic Games工作,主要任务是改善渲染效果以及一些移动端的综合功能。今天我要讲的是移动平台的延迟着色。
延迟着色有前向着色难以比拟的高效优点
我们先来介绍虚幻引擎移动端渲染的现状。
在移动平台上的默认情况下,我们在使用渲染器上会用到一种简单的前向着色技术,它针对移动端GPU,是经过优化后有完整功能的电脑端渲染器,你可以在移动端启用电脑端渲染器的支持,它就在引擎中“平台”的“项目设置”里。

缓冲区|UE渲染师Dyomin:做次世代手游,可以用好这项技能
文章插图

当然,电脑端渲染器也可以和延迟着色功能一起使用,不过电脑端渲染器对移动端来说难以承受,并且不能妥善利用移动端GPU的架构,保证不了延迟着色功能。
所以今天我要介绍一下我们的新延迟着色功能,它针对移动端GPU进行过优化。启用它的方法是在你的项目中添加r.Mobile.ShadingPath=/到DefaultEngine.ini。
我们来看看延迟着色的优点,以及它在移动端GPU上是如何高效实现的。
首先来了解前向着色。它的优点以及局限是使用前向着色时,你可以通过单个pass渲染完场景,这对移动端GPU来说非常棒,因为它不需要大量内存带宽。
不过,前向着色目前没有很好的支持光照贴花的方法,要想完全支持它,就必须具备某种D缓冲区,还需要让场景具备全深度的预渲染。而延迟着色,可以避免这一缺陷。
延迟着色的工作逻辑是,首先,它将所有对象和像素材质数据都渲染为多种纹理,这称为G缓冲区。第二,它渲染光照体积在渲染光照体积时,着色器会从G缓冲区读取数据,并计算最终像素颜色。
这样延迟着色就具备了一个主要优点就是,材质和光照的计算是完全相互独立的。这意味着我们不需要将光照代码包含在材质代码中,我们也不需要大部分的阴影变体,那是前向着色才需要的。

缓冲区|UE渲染师Dyomin:做次世代手游,可以用好这项技能
文章插图

同时也让过度绘制的性能消耗大幅减少,因为在渲染到G缓冲区时,我们执行的是材质代码而并不会执行光照代码,只有在结尾的时候我们才会处理光照。我们只会在最后将光照应用于可见的像素。

【精彩生活】jing111.com小编为您精选以下内容,希望对您有所帮助: