TAA 时域速度链路贯通:天空盒补写 velocity(此前恒 0,相机移动时天空/背景重投影错误 → 闪烁);skyPrevVP(上一帧未抖动 proj × 去平移视图)落帧;TAA 加去遮挡深度检测(重投影点历史深度与当前像素比对,新暴露区拒历史,需 near/far + 投影模式落帧);移除 min-depth dilation(把前景速度泄漏给轮廓旁背景像素 → 边界闪);Forward 不透明段 velocity 附件 Clear→Load 承接天空结果;velocity 不入抖动注释订正(抖动进 velocity = 静止画面持续亚纹素重采样发糊)
This commit is contained in:
@@ -75,7 +75,10 @@ void main() {
|
||||
gl_Position = ubo.proj * ubo.view * worldPos;
|
||||
|
||||
// ---- TAA velocity:当前帧与上一帧的 clip 空间位置差(UV 空间)----
|
||||
// 抖动只进光栅化 gl_Position,不进 velocity(否则抖动本身被当成运动)
|
||||
// 抖动不进 velocity:velocity 描述表面点的真实屏幕位移,必须用未抖动投影。
|
||||
// 静态内容 → velocity=0 → 历史精确采回同一纹素,只做逐帧抖动的超采样平均
|
||||
//(清清楚楚、无重采样模糊)。若把抖动计入 velocity,静止画面也会得到非零
|
||||
// 速度 → 每帧亚纹素重采样历史 → 持续发糊(本次"画面很糊"的根因)。
|
||||
// v1:蒙皮形变不进 velocity(prev 用同一蒙皮姿态),边缘 ghosting 接受
|
||||
vec4 currClip = ubo.projNoJitter * ubo.view * worldPos;
|
||||
vec4 prevWorldPos = prevObjects.prevModels[gl_InstanceIndex] * vec4(skinnedPos, 1.0);
|
||||
|
||||
Reference in New Issue
Block a user