既然虚幻引擎4.25预览版已经推出,虚幻引擎4.25还会远吗?对于UE4自动曝光造成的一些问题,官方对自动曝光功能做出了一些改变。虽然不知道这些改变是好是坏,我们也必须了解一下!
曝光补偿曲线
虚幻引擎4.25更新了发行版中的曝光补偿曲线,更加明确了X轴和Y轴数值取自何处。
这使得美术师可以通过在后期处理体积中分配曲线资源来实现所需的外观,同时还能更精细地控制哪些数值会影响环境中的曝光补偿。
(左)后期处理曲线资源分配;(右)曲线资源
使用内容浏览器,单击新增(Add New)按钮,然后导航至其他(Miscellaneous)类别,选择曲线(Curve)以将曲线资源添加到项目。然后选择CurveFloat。
HDR可视化模式包含曲线中表示X轴和Y轴的所有信息。平均场景EV100(Average Scene EV100)值(1)和直方图中的蓝线(实际曝光)值(1)表示曲线资源中的X轴。曝光补偿(曲线)(Exposure Compensation (Curve))表示曲线的Y轴,它与“曝光补偿(设置)(Exposure Compensation (Settings))”值相加,得到“曝光补偿(全部)(Exposure Compensation (All))”的值。
在这个场景中,平均EV100是0.548。这个值插入到曲线资源的X轴,返回Y值0.864。然后就应用这个0.864的值作为曝光补偿(曲线)。
相关的数值是:
● 平均场景EV100是计算得到的目标EV100值,在直方图中以蓝线表示。
● 曝光补偿(设置)是后期处理体积中设置的曝光补偿。
● 曝光补偿(曲线)是从曲线资源得到的Y值。
● 曝光补偿(全部)是前两个数值之和,得到最终曝光补偿值。
通过将曝光补偿分为“设置”值和“曲线”值,你可以更精确地控制设置,并且更明确地理解为什么曝光补偿会有某种表现。
曝光变化速度
曝光从当前值调整为目标曝光值的方式发生了几个重大变化。你可以在直方图视图中通过跟踪紫线(当前曝光值)随时间调整到蓝线(目标曝光值)位置的过程来查看这些变化。
对数间隔调整
第一个重大变化是,所有曝光变动现在都以F制光圈的形式发生,而不是以线性数值的形式。它以对数步幅应用曝光适应,使它始终以恒速上下变动,而旧的设置(见下面图表中的示范)做不到这一点。
例如,使用旧设置时,如果我们当前的线性平均值是1.0,以1000为目标变动,那么在两秒后会达到500.5的中点。
同样,如果按相同的速度反向变动,我们将从1000开始降至1.0,也是在两秒后到达中点。
直观地看,这种行为很合理,但是如果你考虑到人眼的感受,那就有问题了。无论向上还是向下变动,都是线性地遵循同样的曲线,但我们是按对数间隔(例如F制光圈)来感受光线强度的。例如,从1.0变到500.5大约是8档F制光圈,但从500.5变到1000.0只有1档F制光圈。
在这种情况下,当向上变动时,我们会在前两秒变动大约8档F制光圈,然后在曲线的余下部分中只变动1档F制光圈。但是,当向下变动时,我们会在前两秒只变动1档F制光圈,然后在余下的时间中变动8档F制光圈。这种行为就会让人感觉,在上调至目标亮度时,曝光变化非常快,而在下调到目标亮度时,变化得非常慢。虚幻引擎4.25的更改使曝光调节给人的感觉是随时间线性变化的。
新的线性和指数变动
在虚幻引擎4.24和更早版本中,所有的曝光调节都是指数性的。这种行为造成两个附加问题:
● 它会导致抖动行为,因为自动曝光会快速适应亮度的小幅波动。
● 大幅度的亮度过渡总是很快,没有实用的方法来延缓这种过渡。不可能实现从黑暗区域到明亮区域的缓慢过渡效果。
为了解决这些问题,新的算法在远离目标曝光值时会从线性曲线开始(2),而在接近目标值时会转换为指数曲线(1)。
还是用前面的示例(在“对数间隔调整”一节中),在适应较为明亮的场景时,起初的变动是线性的。后期处理中的加速和减速参数现在以每秒F制光圈档位数为单位。
当我们接近目标曝光值时,变动会从线性变为指数性,使用一条指数曲线来保持一阶导数的连续性。你可以使用控制台变量r.EyeAdaptation.ExponentialTransitionDistance来控制这个数值。此变量在距离目标为r.EyeAdaptation.ExponentialTransitionDistance档F制光圈时将线性过渡设置为指数过渡。
默认的指数过渡距离是1.5档F制光圈。加速和减速将会线性地调节曝光,直至在距离1.5档F制光圈时切换为指数变动。
与先前的行为相比,这种变动方式的更改提供了一些关键优点:
● 控制抖动减少。由于在远离目标曝光值时适应过程是线性的,可避免屏幕上出现亮斑时的突变。
● 在需要比较慢的适应时,这些参数能提供更精确的控制。
移动平台对等
虚幻引擎4.25中对官方支持的所有移动平台增加自动曝光支持并优化。也就是说,现在移动平台在功能上实现了与PC和主机平台的对等,支持所有三种自动曝光模式:直方图、基本和手动。
新的自动曝光默认值
新的算法更改使直方图曝光模式的默认值与以前不同。以前,它使用80%下限百分位和98.3%上限百分位范围,这一设计旨在忽略大部分直方图,仅聚焦于高光部分。新的默认值范围是10%下限百分位和90%上限百分位,应用与基本曝光模式近似的结果以确保一致性。
做出这些更改后,默认曝光补偿值0.0在典型场景中显得太暗了。因此在新的后期处理体积中,将默认曝光补偿值改为1.0。但是,你可以选择使用“自动曝光偏差(Auto Exposure Bias)”项目设置更改该默认值。
如果你决定要模拟虚幻引擎4.24或更早版本的行为,可以将直方图范围改为80%和98.3%。然后,应用曝光补偿值log2(1.0/0.18)=2.47。
两种版本都是合理的,其中一种可能更适合你的项目。但是,新的曝光默认值会提供更宽的直方图,默认情况下能让两种不同的曝光模式更为一致。
虚幻引擎4.25自动曝光的改变还有一些没有提到,如果想要了解虚幻引擎4.25自动曝光的功能可以使用预览版测试一下!