houdini vfx3d Posted July 6 Share Posted July 6 Missing motion blur on cached geometry is one of the most-asked questions in Houdini's history — and when it's not missing, it often overshoots into long streaks at every impact. Here's the complete method, plus a free kit if you want the code ready to paste. Why per-frame caches lose blur Per-frame caches (.bgeo.sc, per-frame Alembic, VDBs) throw away the between-frame info. To create blur the renderer needs either a velocity attribute v to extrapolate along, or two or more time samples to interpolate between. Changing topology (particle birth/death, fractures, fluid meshes) makes interpolation impossible — those cases must use velocity blur. The decision table Particles / changing point count → velocity blur (v) Deforming mesh, constant topology → time samples / Cache LOP Volumes (pyro, smoke) → velocity blur from vel Camera / transform animation in LOPs → Cache LOP + matching camera shutter The fix — if v got stripped, rebuild it before the cache (Trail SOP → Compute Velocity), or by hand in a Solver SOP: vector prevP = point(1, "P", @ptnum); v@v = (@P - prevP) / f@TimeInc; Then enable velocity blur on the renderer. In Karma/Solaris it's read from v automatically on most geometry; animated transforms need a Cache LOP so the USD stage carries multiple time samples. When blur overshoots at impacts, clamp velocity in the render branch only — never touch the raw cache: float maxspeed = ch('max_speed'); // ~2x your hero speed float spd = length(v@v); if (spd > maxspeed) v@v *= maxspeed / spd; Works on Houdini 19.5 / 20.0 / 20.5 / 21.0. In H21's Karma (Hydra 2) these rules are unchanged. That's the full method. I packaged it into a free kit that adds the clean copy-paste VEX + Python files, a third fix (neighbour-smoothing for impact spikes), a one-click batch-render tool, and a printable reference card: Free on Gumroad (secure checkout): https://worldvfx.gumroad.com/l/motion-blur-fix-kit It's a slice from a larger Houdini Automation Cookbook I'm building. Feedback welcome. 1 Quote Link to comment Share on other sites More sharing options...
tamagochy Posted July 7 Share Posted July 7 (edited) To fix MB on cached geometry you can use timeblend sop, or cache subframes if motion fast and curvy Also need to calculate velocity as central difference Edited July 7 by tamagochy 1 Quote Link to comment Share on other sites More sharing options...
houdini vfx3d Posted July 7 Author Share Posted July 7 Great additions, thanks. You're right on both: timeblend is a clean way to interpolate when topology is constant — good call adding it alongside the time-samples approach. And central difference is more accurate — (nextP - prevP) / 2 captures curved motion far better than the backward difference. The backward version in the post is the "inside a solver, no future frame available" fallback; when you have the full cache, central difference is the better choice. Subframe caching for fast curvy motion is the right move too. Appreciate you sharpening the thread. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.