分享|米哈游技术总监:从手机走向主机,《原神》主机版渲染技术分享(12)


为了保证在低亮度范围内的画面和SDR版本的游戏一致,我们将HDR的渲染画面和tone mapping处理之后的画面做了一个基于亮度的混合,然后在亮度不高的地方,就尽量保证了filmic tonemapping的关于toe部分的处理。
分享|米哈游技术总监:从手机走向主机,《原神》主机版渲染技术分享
文章插图
在低亮度范围内一致性的问题,这里面涉及到OOTF的事情。前面我们提到在HDR上面是用了BT1886作为一个EOTF曲线,然后在设备处理游戏输出的时候会用到,相应的游戏在输出信号给电视机的时候也会增加一条曲线,这个就是OETF。然后在HDR的管线里面,实际上就是一条gamma曲线。
但是这里面存在一个问题,就是1886的gamma是2.4,但是SDR的OETF是一个分段函数,大致上可以看作是gamma 2.2,这就出现了一个问题,也就是在PPT上写的问题。OETF处理完的颜色,经过EOTF,它得到的并不是它本身,就产生了一个误差。
但是在HDR下面,因为我们OETF和EOTF是被很好的定义了的情况,所以他们是互逆的,于是这个颜色在经过这两个处理之后能够得到原来的颜色,所以在HDR下面没有这么一个问题。
但是大家已经习惯了在HDR下面有这么一个误差的画面,所以为了模拟这个误差,我们是在HDR管线里面添加了OOTF,把差异给补上去了。
分享|米哈游技术总监:从手机走向主机,《原神》主机版渲染技术分享
文章插图
做完这些,是不是HDR就彻底没问题了呢?并不是。这还有一个大坑,叫做Hue Shift。什么解释一下什么是Hue Shift?
举个例子,大家可以看一下游戏里面火焰制作的示意图,我们通过一个灰度图,就是下面像馒头一样的东西,加一个噪声贴图,然后进行扰动,得到了火焰扰动的纹理,然后我们用橘色去染色。最后我们把火焰的整体亮度往上提,这个时候就得到大家可以看到的见证奇迹的时刻,在SDR下面因为有tone mapping的原因,tone mapping在亮部是有一条曲线的,会让亮度增加逐渐变慢,于是橘色的R通道跟G通道的差异本来是很大,但是随着亮度的增加,tone mapping曲线介入了,R通道的增长就变慢,G通道就逐渐赶了上来,于是就产生了Hue Shift,画面渐渐开始发黄,于是就得到了后面看到的SDR下面火焰的效果。
但是这个是美术想要的一个效果,只不过他是通过这种神奇的方式得到的。但是问题来了:因为在HDR下面,我们是没有tone mapping的,Hue Shift是不会发生的。它叫做Hue Preserving。R通道跟G通道的比例关系是得到一个保持的,所以能够得到亮度非常高的橘色。但是在视觉上,不会让人家觉得很明亮,因为没有黄色。
分享|米哈游技术总监:从手机走向主机,《原神》主机版渲染技术分享
文章插图
那怎么去修改呢?一种常用的方法,也是很多大作都用的方法,叫做黑体辐射。这是一个基于物理的算法,美术去指定温度,根据温度计算出应该是什么颜色。通过这种方式,我们是需要修改美术的资源。不过我们没有采用这种方式,为什么?一方面是因为HDR 这个功能是在很后期才加入的,我们不能够让美术去大量修改已有的资源。

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