Motion blur with ICE particles instances
Motion blur with ICE particles instances
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
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
Re: Motion blur with ICE particles instances
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.
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.
- Hirazi Blue
- Administrator
- Posts: 5107
- Joined: 04 Jun 2009, 12:15
Re: Motion blur with ICE particles instances
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?
Does switching the "[on-frame options]" in the "Scene Motion Blur Settings" to "End on Frame" help?
Stay safe, sane & healthy!
Re: Motion blur with ICE particles instances
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.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?
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.
Re: Motion blur with ICE particles instances
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.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.
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..
So do i need to move everything under a simulation root?
Re: Motion blur with ICE particles instances
@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?
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.
I wonder how VRay and Arnold handle this?
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.Maximus wrote:My ice tree is under the modeling stack, i'm gonna just show you the tree here..
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.
- xsisupport
- Posts: 713
- Joined: 09 Jun 2009, 11:02
- Location: Montreal Canada
- Contact:
Re: Motion blur with ICE particles instances
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.
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.
-
- Moderator
- Posts: 169
- Joined: 26 Oct 2009, 10:04
Re: Motion blur with ICE particles instances
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
-
- Moderator
- Posts: 169
- Joined: 26 Oct 2009, 10:04
Re: Motion blur with ICE particles instances
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.
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
Re: Motion blur with ICE particles instances
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.
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.
Re: Motion blur with ICE particles instances
Instance is a reference to an object in scene. It's not the geometry itself.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.
Re: Motion blur with ICE particles instances
So how can i do this? Because i was caching the pointcloud to have the motion blur.
Re: Motion blur with ICE particles instances
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).
- Daniel Brassard
- Posts: 878
- Joined: 18 Mar 2010, 23:38
- Location: St. Thomas, Ontario
- Contact:
Re: Motion blur with ICE particles instances
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
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!
If it is a formula, the first derivative is the velocity vector (magnitude and direction)!
http://mathworld.wolfram.com/VelocityVector.html
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.As mentioned earlier, mental ray needs the velocity (unlike 3delight, which I understand uses a delta).
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
set "Softimage" "true"
$endif
Re: Motion blur with ICE particles instances
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.
BTW 3Delight's automatic MB calculation is for everything. That is, translation, rotation and scaling, not only for directional velocity.
Re: Motion blur with ICE particles instances
i just give up, all this crap to have a workin mb, 3delight it is
thanks everyone..
thanks everyone..
Who is online
Users browsing this forum: No registered users and 31 guests