Some tests with Partions and Particle Culling

Hello everyone,



Here are two tests i did understanding partitions and Particle culling in krakatoa.



I used Pflow to locked down the 1 Million particles on character surface then using Partition utility, i made 100 partitions to disk. and each partition has 1 million particles with random positions. You can see in the image how it was rendered with increment of partitions. Though i tried to render 50 million particles with 50 partitions but it went out ot RAM.



Link to image : http://www.jhjariwala.com/partition_test.jpg





Here is the second test: Volumetric Dino



Link : http://www.jhjariwala.com/dinosand_med.mov



for this, i thought it could be easy with pflow position operator with volume mode.but it was very slow. After checking bobo’s krakatoa cheeze, i realized it should be done with particle culling in PRT loader.



For that, i made the box covering “dino” mesh and using pflow > position operator to fill the volume of the box with 10 Million particles. Using krakatoa, i saved those particles to disk. Then using PRT loader, i loaded 10 million particles to the scene and chosed “dino” mesh as “volume node” in particle culling. Once again, using partition utility generated6 partition to disk. then again in max, loaded all those partitions to generate “volumetric particle dino” and i saved again 10 million particles to single file.



Now back to particle flow, using “Krakatoa file birth” operator, i loaded all particles to the scene and made the disintegration of dino.



Dino character is modeled by sriram.

This is getting better and better :o)



Nice tests! As you can see, the difference between 10 million and 20 million is not very obvious - in fact, the moire patterns are getting worse as you add more particles than necessary. Here are some ideas for the first (surface) test:



*Make sure you use some surface offset so the particles are not exactly on the same surface but have a bit of a randomness in and out of the normals - just a few millimeters, like a skin layer. While the mesh might appear a tiny bit thicker, the particle cover would also have a bit of a thickness and shade better.



*Try lowering the Density of the particles in the 25 million test - it might give you a slight sub-surface scattering look, esp. if you have the offset I mentioned above.



Your volume demo makes the “leaks” in the raytracing code obvious, although I am positively surprised that the streaks are so few. We will have to make sure this is fixed before shipping.



Could you please post some render times on CGTalk - I know the PFlow processing takes a while, but I think people would love to know how long it took to generate the 100 partitions and how long it takes to load 1, 10, 20 and 25 and shade them…



Keep on rocking!

“Once again, using partition utility generated 6 partition to disk.”



This step does not sound necessary - when you load PRT files using the PRT Loader and save to disk, there will be no randomization as the PRT Loader does not have a random seed. So your 6 partitions would contain the same particles and you would be wasting time.


This is getting better and

better :o)



Nice tests! As you can see,

the difference between 10

million and 20 million is not

very obvious - in fact, the

moire patterns are getting

worse as you add more

particles than necessary. Here

are some ideas for the first

(surface) test:



*Make sure you use some

surface offset so the

particles are not exactly on

the same surface but have a

bit of a randomness in and out

of the normals - just a few

millimeters, like a skin

layer. While the mesh might

appear a tiny bit thicker, the

particle cover would also have

a bit of a thickness and shade

better.



*Try lowering the Density of

the particles in the 25

million test - it might give

you a slight sub-surface

scattering look, esp. if you

have the offset I mentioned

above.



Your volume demo makes the

“leaks” in the raytracing code

obvious, although I am

positively surprised that the

streaks are so few. We will

have to make sure this is

fixed before shipping.



Could you please post some

render times on CGTalk - I

know the PFlow processing

takes a while, but I think

people would love to know how

long it took to generate the

100 partitions and how long it

takes to load 1, 10, 20 and 25

and shade them…



Keep on rocking!





Thank you Bobo!

Here are some settings i forgot to mention for the “Partition test”. As you said, pflow position operator > offset is set to min : -1.0 and max : 1.0.



Here are the density settings i used for 1,10,20 and 25 million particles accordingly :

—> For 1 million particles :

Density per particle = 5.0

and exponent = -1.0



—> For 10 million particles :

Density per particle = 1.0

exponent = -2.0



----> For both 20 and 25 million particles :

Density per particle = 1.0

Exponent = -3.0 (below this was giving me more transperancy and dimmer lighting.)



Also “Use final density for lighting” was turned on.



some lighting parameters : two spotlights ;

Each has shadow size 2048.



Also take a look at these two images(for second test) :



First image shows viewport preview of final Pflow particles(which are loaded with “krakatoa file birth” operator.) you can see some particles are leaking.



Second image shows viewport preview of PRT loader but it looks fine and rendering was also fine.no particles leaking.



ImageShack - Best place for all of your image hosting and image sharing needs



ImageShack - Best place for all of your image hosting and image sharing needs

Hey there,



Very nice look! :slight_smile:







How much time does it take to simulate the animation?



How much time to render it?



Thanks







Marc-André Carbonneau



Senior VFX artist



Ubisoft Digital Arts



Montréal



514.490.2000 x:3443






Thanks Marc andre. For rendering animation, it took 2.5 mins per frame and  around 4 to 5 hours in between for 101 frames of animation. there were total 6 motion blur passes.

@ Bobo : oops! i should have posted screenshot of PRT with 100% particles display. yes, you are right. it looks exactly as same as in pflow.

Cool. thanks for the render infos.

How about the simulation time for all the partitions together?

thanks.

 

 

I don’t remember exactly. but it supposed to be around 15 mins. coz i kept it on simulation and went for lunch and came back after 15 mins! :-)  I would need to redo it to check the time.

Well, the leaking is caused by the PRT Loader for sure. If you are not showing all particles in the viewport, chances are you are just not hitting the particles that have been leaked. Setting the PRT Loader Viewport % to 100% should theoretically reveal the same look as in PFlow. The Krakatoa Position operator cannot leak the particles, it just loads what is already in the files, so the leaking should be caused by the custom mesh culling in the PRT Loader…



Thanks for the additional info!