Krakatoa for Autodesk Maya (also known as Krakatoa MY or KMY for short) is a volumetric particle rendering plugin inplemented using the C++ Interface to Thinkbox Software’s Krakatoa renderer for Linux, Mac OSX and Microsoft Windows operating systems.
The first public Build 220.127.116.11419 was released on February 21st, 2013. Note that the release number matches the Krakatoa core renderer version shared with Krakatoa MX and Krakatoa SR. All Krakatoa implementations share the same rendering core and should produce identical, pixel-exact output given the same particle data and settings. The latest build is v18.104.22.168157 released on December 17th, 2013.
Krakatoa MY is fully integrated in the Maya User Interface. It implements various dedicated scene objects like a PRT Loader for loading particles from external file sequences, PRT Volume and PRT Surface for converting geometry volumes and surfaces to point clouds. v2.3.0 introduced support for the Magma node-based channel editing system, allowing complex operations on large numbers of particles, data acquisition from other particles and scene meshes and so on.
Krakatoa MY requires its own separate workstation license when used interactively inside the Autodesk Maya User Interface. This includes rendering and running Maya Batch from inside of Maya.
When rendering on the network, all Krakatoa implementations use the same “krakatoa-render” license. This means you can network render with Krakatoa MX, Krakatoa MY or Krakatoa SR as needed without the need to purchase separate render licenses for each.
Note that Krakatoa MY running in network rendering mode will also check for the existence of a workstation license, but will not check it out. In other words, at least one Krakatoa MY workstation license must be purchased for network render licenses to operate correctly.
Major Features Overview
The Krakatoa renderer is CPU-based, highly optimized and heavily multi-threaded. It does not require the presence of a GPU and can be used successfully on any hardware running Windows or Linux including laptops and render nodes without dedicated high-end graphics accelerators.
Krakatoa’s memory footprint adapts dynamically to the requested features, with a minimum memory usage of 26 bytes per particle.
Krakatoa supports volumetric and additive particle shading and allows the mixing of the two modes. The volumetric shading includes per-particle control over Color, Density, Emission and Absorption. The Density controls for the lighting and shading calculations can be decoupled to provide higher control over the final results.
Krakatoa features both Particle (aka Point) rendering and Voxel rendering modes.
Self-shadowing and shadow casting from and onto matte (holdout) geometry objects are supported using mesh-based holdouts. The basic Maya light sources (Point, Spot, Directional) are supported.
Krakatoa features integrated Motion Blur and Depth Of Field camera effects.
Render-time particle multiplication allows the creation of more particles than the original source provided.
Krakatoa MY supports both native Maya Particles and nParticles; external particle sources loaded from disk via the PRT Loader object; procedurally generated particles from geometry volumes via the PRT Volume object; and fractal-based distributions via the PRT Fractal object.
Currently supported external particle file formats are Thinkbox’ PRT file sequences, RealFlow BIN file sequences, and ASCII Comma-Separated Values CSV sequences.
Krakatoa MY includes a function for saving particle data to PRT files that can be used in custom scripts. It ships with a dedicated PRT Saving/Partitioning scripted tool for generating multiple wedges of the same particle system to increase the final particle count or for sharing data with the other implementations of Krakatoa.
Krakatoa MY provides several dedicated scene objects:
The PRT Loader object can be used to load one or more external file sequences. It exposes controls to define which sequences will be used at render time and which will be shown in the viewports, as well as particle percentage and particle limit controls, various loading and display methods.
The PRT Loader allows for particle retiming using offset and animation curve controls. It can clamp the frame range using custom start and end frame and edge behaviors. The position interpolation can be performed either linearly using the current frame’s velocity, or using cubic interpolation from the two nearest surrounding frames.
The PRT Volume object can be used to fill the volume of a polygon mesh with particles. This happens dynamically at render time and can also be previewed interactively in the viewports.
The PRT Volume provides the option to distribute particles within a range from the geometry surface.
Normal vectors are automatically generated for all particles from the nearest geometry surface.
The PRT Surface object can be used to quickly distribute random particles on the surface of a polygon mesh. This happens dynamically at render time and can also be previewed interactively in the viewports.
The PRT Fractal object can be used to create procedural fractal particle distributions based on a random seed, iterations control and several animatable parameters.
Particle Channel Modifiers
Using dedicated Maya nodes, Krakatoa exposes several channel modifiers to perform channel data operations on any valid particle source usable by the renderer.
These modifiers include the setting of a Float or Vector Channel to a new value, the Scaling of an existing Channel by a Scalar factor, the Copying of one Channel into another, the assigning of a Maya Material shade tree to a particle cloud, and the Repopulation of a particle system using Krakatoa’s render-time particle multiplication algorithm.
The modifiers are added, reordered and removed using a dedicated Krakatoa Modifier Editor tool accessible from the Krakatoa shelf.
The most advanced modifier of them all is the Magma channel editor also found in Krakatoa MX in other Thinkbox products. It provides its own low-level node-based interface for performing mathematical operations, particle and mesh queries and a lot more.