Velocity rendering issues - SingleLayerWater vs. Nanite Skinning

Hello!

I am curious if there has been any progress on this issue since this thread was closed: [Lack of velocity pass of single layer [Content removed]

We have been using the r.VelocityOutputPass 1 workaround to get velocity to write from our single layer water surfaces (without it, there is a ton of motion smearing on the reflections). However, in 5.6, using this CVar causes other problems with Nanite skinning meshes not writing correct velocity vectors due to writing velocity in the base pass [Content removed]

It looks like there may be a fix for the second issue in 5.7, but we are not planning to upgrade again for a while, if at all. It looks like we will either need to find a way to make Single Layer Water materials write velocity in the base pass always, while everything else (without WPO) writes velocity in the depth pass, or we will need to backport the updated base pass velocity shader code from 5.7-->5.6.

Do you have any recommendations on the best way to approach this issue before I potentially spend time going down a wrong path?

I think I’m answering my own question here - it looks like this is specifically what the r.SingleLayerWater.ForceVelocity CVar was added to fix.

I just checked again and the single layer water does appear to be writing to the velocity buffer with r.VelocityOutputPass 0. I’m not sure why I thought it wasn’t before posting this question.

Hello,

Apologies for the delay - yes, r.Water.SingleLayer.ForceVelocity=1 in UE 5.6 should force single layer water to write velocity even if the velocity pass is not set to “Write during base pass” (e.g. r.VelocityOutputPass=1)

Did this resolve the smearing issues you were seeing?

It did, thank you.