AWS Thinkbox Discussion Forums

Collision spawn a particle sequence?

Hi,

I am working on some rain in Pflow.

When the rain drops collide with the floor I want to spawn a crown splash I created in Realflow. I want this to be a particle sequence so I can Frost all the rain drops together.

My workaround so far has been to mesh the crown splash sequence and use it as a shape instance on collision spawn. I would like to have more control.

Cheers!

Thanks for the request, I will add it to the Wishlist. I don’t think we are likely to introduce new PFlow operators to do this, but I believe that extending the PRT Cloner modifier to respect a time offset channel and thus replace any particle with the content of a PRT Loader while offsetting the loading in time might be the way to go.

It might be a bit slow though, as each particle would have to read a different frame from disk…

Note that you can do the shape trick in Frost itself, as it allows the animation offset to be controlled by a Magma channel. So you can duplicate the PFlow using a PRT Source, and set the timing of the Frost custom geometry based on the Age of the spawned particles. You will have control over orientation and more. Then if you are rendering in VRay, you can check the Vray Instancing option in Frost 2.0, and render a million splashes in no time…

Hi Bobo,

Thanks for highlighting this method. I think it will be perfect for what I need to do. I also have to do some growing ice crystals. I think I will be able to use this method for both the rain and ice.

I have set up the file but not sure if I am doing it correctly. I followed the Controlling Geometry Animation tutorial.

When the frost geometry instance is not offset (using the GeomTime channel) it renders perfect. When I offset the animation I get the UNHANDLED EXCEPTION: Compiling error.

I could not work out what you mean with… and set the timing of the Frost custom geometry based on the Age of the spawned particles. For now, I am just birthing the particles in the position icon.

Any thought on this? I added a screen shot.
Thanks again.

E

Hi, I am not sure where the error occurs - you should have showed a screenshot with the actual error. :wink:

Can you somehow send me the test scene so I can reproduce the problem here? Chances are my setup would not match yours if I had to recreate the scene from scratch…

Also, you would want to set the GeomTime channel based on the Age of the particle. For example, if PFlow has particles hitting a deflector and spawning one particle per hit, and deleting the original, you could restart the Age of the particle from 0 and send it to a new Event. Set Frost to mesh that Event only, and set the GeomTime of the spawned particle to be based on the Age times FrameRate. This way, each hit will always play back the mesh animation from the beginning at the right time without any need to know the offset needed.

I did this:

  • I created a splash in PFlow similar to your RealFlow crown sim, meshed with Frost, and saved as XMesh.
  • I created a new PFlow where particles are created in a rectangular emitter over time.
  • I made a PRT Source from the PFlow and added a Magma modifier to it.
  • In the flow, I set the Output to be GeomTime, and InputChannel to be Age, and multiplied the Age by the frame rate (30.0 in my case) since GeomTime is in frames, but Age in PRT objects is in floating point seconds.
  • I then meshed the PRT Source with another Frost set to use the XMesh as Custom Geometry, and the Timing to be “Use Time 0” and “Add GeomTime Channel”.

As result, each time a new particle was born in the second PFlow, the Frost mesh played back the full splash animation from 0 to N because the GeomTime channel was automatically set to the Age in Frames of the particle…

I believe that is what you are after, and you could make the PFlow more complex and just mesh a collision event as needed…

Hi Bobo

Thanks for your help on this! I think my Magma setting were incorrect. About a million instanced splashes in the images below.

As for motion blur do I need to set this up in Magma? I can seem to get motion blur on the Frost geometry instance. please see image below.





I believe right now the Velocity is taken from the underlying particles, but not from the instanced mesh. Not sure if it is a Bug or as intended, I would say it is a current limitation and we should look into making it possible.

I will have to ask the developers about this…

I was able to hack a workaround using regular mesh custom shapes (not V-Ray Instances) and Genome, but it was just a proof of concept that a solution would work. It would not work with your case of a million instances…

Awesome stuff you are cooking there, can’t wait to see an animation once we figure out the motion blur problem!

Hi there me again!

I will need 3d motion blur to add more realism. I can use RSM blur but when I speed things up it will look strange.

In the meantime, I tried the Vray instance on its own but I can’t offset start frame of the source objects (xmesh) in the VRayInstancer . This renders really really fast. My thinking is… can you offset the source objects using Magma and PRTSource? I can see the data in Data Viewer. I don’t know how to manipulate it. What it needs to do is make the source objects (xmesh) start frame zero when particle age is zero.

I also tried the first option you mentioned using the PRT cloner. This works really well and looks good when all the PRT loaders are meshed together as one. But still, I don’t know how to offset the PRT loader start frame on particle birth.

I have attached a stripped down version of the files. What do you think is possible? Sorry if I am asking for to much.

Thanks!
upload_03.rar (3.71 MB)

AFAIK you cannot offset the XMesh frame with the VRayInstancer.

I would love to see the PRT Cloner support the same approach to timing as Frost, but right now it does not have the equivalent of GeomTime.

I have reported the Velocity problem to the Frost developer, I hope we will have a fix soon.

Privacy | Site terms | Cookie preferences