Per-Object Motion Blur Control for EEVEE
Blender's deformation motion blur generates motion vectors based on vertex indices. Because of this, motion blur cannot be generated properly when the vertex count changes between frames, and EEVEE is designed to automatically disable motion blur in these situations.
However, this implementation doesn't handle special cases such as "constant vertex count but changing topology," which can cause visual artifacts when motion blur attempts to render.
While detecting and preventing such cases automatically is difficult, it should be possible to manually disable motion blur for objects that might cause issues. Cycles already supports this through the UI—users can disable motion blur for individual objects in the Object Properties panel.
Unfortunately, EEVEE currently lacks the ability to disable motion blur on a per-object basis. However, EEVEE already automatically disables motion blur for individual objects when vertex counts change. After examining the source code to understand this mechanism, I believe it's feasible to expose this as a manual control option similar to Cycles.
Looking at blender/draw/engines/eevee/ eevee_velocity.cc , when not in viewport mode (i.e., during actual rendering), the code checks vertex counts across previous/current/next frames and toggles a variable called "do_deform" . This variable is then used in blender/draw/engines/eevee/shaders/eevee_velocity_lib.glsl when implementing the actual deformation transform.
Importantly, this is a per-object variable. This suggests it should be possible to expose this as a UI toggle, just like Cycles does.
If this feature were added, it would allow EEVEE users to resolve motion blur issues in the same way Cycles users currently can.
reference link :
0 Comments