Motion blur on Alembic files from Houdini

Hey guys,

I’m writing here for help as I can’t wrap my head around how the motion blur integration for the alembics is functioning on Blender. I basically export a geometry with v attribute from Houdini, but I can’t use that to generate motion blur on Cycles, it simply refuses to do it.

I tried everything -
Exporting v on the points or on the vertex before in my alembic doesn’t change a thing.
Setup the meshSequenceCache modifier properly with v attribute set, in seconds or Frame it doesn’t care and simply does not apply it, whatever my v attribute being on the points or the vertex.

If anyone managed to make motion blur work with an attribute from Houdini I’m super interested, I tried so many tricks on various forums already and I’m a bit desperate to make it work.

Thanks !

Hey,
as this is on my todo list for a long time now, I only recently saw that support for velocity attribute has finally been added to MeshSequenceCache and your question stirred some fears I needed to try this, and it worked.

Just leave the defaults as they are, meaning “.velocities” the attribute name and “Second” the unit. Don’t even think about “v” or “vel” … and don’t ask why. :wink:

Hello Helmut,

Thank you ! Weirdly enough, leaving everything by default works on part of my setup, but not on the other part.

Do I still need to export a v attribute from Houdini ? Should I put that on my points or my vertex ? As for now I’m exporting a Cd attribute on the points, and v and N on my vertex.

Thanks !

I used an alembic file I had exported a while ago (a waterfall fluid surface), did a quick check in Houdini which attributes had been exported, like in your case it was a bunch and v among them, so I imported into Blender 2.9 and it worked straight away.
But yes, on the Houdini end things are to be done as explicitly as always in Houdini, v needs to be exported, but I’d try to make it a point instead of vertex attribute - at least that’s how it is handled in my example case.

Ok I will try thank you. This workflow is really confusing, I was not suspecting Blender to be so late on such basic features :confused:

Hello Helmut,

One of my Alembic is generating MB, the other isn’t, even if both of them are exported exactly the same way. I read somewhere that sometime having two different alembics in the scene could cause this issue…

I’m not sure what to do next :frowning:

Hm.
I tried again, so far I could get it working in a varienty of setups, one alembic bringing in a fluid surface with varying topology plus another alembic for character fx (cloth etc), and two different fluid surfaces in one alembic worked too. In both the setups there wasn’t much else going on in the scene.

Tried a complex scene too, forest environment, waterfall, character taking a bath in the pool … volume rendering for god rays etc. MB didn’t work.

Didn’t do any further research till now, but this smells like a bug. Support for velocity attribute based motion blur is brand new after all …

I’ve been struggling with this issues for months and found a solution.
When importing the alembic file, turn the “Is Sequence” option on, then disable it in the Mesh Sequence
Cache modifier.
Through my limited testing with some fluid sims it has worked every time.

Edit: Changing the alpha of the fluid below .5 disables motion blur.

Thanks Zaytha, I read this method somewhere else as well. So far I haven’t been lucky with it but thanks ! I’ll probably end up rendering in another software, I’m tired of trying to get basic features to work on Blender.

I was having this exact same problem - two alembic files, one has motion blur while the other doesn’t. Zaytha’s method worked for me

Nevermind, it only worked the first time.

After playing around with the file I noticed that Houdini was exporting two objects instead of one (geo1 and geo1.001) which led to TWO cache files inside Blender. In the Object Data panel I swapped the Mesh Data from clean1 to clean1_1 (the second mesh Houdini exported) and now motion blur works.

Not to flood this thread, but I found another explanation:

Motion blur doesn’t work with auto smooth enabled.

My mistake again, for imports with alpha make sure to set Alpha Threshold to zero for in the Data Passes or it won’t render.