Page 1 of 1

Motion blur with replactors

PostPosted: Fri Dec 22, 2023 10:14 am
by Deepwell
Hi again!

I tried to follow the instructions under
viewtopic.php?f=34&t=73940
to achieve motion blur with replicators.

I have this situation where the point count is different each frame (so the number of transforms differs from frame to frame, I'm using a Surface Emitter) - therefore I cannot use the "Object Motion Blur" checkbox in the "Octane Replicator" settings on the replicator.

The alternative mentioned in the instructions is to instead use the "Kernel->Animation->Refresh Replicators When Scrubbing The Timeline" - which I did.

But the replicated geometry still does not produce motion blur.

So my settings are:

Octane Kernel:
- Camera Motion Blur enabled
- Object Motion Blur enabled
- Refresh Replicators When Scrubbing The Timeline enabled

On the Replicator item:
- Octane Replicator, Object Motion Blur = disabled

I also tried the trick with using the "Use Modo Render Cache" and adding a Motion Vector Output to the Modo Shader Tree - no success...

Am I reading the instructions wrong? What am I missing?

I've attached a demo scene.
Modo: 16.1v8
Octane: 2023.1.1 (13000100)
OS: Windows 10.0.19045 Build 19045

Any help would be greatly appreciated!

Regards
Johannes

Re: Motion blur with replactors

PostPosted: Fri Dec 22, 2023 7:12 pm
by funk
As far as I know, motion blur won't work if the particle count is different in each frame.
IMPORTANT: motion blur on Replicators only works if there are the same number of Point Source transforms each frame


The alternative instructions only seem to allow you to see the replicas (without motion blur), since they'd normally vanish completely.

Re: Motion blur with replactors

PostPosted: Sat Dec 23, 2023 3:27 pm
by Deepwell
Hey funk,
thx for looking into this!

That is unfortunate... :|

I think I understand why Octane would have a hard time calculating the velocity if not all of the particles are actually present in the previous/next frame (i.e. having varying number of transforms), but I really was hoping that the "Motion Vectors from Modo Render Cache" trick would help here also...

Re: Motion blur with replactors

PostPosted: Mon Dec 25, 2023 4:39 pm
by Deepwell
In the standalone app (Octane Render Studio) the motion blur works fine - unfortunately that is not an option for me: I tried exporting one scene of the project (of ~20 scenes total) and canceled it after ~7% with a ~2GB Alembic file...

It seems that to export to the standalone app the Alembic file contains ALL geometry of the scene for EACH frame. My scenes (character animation with landscape) contain vegetation etc. - so, a LOT of geometry, which is not a problem in itself as most of it is static. Rendering directly in Modo works nicely with Octane (besides the motion blur), but if I have to generate a ~30GB file for each scene, which, extrapolating from the 7%, would take a little less than an hour - per scene - just to export no rendering done! - then this stops making sense.

I know that I am outside the usual use cases of Octane (and Modo, for that matter) with doing character animation. But I thought motion graphics is a quite common use case for both - and having particle simulations with replicators does not seem to be an esoteric thing in mograph...

J.

Re: Motion blur with replactors

PostPosted: Fri Dec 29, 2023 2:18 am
by face_off
Hi Johannes

I don't believe that motion vectors from replicator particles is currently supported by the Modo SDK (either in the Render Cache or normal SDK). You can see the particle position and orientation is available at https://learn.foundry.com/modo/developers/latest/SDK/cpp/_rst/lxd_particle.html, but not the velocity.

Thanks

Paul

Re: Motion blur with replactors

PostPosted: Sun Dec 31, 2023 6:37 pm
by Deepwell
Hey Paul,

you mean that's the reason why Octane cannot acquire the motion vector via the Modo render cache?

Also I'm curious why Octane has a problem in the first place when the number of particles changes. Don't they have a unique ID to identify them from frame to frame?

But that's just me wondering...we won't be able to change that anyway :)

Is there maybe some baking workflow that could constitute a workaround?

J.

Re: Motion blur with replactors

PostPosted: Wed Jan 03, 2024 9:59 pm
by face_off
Deepwell wrote:Hey Paul,

you mean that's the reason why Octane cannot acquire the motion vector via the Modo render cache?

Also I'm curious why Octane has a problem in the first place when the number of particles changes. Don't they have a unique ID to identify them from frame to frame?

But that's just me wondering...we won't be able to change that anyway :)

Is there maybe some baking workflow that could constitute a workaround?

J.
Even with the particle Id, I am not sure how that helps. What do you do with the particles that no longer exist, or have not yet been created? They would need to be placed somewhere out of the camera view (or have a 0 scale), so there would be motion blur created getting them into that position. So Octane needs motion vectors for scatter transforms in order to render motion blur if the particle source does not have a fixed number of transforms each frame. The Modo Render Cache does not actually provide Particle source transforms - the plugin goes back to the standard Modo SDK for these - which brings us back to the original issue of the Modo SDK not providing particle velocities.

In theory, the plugin could do the velocity calculation itself when loading all particle transforms into Octane. Although it is only a partial solution, as it would not resolve the issue of vertex motion blur not working. It's something I will look at when I get a chance.

Paul