Particle Deformations¶
Available in Krakatoa v1.0.0 and higher
Introduction¶
- Krakatoa gives you the capability to deform particle clouds using standard 3ds Max deformation modifiers and Space Warps.
- This feature allows you to combine for example Particle Flow output with standard modeling procedures, like simulating a particle trail once and re-using multiple times by bending it along various splines using PathDeform, even loading splashes from RealFlow simulations and tweaking them to match your scene using FreeFormDeformation lattices, Bend modifiers and so on.
Object Types¶
- All Krakatoa and Stoke PRT objects support particle deformations
- They include Krakatoa PRT Loader, PRT Volume, PRT Surface, PRT FumeFX, PRT Hair, PRT Maker, PRT Source, and Stoke PRT Field.
Modifier Types¶
- 3ds Max distinguishes between
- Object Space Modifiers (OSMs) which are applied to the modifier stack after the base object but before node transforms
- World Space Modifiers (WSMs) which are applied to the modifier stack after the node transforms, the OSMs and the base object.
- Space Warps which are the original form of the WSMs and are created as separate objects in the scene. Their influence is defined by the Space Warp Binding placed on the stack after the node transforms.
- Krakatoa supports most modifiers that have a gizmo and were designed to deform objects without altering topology or working directly with geometry vertices.
- Modifiers like Bend, Twist, Noise etc. deform the vertex positions based on the modifier’s gizmo transformation and size.
- The Krakatoa PRT object passes the particle positions in multiple blocks of 50K particles through the modifiers on the stack, and each block is sent multiple times to deform the Position, Normal, Tangent and Velocity channels (where applicable).
- The performance is exceptionally high - for example, deforming 64 million PRT Volume particles with a Bend modifier adds approximately 5 seconds to the render time.
Example¶
- The Red particle system was created using a simple Particle Flow emitting from a Circle Icon with a varying speed over 100 frames.
- The system was saved to a PRT file sequence, loaded using a PRT Loader object and colored using a Standard Material with a Noise Map using red and dark blue colors.
- The Green particle system is a copy of the same PRT Loader but with a binding to a Bend Space Warp with a gizmo approximately matching the bounding box of the particle system and a bend angle of 180 degrees.
- The Blue particle system is a copy of the same PRT Loader but with a binding to a Noise Space Warp.
- The Orange particle system is a copy of the same PRT Loader but with two deformations.
- First, an Object Space Modifier of type Noise was applied to the PRT Loader.
- Then the resulting system was sent along a user-defined spline via a Path Deform World Space Modifier.
- The particle system was stretched 50% using the Stretch parameter in the Path Deform WSM to cover the path better.
Gizmo Size and Alignment¶
- Space Warps typically provide their own gizmos in world-space, including full control over size and placement. Both the Space Warp gizmo and the PRT Loader can be animated over time to create world-space-based effects.
- World Space Modifiers typically use other objects (splines, patches or NURBS surfaces) to define their influence. Thus, they are a special case of Space Warps. These objects can also be freely animated, and the PRT Loader can be animated to move relatively to them to create world-space based deformations.
- Object Space Modifiers require a gizmo resized to the dimensions of the object being deformed.
- Since the bounding box of a particle system is constantly changing and highly volatile – it could change depending on display/render count, First N / Every Nth particle loading mode, Percentage value and so on – the Krakatoa Particle Loader provides explicit controls over the X, Y and Z dimensions of the gizmo instead of using the actual particle cloud. This means that the gizmo size and orientation is relatively constant (except when the gizmo size spinners are animated). In addition, you can always transform the deformation gizmo relatively to the object space of the icon in Sub-Object mode of the modifier to get exactly the effect you want.
- The OSMs stick to the object space of the PRT Loader. Any position, rotation and scale transformations of the base object will scale the gizmo (and effect space) of the modifiers. This is consistent with the way they work with regular geometry objects.
Volume Selection¶
- The Volume Select modifier allows the selection of particles using a procedural gizmo (Box, Sphere, Cylinder) or a Texture Map.
- The Mesh Object mode is currently not supported by the Krakatoa objects and will be ignored (in previous versions, it could cause crash to desktop).
- The modifier has to be set to Vertex selection, all other modes are not supported.
- The Selection Methods (Replace, Add, Subtract + Invert) are all supported in vertex mode.
- The Soft Selection settings will be respected, producing valid weight values between 0.0 and 1.0.
- The Volume Select modifier’s selection can be used to control the effect amount of supported deformation modifiers.
- The selection provided by the Volume Select modifier can be accessed and modified using Krakatoa Channels Modifiers using the “Selection” channel.
- The selection can also be used to delete particles using the dedicated Krakatoa Delete modifier.
- Explicit selection modifiers like Mesh_Select are not supported.
Supported Modifiers and Space Warps¶
- The PRT objects currently support the following deformation Space Warps, World Space Modifiers and Object Space Modifiers shipping with 3ds Max:
- All Modifier-Based Space Warps:
- Bend
- Noise
- Skew
- Taper
- Twist
- Stretch
- Most Geometric/Deformable Space Warps:
- FFD(Box)
- FFD(Cyl)
- Wave
- Ripple
- Displace
- Conform
- Some World Space Modifiers:
- Path Deform
- Patch Deform
- Surface Deform
- Some Deformation Object Space Modifiers:
- Bend
- Displace
- FFD 2x2x2
- FFD 3x3x3
- FFD 4x4x4
- FFD(Box)
- FFD(Cyl)
- Flex
- Linked XForm
- Melt
- Noise
- Patch Deform
- Path Deform
- Ripple
- Skew
- Spherify
- Squeeze
- Stretch
- SurfDeform
- Twist
- Wave
- XForm
- All Modifier-Based Space Warps:
- 3rd party plugins based on the above modifiers (like Blur’s Twist-O-Rama, Maelstrom) should also work.
- Scripted simpleMod modifiers are gizmo-based and can also be used.
- NOTE: Particle Culling in the PRT Loader will be applied AFTER all deformations, like a top-level Space Warp, because it is based on world-space transformations of the PRT Loader and the Culling Volumes.
Unsupported Modifiers and Space Warps¶
- Deformation Modifiers using complex custom modifier contexts like Skin and SkinWrap are currently NOT supported and can even destabilize 3ds Max.
- Any modifiers that operate on geometry vertices, faces or edges or change geometry tolopogy (like Normal, Smooth, Push, EditMesh, EditPoly, Lattice and so on)
- Any Space Warps that provide forces for Particle Systems. NOTE that you can load your PRT sequence in Particle Flow using the Krakatoa Operators to apply Space Warp forces to your saved particles via a Force Operator.
Deformation Motion Blur Support¶
- The velocity vectors of all deformed particles will be correctly modified together with the particle positions.
- Existing velocity vectors will be deformed to match the effect of the modifier.
For example, a particle system with particles moving up deformed using a Bend Space Warp or OSM will have the velocities pointing along the new direction of motion.
![]()
- Deformation effects will produce an additional velocity effect, even if the source particles files have velocity vectors with zero magnitude.
For example, static particles with all velocities saved as zero in the PRT file, if animated along a path using a PathDeform with the Percent value keyframed from 0 to 100 will receive correct velocities along the path:
![]()
