| Previous Topic (Shadows On Geometry Tutorial) | Up (Contents) | Next Topic (Using Krakatoa with Deadline Tutorial) |
High Particle Counts
Examples so far have only begun to scratch the surface of Krakatoa’s power. Building upon the fundamental techniques discussed already, the following sections provide additional techniques to maximize your volumetric particle rendering capabilities.
Maxing out Particle Counts in 3ds Max
In the best case, 3ds Max’s built-in renderer requires at least 1 geometric face per particle to render, the typical facing particles provide 2 geometric faces per particle. Under a 32-bit operating system, particle systems thus reach a practical limit of about 2 or 3 million particles. Krakatoa requires no geometric faces, and instead renders single points at the location of each particle. In this way you can push 3ds Max to 10 million particles or more.
To take full advantage of Krakatoa, once you have obtained the particle behavior you desire, crank up particle counts and Save Particles to File Sequence to eliminate repetitive calculation.
While you may now create systems larger than previously possible without Krakatoa, certain effects may require upwards of 100 million particles. Memory and processing constraints within 3ds Max do not allow this many particles to be computed at one time. In order to move beyond these limits, a method must be devised to get more particles into Krakatoa.
Consider the inner workings of Particle Flow and the nature of particle systems in general, and you can begin to see an intuitive solution that should provide what we need. Multiple passes of the same particle system can be used to build up particles counts in increments. Provided that the same event-driven rules are followed in each pass, particles will behave identically and then be combined with previous passes within the Krakatoa renderer to boost the overall density. All that is needed to make this concept work is a technique to add controlled variation to our passes.
Incrementing Random Number Seeds

In general, Position seeds alter initial placement of emitted particles, Speed seeds create variation in velocity, and Spawn seeds affect birth rate and inherited velocity. By analyzing the design of your Particle Flow events, you can change specific random number seeds and calculate additional particles to add to your rendering.
Krakatoa calls this Partitioning and provides convenient tools to simplify this process.
Creating Particle Partitions
Partitioning is a technique used to create minor variations in your particle system and build up your particle count density in multiple passes. In the Krakatoa: Particle Partitioning rollout, you can easily set up new partitions for your Krakatoa rendering. By default, this rollout is completely grayed-out - to enable it, choose "Save Particles to File Sequence". Krakatoa can even automatically expand and collapse the Particle Partitioning rollout when you switch it to save particles, assuming you probably intend to do it using partitions. This behavior can be turned on and off in the Preferences rollout.
- In the Partitioning rollout, toggle the Increment buttons to elect which seeds to alter: Position, Spawn, Speed, Rotation etc. By default, all options are enabled and should be left that way unless the setup requires certain seeds to not be affected.
- Note that the rollout provides two sets of controls - for Local processing on your workstation and, optionally and only if Frantic Films Deadline has been installed on your system, for partitioning on the network.
- Enter the total number of Partitions you want to generate in the Partition Count value spinner. By default, it is set to 10. Let's leave it at 10 for now. We are NOT going to use the Partition Range From...To controls - these can be used when creating only a sub-set of partition sequences. Instead, we will create all ten.
- Make sure the "Save Particles To File Sequence" group of controls lists a valid particle file name.
- Press the "Generate All Partitions Locally..." button in the "Local" group of controls. Krakatoa will start processing your particles and will display two progress bars - one showing the progress of the current partition, one showing the total progress. It will also list the elapsed and estimated time to finish the processing. If you want to cancel the processing, just hit the ESC key.
Rendering Multiple Files
To take full advantage of Krakatoa, you will want to render tens or hundreds of millions of particles. Calculate and cache your particles to disk in multiple partitions and load them into Krakatoa for rendering.
To render particles from multiple files:
- In the Krakatoa: Particle Loaders rollout, click the "Create New Loader" button to create a Particle Loader as already described in the previous tutorial.
- When prompted for a file sequence, select ANY of the partition files created in the previous step, for example "particles_part01of10_0000.prt". Krakatoa will look at the name of the file you selected and realize it is a valid partition sequence, one of ten sequences. A prompt will appear asking you whether you want to load all 10 partitions or just the one you selected. Press Yes and the PRT Loader will be populated with all 10 partitions created in the previous step!
Note: Particle files saved by Krakatoa have a four-digit frame number automatically appended to the file name. When selecting particle files for rendering, you need to only select one frame of each sequence, and Krakatoa will load the appropriate frames at render time.
- Click QUICK RENDER to load the listed files, combine the particles and render the aggregate result.
Limiting Particle Counts
The Particle Loader allows you to limit the number of particles loaded from your file sequence. You can elect to load a percentage of particles by setting the "Render" > "Percent[a]" parameter to a value less than 100. The [a] next to the name tells you that the parameter is animatable, so you can even keyframe the render count to change over time. You can also set a maximum number of particles by setting the "Limit (x1000)" to an appropriate value. This can provide a measure of control in keeping particle counts within the physical RAM constraints of your rendering computer. By default, particles will start reading from the first sequence and keep on reading until the limit has been reached. This behavior can be changed to let Krakatoa load from all files and uniformly sample them to produce representative results by switching from "Load First N Particles" to "Load Every Nth Particle".