时间重投影如何工作?


10

时域抗锯齿(和其他时域算法)的工作方式是,将该帧的像素与最后一帧的像素进行匹配,然后使用该信息。

我知道您可以使用最后和当前的帧矩阵以及运动矢量信息来匹配帧之间的像素。

但是我不知道如何知道重新投影的像素是否有效?例如,旧像素现在可能隐藏在其他对象后面。

只是颜色吗?如果是这样,如何处理动画纹理或变化的光照条件?

Answers:


4

Brian Karis在谈论TAA时提到的一种策略是邻域钳制。一般的想法是,要使前一帧的像素有效,其颜色应在该帧当前像素附近(例如3x3像素)的颜色范围内。

这拒绝了光照条件变化的历史记录,如果您不希望移动阴影来产生重影,那么无论如何这可能都是您想要的。

(如果您具有可预测的UV贴图或可以合理猜测的话,取决于动画的速度,动画纹理也可以使用运动矢量进行处理。)


1
您是否听说过有人使用深度缓冲区值进行完整性检查?
艾伦·沃尔夫

@AlanWolfe不,我认为这是因为运动矢量纹理通常是2分量:您需要Z分量更改才能知道深度缓冲区的值是多少,而这并不受屏幕大小的限制。我怀疑您可以通过添加更多的每像素信息来获得更好的拒绝策略。
John Calsbeek 2015年

喔好吧。您认为什么样的信息会有所帮助。阴影参数类型的东西可以分辨出是否是同一材料?
艾伦·沃尔夫

1
@AlanWolfe我没有很多具体想法。我不是何时使用邻域钳位进行时间重投影时会分解并产生伪像以及在这些情况下将使用哪些信息的专家。透明材料(没有运动矢量信息)与高频照明的结合可能会产生伪影,因此您需要一些遮盖力信息。也许几何混叠是您的问题,并且您需要其他一些信息。
约翰·卡尔斯贝克
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.