High Particle Counts¶
The examples so far have only begun to scratch the surface of Krakatoa’s power and flexibility. 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 either single points at the location of each particle, or registers the particle data on a voxel grid and renders it very memory-efficiently one slice plane at a time.
- This way you can push 3ds Max 32 bit to 10 million particles or more.
- The practical limit on 64 bit systems is defined by the available memory - on a machine with 16 GB, the typical upper limit is around 650 million particles.
- To take full advantage of Krakatoa, once you have obtained the particle behavior you desire, you can 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 once.
- 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¶
- Particle Flow uses pseudo-random numbers to create variation in particle behavior.
- To change the results, you can enter different seed values to alter random number computation.
- This appears in several Particle Flow operators under Uniqueness: Seed.
- The most commonly used random number seeds appear in the Position, Speed and Spawn operators.
- Position seeds alter initial placement of emitted particles,
- Speed seeds create variation in velocity,
- Spawn seeds affect birth rate and inherited velocity and scale variations.
- 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 and automate 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 Partitioning rollout, you can easily set up new partitions for your Krakatoa rendering.
- By default, this rollout is completely grayed-out - to enable it, change Krakatoa from “Render Scene Particles” to “Save Particles to File Sequence” mode in the Main Controls rollout.
- 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 User Interface and Interaction 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 stay unaffected.
- Note that the rollout provides two sets of controls - for Local processing on your workstation and, optionally and only if Prime Focus Software’s 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, or decide which of the partition file sequences specified in the PRT Loader should appear in the Viewport or the Renderer.
- Every file sequence in the PRT Loader has two letters in front of its name - v and r.
- Two checkbox - Viewport and Render - correspond to these letters and can be checked for any group of file sequences to turn them on or off in the viewports and the renderer.
- Also, there is an option in the Preferences dialog that tells the PRT Loader to set only the first file sequence to show in the viewport while all to render.
- This way, you can load only one partition with, say 1 or 10 million particles in the viewport, while rendering 10 times more partitions.
- Obviously, if you want to test render just one of many partitions, you can uncheck all other partitions’ Render checkbox and thus turn them off temporarily.
- You can also 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”, but keep in mind that this will be much slower as it requires the decompressing and reading of a lot more data.