Krakatoa Channel Operator Tags¶
Introduction¶
- The Krakatoa Channel Operator Tags allow some basic channel operations like setting, copying and scaling. While they don’t provide the power of the Magma channel editor currently found in Krakatoa MX and Krakatoa MY, they allow some useful workflows, for example setting the Emission channel to the value of the Color channel, tweaking the intensity of existing channels or resetting channels to a constant value.
Creation¶
- To add a Krakatoa Channel Operator Tag, select a Krakatoa PRT source object, right-click it and select one of the following:
- (New Tag) > Krakatoa Tags > Channel Copy
- (New Tag) > Krakatoa Tags > Channel Gradient (v2.3.2 and higher)
- (New Tag) > Krakatoa Tags > Channel Scale
- (New Tag) > Krakatoa Tags > Channel Set
- (New Tag) > Krakatoa Tags > Channel Texture


User Interfaces¶
Channel Copy¶
- Copies the Source channel into the Destination channel.
- If the Source channel and the Destination channel have the same type, the data will be copied without any changes.
- If the Source channel is a Float (e.g. Density, Age) and the Destination Channel is a Vector (e.g. Color, Emission), all three components of the Destination channel will be set to the same float value. If the Destination channel is a custom channel, a Float channel will be created unless the Create Vector Channel option is checked.
- If the Source channel is a Vector (e.g. Position, Normal) and the Destination Channel is a Float (e.g. Density), the Magnitude checkbox must be checked to copy the length of the Vector into the Float channel, otherwise the Copy operation will fail and the viewport display/rendering will not be able to process the particles.

Enable Channel Copying checkbox¶
- Checked by default.
- When unchecked, the tag will be ignored and no copying will be performed.
Source Channel Selection list and Source Channel Name text field¶
- The two controls define the name of an existing channel to be copied.
- The default valye is Color.
- The list can be used to select one of the typical pre-defined names like Position, Density, Normal, Velocity etc.
- When the list is set to <CustomChannel>, the text field will become available.
- You can enter any valid channel name (must start with a letter, can contain digits, case-sensitive), but the channel must exist in the source stream for the copy operation to succeed.
Destination Channel Selection list and Destination Channel Name text field¶
- The two controls define the name of the channel to copy into.
- The default is Emission.
- The list can be used to select one of the typical pre-defined names like Position, Density, Normal, Velocity etc.
- When the list is set to <CustomChannel>, the text field will become available.
- You can enter any valid channel name (must start with a letter, can contain digits, case-sensitive), and the channel does not have to exist - if it does not exist, it will be created.
Magnitude checkbox¶
- Unchecked by default.
- When checked, the Length of the source channel will be calculated first, then the resulting value will be copied into the destination channel.
- If the Source channel is a Vector, the Vector Length will be copied into the Destination channel.
- If the Source channel is a Float, the checkbox must be unchecked, otherwise a value of 0.0 will be copied.
- If the Destination channel is a Float channel, the Vector Length will be copied into it.
- If the Destination channel is a Vector channel, the Vector Length will be copied into all three components.
- If the Destination channel is a <CustomChannel> defined by the user, a Float channel will be created, unless the Create Vector Channel checkbox is also checked, in which case a Vector channel will be created.
Create Vector Channel¶
- Unchecked by default.
- Only enabled when the Magnitude checkbox is checked.
- When checked, and if the Destination channel is a <CustomChannel>, a Vector channel will be created instead of a Float channel.
- If checked and if the Destination channel is already a pre-defined Vector channel (e.g. Color, Emission), the state of this option will have no influence on the copy operation - in all cases a Vector channel will be created.
- If checked and if the Destination channel is already a pre-defined Float channel (e.g. Density), the copy operation will fail.
Channel Gradient¶
Available in Krakatoa C4D v2.3.2 and higher
- Remaps the Source Channel into the Destination Channel using a standard CINEMA 4D Gradient control.
NOTE that in v2.3.1, only the PRT Loader (Particle File Source) provided a Gradient control which could only remap an existing channel to the viewport Color channel with an option to reuse the Color for rendering. In v2.3.2 and higher, old scenes containing a PRT Loader with Gradient remapping will be converted automatically at load time to use the Channel Gradient tag. In addition to being applicable to all Krakatoa particle sources, the tag also allows the mapping of the output to an arbitrary channel, not just viewport Color.

Enable Channel Gradient checkbox¶
- Checked by default.
- When unchecked, the tag will be ignored and no channel remapping will be performed.
Source Channel Selection list and Source Channel Name text field¶
- The two controls define the name of an existing channel to be remapped.
- The default value is Position.
- The list can be used to select one of the typical pre-defined names like Position, Density, Normal, Velocity etc.
- When the list is set to <CustomChannel>, the text field will become available.
- You can enter any valid channel name (must start with a letter, can contain digits, case-sensitive), but the channel must exist in the source stream for the copy operation to succeed. See the Available Channels panel for a list of channels that exist in the incoming stream.
Destination Channel Selection list and Destination Channel Name text field¶
- The two controls define the name of the channel to remap to.
- The default is Color.
- The list can be used to select one of the typical pre-defined names like Position, Density, Normal, Velocity etc.
- When the list is set to <CustomChannel>, the text field will become available.
- You can enter any valid channel name (must start with a letter, can contain digits, case-sensitive), and the channel does not have to exist - if it does not exist, it will be created.
Output Data Type list¶
- Controls the Destination Channel’s data type.
- Default is Vector.
- When set to Float, a single component value will be output, useful for example to generate a valid Density channel.
- Note that the type must be specified manually and will not be adjusted automatically when selecting a pre-defined channel name.
Gradient control¶
- A standard CINEMA 4D Gradient control used to remap the Source to the Destination Channel.
- The default flags are Blue at Minimum and Red at Maximum, with a linear gradient interpolation.
- You can adjust the position and values of the existing flags and add new flags as needed, adjust the bias by moving the diamond marker between flags etc.
Gradient Input Type list¶
- Defines the mapping from a Vector Source Channel to the Float value controlling the Gradient color to be used.
- Possible values are:
- Magnitude Squared (default) - uses the length of the Vector to the power of two.
- Magnitude - uses the length of the vector.
- X - uses the first component of the vector.
- Y - uses the second component of the vector.
- Z - uses the third component of the vector.
Normalize Gradient Input checkbox¶
- When checked (default), the input value will be normalized in the range from 0.0 to 1.0 based on the largest value found in all particles.
- When unchecked, the input value will remain As Is
Scale Gradient Input value¶
- This value becomes available when the Normalize Gradient Input checkbox is unchecked.
- It can be used to scale the Input value up or down and thus perform custom normalization.
- Default is 1 (no scale).
Offset Gradient Input value¶
- This value becomes available when the Normalize Gradient Input checkbox is unchecked.
- It can be used to offset (shift) the Input value by the specified value.
- Default is 0 (no offset).
Channel Scale¶
- Scales the existing values of an existing Float or Vector channel by a Scalar value.

Enable Channel Scaling checkbox¶
- Checked by default.
- When unchecked, the tag will be ignored and no scaling will be performed.
Channel Selection list and Channel Name text field¶
- The two controls define the name of the existing channel to be scaled.
- The list provides some typical channels like Position, Color, Normal etc.
- When the list is set to <CustomChannel>, the Channel Name text field will become available and can be used to enter any channel name existing in the incoming particle stream.
- The scaling will be performed in place - the specified channel will be overwritten with the scaled values.
Scale value¶
- Defines the scale factor.
- Default is 1.0 (no change).
Channel Set¶
Sets a new or existing channel to the same value for each particle.

Enable Channel Setting checkbox¶
- Checked by default.
- When unchecked, the tag will be ignored and no channel setting will be performed.
Channel Selection list and Channel Name text field¶
- The two controls define the name of the channel to set.
- The list provides some typical pre-defined names like Position, Color etc.
- Default is Density.
- When the list is set to <CustomChannel>, the text field will become available, and any valid channel name can be entered manually.
- If the channel exists in the incoming stream, its value will be overwritten. The type of the existing channel and the value used to set it must match for the operation to succeed.
- If the channel does not exist in the incoming stream, it will be created and set to the specified value and type.
Data Type drop-down list¶
- Defines the data type of the channel.
- Possible values are:
- Integer
- Float (default)
- Vector
Integer Value¶
- Defines the value to set the channel to when the Data Type drop-down list is set to Integer.
- Default is 0.
Float Value¶
- Defines the value to set the channel to when the Data Type drop-down list is set to Float.
- Default is 0.
Vector Value¶
- Defines the value to set the channel to when the Data Type drop-down list is set to Vector.
- Default is [0,0,0]
Texture Channel Override¶
- Specifies the channels to be used by Texture operations requiring Position, UVW or Normal channels. This tag can be used to remap these channels to any existing channel in the stream to produce advanced texture mapping effects, including Sticky Camera Mapping.

Enable Texture Channel Override checkbox¶
- Checked by default.
- When unchecked, the tag will be ignored and no channel overriding will be performed.
Enable Texture in Viewport checkbox¶
- When checked (default), the texture will be evaluated in the viewports.
- When unchecked, the texture will only be evaluated at render time.
Enable Output Channels even if Shader is Disabled checkbx¶
- When unchecked (default), disabled Shaders will produce no Output Channels.
- When checked, the Output Channels will be created even if the Shader is disabled.
Use World Space For Camera And Frontal Projection checkbox¶
- When checked (default), the Camera and Frontal Projections will assume the reference position data channel is in world-space.
- When unchecked, the position data will be assumed to be in object space.
Input Position Channel Selection list and Input Position Channel Name text field¶
- A CINEMA 4D Texture Tag set to use world space positions (e.g. Camera Mapping) will use the specified channel.
- Default is Position.
Input UVW Channel Selection list and Input UVW Channel Name text field¶
- A CINEMA 4D Texture Tag set to use explicit mapping coordinates (e.g. UVW Mapping) will use the specified channel.
- Default is TextureCoord.
Input Normal Channel Selection list and Input Normal Channel Name text field¶
- A CINEMA 4D Texture Tag that requires a Normal channel will use the specified override channel.
- Default is Normal.
Input Tangent Channel Selection list and Input Tangent Channel Name text field¶
- A CINEMA 4D Texture Tag that requires a Tangent channel will use the specified override channel.
- Default is Tangent.

The various Output Shader Channels controls can be used to redirect the CINEMA 4D shader output channels to Krakatoa particle data channels, for example the RGB Color output of the shader is sent by default to the Color channel of Krakatoa, but could be redirected to Absorption, Emission, Normal or even Velocity if desired; the Luminance output of the shader is redirected to the Emission channel by default and so on.

Supported Channels¶
The Krakatoa renderer supports a limited number of pre-defined particle channel names which are used to define the various particle properties including Position, Velocity, and various shading-related values like Density, Color. Emission etc. The built-in Krakatoa channel names are always Capitalized.
Krakatoa Channel Operator Tags that have a Source Channel field (Channel Copy, Channel Scale) will only work if the specified channel actually exists in the incoming particle stream. Native channels of various particle sources will be mapped automatically to the hard-coded Krakatoa Channel names, for example the position of a particle will always be found in the Position channel.
Krakatoa Channel Operator Tags can output to both existing channels, non-existing channels supported by the renderer, and even to user-defined channel names unsupported by the renderer. In the latter case, these channels can be used for temporary storage and can be read by Channel Operator Tags evaluated later in the data flow of the particle stream.
Channel Names Recognized By The Renderer¶
Position¶
- A vector channel which contains the particle position.
- Every particle must have this channel.
Density¶
- A float channel which contains the spatial density contribution of the particle.
- If not generated by the source or specified explicitly via the object overrides, defaults to 1.0.
- Note that a PRT Volume will adjust the Density of each particle so that the sum of all particle Densities falling within a cube with size of 1.0 cubic unit would be 1.0.
- A Repopulate tag will also generate new particles whose Density will be a fraction of the original particles’ Density encoded on the repopulation grid.
- This channel is always allocated in memory by the renderer, and is always used for rendering.
Color¶
- A vector channel which contains the scatter color of the particle.
- The is the color that will be reflected by a particle into the eye according to the current phase function (shading mode) when while light illuminates it.
- If not specified explicitly (e.g. via the object overrides, or PRT Loader’s viewport gradients), it defaults to 1,1,1 (white).
- This channel is always allocated in memory by the renderer, and is always used for rendering.
Emission¶
- A vector channel which defines the self-illumination (incandescence) of the particle.
- This channel is only allocated in memory by the renderer if the Use Emission option is checked.
- Unless overwritten by an object override or Channel tag, defaults to 0,0,0.
Absorption¶
- A vector channel which defines the light absorption for each color channel separately.
- This channel is only allocated in memory by the renderer if the Use Absorptions option is checked.
- Defaults to 0,0,0, which produces the same result as with “Use Absorption” turned off (gray shadows).
Normal¶
- A vector channel which contains the normal vector of the particle.
- It is usually set to the normal of the closest surface point when the particle was generated by a PRT Volume or PRT Surface.
- Most other particles don’t have this value, in which case it defaults to 0,0,0.
- The Normal channel is required by some of the shading modes like Phong Surface to calculate specular highlights and is only allocated in memory by the renderer in the cases when required.
Tangent¶
- A vector channel which defines the tangent vector (a vector orthogonal to the Normal vector).
- Defaults to 0,0,0.
- Required by some shaders like Marschner Hair, but currently not generated automatically due to lack of hair/splines to particles conversion support.
Other Channel Names Available In Some Particles¶
Age¶
- A float channel which contains the age of the particle as floating point seconds since birth.
- Most live particle sources contain this channel, PRT files could contain it if it was saved, PRT Surface, PRT Volume and PRT Fractal do not contain this channel.
LifeSpan¶
- A float channel which contains the life expectancy of the particle as floating point seconds.
- Same rules apply as with Age.