Motion blur with ICE particles instances

Discussions about rendering in SOFTIMAGE©
Post Reply
User avatar
Maximus
Posts: 1105
Joined: 09 Jun 2009, 15:45

Motion blur with ICE particles instances

Post by Maximus » 12 Nov 2011, 19:32

Hello guys, i'm havin a problem here with rendering ICE particles..
I've created an animation of some instances footballs sphere, normally you would think to turn the motion blur on and expect it works. Indeed it didnt.
So how the hell do you use motion blur with mental ray with ICE particles/instances?

I've tried to cache the animation and switch to "read" file mode and didnt work, (beside this is really horrible as workflow because to see a freaking motion blur in action i have to cache the animation).

not surprised at all when i switched to 3Delight and as soon as i checked motion blur it just worked.
Anyone could enlight me how to enable motion blur with Mental Ray and ICE?

Thanks, Max

Chris_TC
Posts: 411
Joined: 22 Mar 2010, 17:43

Re: Motion blur with ICE particles instances

Post by Chris_TC » 12 Nov 2011, 19:54

There is no special setting you need. Your particles must have their PointVelocity set, as that's how the motion blur is calculated.
Whenever you use one of the standard emission nodes in a simulated ICE tree, the PointVelocity attribute is generated. It is updated every frame by the Simulate Particles node.

You should see motion blur when dragging up a render region in an uncached simulation. But for final renders, you should always cache because otherwise you might see some unpredictable results.

If you think that you should be getting motion blur but are not, try putting a new ICE tree into the post simulation region. Do a Get PointVelocity and Set PointVelocity. Display the value to make sure that the vectors look right. To increase the amount of motion blur, you can put a Multiply by Scalar between the connections to scale up the velocity vectors. Since this happens in PostSimulation, it won't affect your simulation, just the motion blur.

User avatar
Hirazi Blue
Administrator
Posts: 5107
Joined: 04 Jun 2009, 12:15

Re: Motion blur with ICE particles instances

Post by Hirazi Blue » 12 Nov 2011, 20:00

Not speaking from experience but merely from gathered online knowledge:
Does switching the "[on-frame options]" in the "Scene Motion Blur Settings" to "End on Frame" help?
Stay safe, sane & healthy!

User avatar
Mathaeus
Posts: 1778
Joined: 08 Jun 2009, 21:11
Location: Zagreb, Croatia
Contact:

Re: Motion blur with ICE particles instances

Post by Mathaeus » 12 Nov 2011, 20:57

Hirazi Blue wrote:Not speaking from experience but merely from gathered online knowledge:
Does switching the "[on-frame options]" in the "Scene Motion Blur Settings" to "End on Frame" help?
No. It's behavior of Mental Ray, which is itself, (most likely) unable to calculate motion blur. MR expects to get data about motion blur.
It's also ICE behavior. In versions above 7.01 (or probably 7.5), 'get data from previous frame', works only in simulated ICE tree. That is, if you wan't to get
the point velocity from some procedurally animated ICE tree, you'll need to convert it to simulated one, somehow. More or less, flexibility and simplicity of pure procedural animation is lost. Suddenly you'll need caching, copies of Point Cloud, what not.

However, Renderman compliant renderers, or exactly 3delight here, are able to calculate motion blur. In 3delight, whatever is moving, gets appropriate motion blur. No need for point velocity ICE attribute.

It would be interesting to know how Arnold behaves in this case.

Just for info, in another 3d aps, Cinema 4d for example, motion blur is also calculated automatically by 3d app. So, in case of procedural animation (only), in Cinema 4d, you just animate-and-render, just as SI-3delight combo.( Hate to say this, but, trying to get the functionality of Cinema 4d in motion graphics and forgetting the motion blur issue in SI-ICE-Mental Ray in same time .... no comment)

Start or end of fame, this is more important for "matching'. For example, point-based color bleeding in 3deligt likes "Start of Frame", 2d vector blur in post seems to want the "End of Frame" - depends of which moment is used for taking the data.
Last edited by Mathaeus on 12 Nov 2011, 21:23, edited 1 time in total.

User avatar
Maximus
Posts: 1105
Joined: 09 Jun 2009, 15:45

Re: Motion blur with ICE particles instances

Post by Maximus » 12 Nov 2011, 21:00

Chris_TC wrote:There is no special setting you need. Your particles must have their PointVelocity set, as that's how the motion blur is calculated.
Whenever you use one of the standard emission nodes in a simulated ICE tree, the PointVelocity attribute is generated. It is updated every frame by the Simulate Particles node.

You should see motion blur when dragging up a render region in an uncached simulation. But for final renders, you should always cache because otherwise you might see some unpredictable results.

If you think that you should be getting motion blur but are not, try putting a new ICE tree into the post simulation region. Do a Get PointVelocity and Set PointVelocity. Display the value to make sure that the vectors look right. To increase the amount of motion blur, you can put a Multiply by Scalar between the connections to scale up the velocity vectors. Since this happens in PostSimulation, it won't affect your simulation, just the motion blur.
I had no idea i needed the point velocity, my ICE tree is just made by 2 nodes, a cloner and a formula effector, gonna try what you said and see if it works out.
Thanks everyone for help i'll check if i can fix this.

Max


p.s. i've just tried and it doesnt work or i'm not able to make it work..
My ice tree is under the modeling stack, i'm gonna just show you the tree here..

Image

So do i need to move everything under a simulation root?

Chris_TC
Posts: 411
Joined: 22 Mar 2010, 17:43

Re: Motion blur with ICE particles instances

Post by Chris_TC » 12 Nov 2011, 21:29

@Mathaeus: I didn't know that 3delight could render motion blur without any extra data. That's very cool and really the way it should be. As I understand it, mental ray will only calculate positional motion blur on particle instances. So if you rotate the particle instances or resize them, you won't get motion blur for that.
I wonder how VRay and Arnold handle this?
Maximus wrote:My ice tree is under the modeling stack, i'm gonna just show you the tree here..
Yes, that's the problem. Unfortunately you will have to cache out your ICE tree. Then delete it and make a new simulated ICE tree. In the simulated ICE tree you read your cache using a Cache on File. Then you calculate a motion vector by getting the point position via Get Data and getting the pointposition via Get Data at Previous Frame. Draw a vector from one to the other and store the result into self.PointVelocity.

Not cool at all. With ICE modeling it may now in certain cases be preferrable to use real geometry instead of particle instances. This way, deformation motion blur should fully work out of the box. But still, it's disappointing, and I don't know whether Soft or mental ray is at fault here.

User avatar
xsisupport
Posts: 713
Joined: 09 Jun 2009, 11:02
Location: Montreal Canada
Contact:

Re: Motion blur with ICE particles instances

Post by xsisupport » 12 Nov 2011, 21:32

That's exactly the kind of ICE setup (no simulation) where you won't get motion blur in mental ray.

As mentioned earlier, mental ray needs the velocity (unlike 3delight, which I understand uses a delta).

PS In ICE, if you use a rigid body sim, then you'll get angular velocity, and that is used for motion blur.
// Steve Blair
// "You're not a runner, you're just a guy who runs" -- my wife
//
// My Blogs: Arnold | Softimage

Zafar Iqbal
Moderator
Posts: 169
Joined: 26 Oct 2009, 10:04

Re: Motion blur with ICE particles instances

Post by Zafar Iqbal » 07 Mar 2012, 00:27

I was just playing with ICE. Had some points rotate and when time came to render, couldn't get motion blur to work. Tried with the caching thing but nothing. how exactly, if at all, am I supposed to get it to work?
- Zafar Iqbal

Zafar Iqbal
Moderator
Posts: 169
Joined: 26 Oct 2009, 10:04

Re: Motion blur with ICE particles instances

Post by Zafar Iqbal » 09 Mar 2012, 06:29

I tried everything (to the best of my knowledge) I stumbled upon but can't render motion blur. Anyone mind taking a look at this scene?

http://www.digital-ray.dk/community/3D/ ... roblem.scn

Edit: I had a workable solution going on earlier - but made some further changes to my ICE tree and the method using PolyMesh Duplicator Addon no longer works.
- Zafar Iqbal

User avatar
Maximus
Posts: 1105
Joined: 09 Jun 2009, 15:45

Re: Motion blur with ICE particles instances

Post by Maximus » 07 Sep 2012, 16:14

Ok i'm still having a lot of problems with this.
How you guys work with instances? I have an animation in the modeling stack, the animation includes the use of instances.
When i cache and export the pointcloud animation, i create a new scene create a new pointcloud and apply the cache to it. The animation loads fine but the instances are broken they dont come in. The pointcloud just shows dots.

If i have the same object i used in instances in the scene and i create a new pointcloud and apply the cache it reads the instances and shows them correctly.
So what, i take you cant cache instances? Sounds weird.

This is step by step what i did:

- Create a pointcloud not simulated ice tree. apply a compound with some custom stuff using the "add point" node to create particles.
- Create a sphere > apply this sphere as instance shape
- Animate with modulo how those instances move.

Cache the ICE sim with the Cache Manager
- Create a new scene, create a pointcloud > Load cache > instances are not present.
- Create a new scene, create a pointcloud, create a sphere > load cache > instances are present.

iamVFX
Posts: 697
Joined: 24 Sep 2010, 18:28

Re: Motion blur with ICE particles instances

Post by iamVFX » 07 Sep 2012, 16:41

Maximus wrote:How you guys work with instances? I have an animation in the modeling stack, the animation includes the use of instances.
When i cache and export the pointcloud animation, i create a new scene create a new pointcloud and apply the cache to it. The animation loads fine but the instances are broken they dont come in. The pointcloud just shows dots.

If i have the same object i used in instances in the scene and i create a new pointcloud and apply the cache it reads the instances and shows them correctly.
So what, i take you cant cache instances? Sounds weird.
Instance is a reference to an object in scene. It's not the geometry itself.

User avatar
Maximus
Posts: 1105
Joined: 09 Jun 2009, 15:45

Re: Motion blur with ICE particles instances

Post by Maximus » 07 Sep 2012, 16:46

So how can i do this? Because i was caching the pointcloud to have the motion blur.

iamVFX
Posts: 697
Joined: 24 Sep 2010, 18:28

Re: Motion blur with ICE particles instances

Post by iamVFX » 07 Sep 2012, 16:49

To get motion blur you need to cache Velocity attribute of the point cloud. Velocity is a vector, length of which shows how fast particle is moving. You can generate attribute by yourself by setting custom vectors directly to Velocity attribute.
xsisupport wrote:As mentioned earlier, mental ray needs the velocity (unlike 3delight, which I understand uses a delta).

User avatar
Daniel Brassard
Posts: 878
Joined: 18 Mar 2010, 23:38
Location: St. Thomas, Ontario
Contact:

Re: Motion blur with ICE particles instances

Post by Daniel Brassard » 07 Sep 2012, 18:35

Just curious, what is the input of your formula affector?

If it is a formula, the first derivative is the velocity vector (magnitude and direction)!

http://mathworld.wolfram.com/VelocityVector.html
As mentioned earlier, mental ray needs the velocity (unlike 3delight, which I understand uses a delta).
The velocity is calculated between the point location at say frame X minus the point location at the previous frame. If you can subtract the two point location between frames (delta(t)) then you get the rate of change in the position which is the velocity (vector substraction). 3Delight must have an attribute that store the point location at the previous frame so that it can do the calculation on the fly.

Your problem is therefore to find a way to assign an attribute to the particle that will store the previous point location so that you can calculate the velocity and feed it to mental ray.

Several ways to do that including Userdatablob, userdatamap, cache, etc.

Also, Your problem will be to define the initial velocity at frame zero. At frame zero, you have no previous frame to calculate the velocity. So you will have to provide an initial velocity, assume it is zero or skip to the next frame and start the calculation their.

If you have an initial velocity and no force to influence the velocity (i.e no acceleration/deceleration), then your velocity is a constant and feeding this velocity to mental ray should be sufficient for the calculation of the motion blur.

Hope that generate ideas!
$ifndef "Softimage"
set "Softimage" "true"
$endif

User avatar
Mathaeus
Posts: 1778
Joined: 08 Jun 2009, 21:11
Location: Zagreb, Croatia
Contact:

Re: Motion blur with ICE particles instances

Post by Mathaeus » 07 Sep 2012, 23:32

Just for info, V-Ray for SI also is able to automatically calculate motion blur for ICE particles/instances . Didn't tried it, but I believe what i heard.
BTW 3Delight's automatic MB calculation is for everything. That is, translation, rotation and scaling, not only for directional velocity.

User avatar
Maximus
Posts: 1105
Joined: 09 Jun 2009, 15:45

Re: Motion blur with ICE particles instances

Post by Maximus » 08 Sep 2012, 05:24

i just give up, all this crap to have a workin mb, 3delight it is
thanks everyone..

Post Reply

Who is online

Users browsing this forum: No registered users and 31 guests