Krakatoa SR Features List
Krakatoa SR's feature list is mostly a sub-set of the Krakatoa MX feature list. This is because Krakatoa MX is integrated in a 3D application and can benefit from several avaialble sub-systems like the 3ds Max shading/materials/maps, dedicated PRT scene objects and Magma channel editing, while Krakatoa SR is purely a stand-alone renderer which does not provide application-specific implementations of PRT objects or Magma yet.
Still, there are several features that are Krakatoa SR specific at the moment, including a particle multiplication method which in the case of Krakatoa MX requires the assistance of the Frost particle mesher, as well as Deep Shadow Maps support for shadow casting and matte occlusions.
Krakatoa SR shares the same rendering core with Krakatoa MX and was designed to produce images that match perfectly the Krakatoa MX output.
Krakatoa SR currently accepts the following particle sources:
Krakatoa PRT files
Krakatoa PRT files can be saved from any application that supports writing to PRT.
3ds Max can save PRT files using both the Evaluation and the Commercial versions of Krakatoa MX.
Several open source PRT exporters exist for applications like Maya, Softimage and Houdini.
Both RealFlow and Naiad can save PRT files out of the box.
Note that particle files can be loaded both for direct rendering and as a source for volume filling (particle multiplication).
Other particle file formats (CSV, bin, other formats)
For a full list of particle file formats supported by Krakatoa SR, see: Krakatoa Particle File Formats
OBJ Geometry files as volume to be filled with particles at render time
Spline files (currently based on a variation of the PRT specs) can be used to convert curves to particles at render time with Hair rendering options and density falloff.
The Fractal Points generation inside of Krakatoa SR is procedural, but the designs could be exported from Krakatoa MX and would render identically.
The following sources supported by Krakatoa MX are not implemented as procedural sources in Krakatoa SR yet, but can be baked out from Krakatoa MX as PRT files:
- PRT FumeFX - no conversion of FumeFX voxel data to particles at render time.
- PRT Source - no streaming of particle data from live external sources.
In order to allow the rendering of particle sequences with relatively low particle counts, Krakatoa SR implements a dedicated "pointsvolume" mode which generates new particles at render time based on the input particles distribution.
This method is most useful for recreating fluid-looking particle clouds.
Particle Color Sources
Krakatoa SR supports the incoming Color channel of the PRT file (if available), plus Default and Override colors that respect the scope of the PY scene description file. The 3D application exporting the PRT data can provide arbitrary color data per particle using the source application's shading system. The Default color active in the current scope will be used if the PRT source does not provide a valid Color channel. The Override color in the current scope can overrule these incoming colors to set the color of all particles to a single RGB value. The behavior of the Overrides is the inverse of the behavior in Krakatoa MX where a top-level Color override will affect ALL particles in the scene. To produce the same result, the Krakatoa SR exporter should be written in such a way that when top-level overrides are specified, lower-level overrides are omitted.
For example, in Krakatoa MX a PRT Loader can load a Color channel from disk. The Wireframe (object) color of the PRT Loader will be used in its place if no Color channel exists. A Magma modifier can modify or set this Color channel as the date flows up the stack. A Material assigned to the PRT Loader can override the Color channel (and the Emission, Absorption and Density channels, too). A Global Channel Override Magma can modify all Color channels of all scene particles. And finally the Override Color option in the Global Render Values rollout can override all Color channels of all particles in the scene with a single color or map.
In Krakatoa SR, a PRT Loader can load a Color channel from disk. The Wireframe (object) color of the PRT Loader (if any) can be exported as the DefaultColor value to use if no Color channel exists. An OverrideColor option can replace the Color channel with a single RGB value at any scope level. It can be in the scope of the object attributes to provide the Diffuse color of the object's shader, or in the top level scope to provide the Global Color Override.
The same principles apply to the Emission and Absorption channels.
Krakatoa SR currently implements the same hard-coded phase functions (shading modes) available in Krakatoa MX:
- Isotropic - light is scattered equally in all directions
- Phong Surface - light is scattered by each particle according to its Normal channel which is taken from the X axis of the particle's transformation, as well as the light and viewing directions.
- Henyey-Greenstein - light is scattered according to the angle between the light and viewing directions with a Phase Eccentricity parameter controlling the effect. A Phase Eccentricity of 0.0 produces Isotropic scattering.
- Schlick - light is scattered according to the angle between the light and viewing directions with a Phase Eccentricity parameter controlling the effect. A Phase Eccentricity of 0.0 produces Isotropic scattering.
- Kajiya-Kay - a simple Hair shading model with just one specular highlight set of controls.
- Marschner - an advanced Hair shading model with secondary highlights, glint controls and more.
In the current implementation of both Krakatoa MX and SR, these phase functions are built in. In future implementations, they might be separated to external plugins with an API for developing new light scattering models.
Krakatoa SR supports temporal blurring of particles and matte objects taking into account the velocity of particles, transformation changes of camera and objects and changing geometry using multiple geometry samples.
- The Velocity channel of the particle is used to draw multiple samples along the motion vector. Note that the lighting is currently performed just once in the center of the shutter interval. An option to force relighting on each sub-sample is on the Wishlist.
- A Jittered Motion Blur option allows the randomization of the sample's position along the velocity vector to produce a more natural look without obvious strobbing.
- The transformation matrix of the camera can be exported on multiple sub-frames to produce camera motion blur.
- The transformation matrix of each particle source can be exported on multiple sub-frames to produce object motion blur.
- The transformation matrix of each matte object can be exported on multiple sub-frames to produce matte object motion blur.
- The geometry of each matte object can be exported on multiple sub-frames to produce deformation motion blur. The topology of the matte geometry must be consistent between samples!
The Motion Blur controls include
- Shutter Angle in degrees, default is 180.0
- Particle Segments defining the number of particle samples to draw, default is 2. Using 1 produces no Motion Blur. Using 1 with Jitter on can be used to randomize the positions of the particles in a single image sample.
- Bias - defines the offset from the centered shutter interval. In both Krakatoa SR 2 and Krakatoa MX 2, this affects both particles and matte objects. In older Krakatoa MX versions, it used to affect only the matte objects bias.
Depth Of Field
Krakatoa SR implements Depth Of Field by drawing multiple samples of each particle within the circle of confusion calculated using the focal distance, f-stop and focal length in system units provided for the camera.
A Depth Of Field Sample Rate value controls the quantity of samples to be drawn per particle, default is 0.1.
Matte Objects And Shadow Casting From Geometry
Krakatoa SR supports Matte Objects (Holdouts) using either DTEX image files saved from Renderman-compliant renderers, or OBJ geometry files saved from the host 3D application.
When using DTEX files, an image file sequence must be provided for each light source to generate shadows from the rendered geometry onto the particles, and a sequence is needed for the Camera to occlude particles behind geometry.
When using OBJ files, the Geometry is rasterized internally by Krakatoa SR into a Depth Map for each light and for the Camera. This Depth Map is then used to determine whether a particle is in front or behind geometry. The Depth Map for the Camera can be rendered at a higher resolution than the final output to allow for super-sampling and better anti-aliasing (multiple depth map texels are evaluated per particle).