This component is intended to shade particle based splash and foam, but may be used to render smoke as well. Usually it is targeted to the particles exported by the simulator, however any particle systems in 3ds Max may take advantage of it.


NOTE: The generation and receiving of caustics is disabled by default.



Particle system (MXS: System) - the particle system that will be shaded as foam or splashes.


Color (MXS: color) - the color of the foam/splashes.


Bounces (MXS: bounces) - the maximum depth of reflection/refraction branches. When the limit is reached, the environment map will be used

instead of starting new rays.


Reflection cut-off (MXS: minw) - starting a reflection ray is an expensive operation, because it produces an avalanche of rays that can consume all the resources very quickly. Because of this, a reflection ray is only started if its result is important, i.e. quite visible. This parameter is used to determine the critical visibility at which new reflection rays will start; if the visibility is less than its value, the environment map will be used instead for tracing a new ray.


Refractive index (MXS: ri) - the IOR of the liquid. Set bigger refractive indices for more pronounced reflection and refraction. This parameter is also used to control the opacity in point mode, assuming that the bigger IOR produces less transparent bubbles.


Diffuse multiplier (MXS: difmul) - additional option to multiply the brightness.


Highlights width (MXS: hlwidth) - the width of the specular highlights.


Highlights multiplier (MXS: hlmult) - multiplier of the brightness of the highlights.


Pressure variation (MXS: pvar) - this parameter matters only in cellular mode. The cellular mode produces a wall between each two bubbles in contact. To avoid the unnatural appearance, this wall is slightly curved. This parameter assigns random "pressure" in the bubbles and larger values of the parameter result in more curved walls between the bubbles.



Size multiplier (MXS: szmul, szmul_pa) - this acts as an additional parameter for controlling the bubbles/splashes size, independent of their particle system. This parameter can be animated by particle age, use the "PA" button to switch the time source. The value for this parameter is not set as a constant, instead is affected by the Size variation and Size distribution parameters. This allows us to introduce randomness in a particle system where the particles have the same size.


Size variation (MXS:szvar) - relative range of variation for the size multiplier.


Size distribution (MXS:szdist) - how many times the count of the smallest multipliers exceeds the count of the biggest multipliers.


As fog if below (MXS:fogenable, fogthr) - if the count of the particles is huge and most of them are indiscernible from the camera position, the foam/splashes can be poured in a grid and shaded like a smoke. To do this, switch this option on and set the threshold size that determines which particles will be transferred to smoke.


Fog resolution (MXS:fogres) - if the fog mode is enabled, this specifies the cell size of the smoke grid.

WARNING!!! Decreasing the fog resolution twice, will increase the consumed memory eight times! Save the scene before each attempt!


Fog multiplier (MXS:fogmult) - multiplier of the fog density.



Point shader section


Ignore particle size (MXS: ignoresize) - by default the point shader calculates the alpha considering the size of the particle and the distance to it. This option is used when the particle system contains too big particles that leave hard tracks with motion blur.


Motion blur step (MXS: mbstep) - unlike foam and splash modes, the motion blur in point mode is calculated by "cloning" the particle several times and placing the copies along the trajectory. This parameter controls the distance between the copies. The smaller the step is, the higher the quality is. The rendering, however, is slower.


Motion blur limit (MXS: mblimit) - if the particle system contains very fast particles, or the motion blur step is too small, there is a possibility of rendering overloading, due to the huge count of particle copies. This parameter sets a limit of the clone's count, keeping a reasonable rendering time.



Scattering (MXS: scattering) - affects the GI lighting


Enabled - the scattering is enabled.


Disabled - the scattering is disabled and the diffuse multiplier is used to correct the brightnes.


Analytic - an analytic formula is used to calculate the contribution of the scattering to the illumination.


Analytic+shadows - same as Analytic, but geometry is also affected via the shadows.


Mode (MXS: mode) - select the mode of shading. There are four different modes of shading - bubbles, cellular, splash (droplets), and point.


Bubbles - each particle is shaded as a spherical foam bubble ignoring the neighbor bubbles.


Cellular - similar to the previous mode, but builds a curved wall between the bubbles in contact and hides the internal sphere surface. This mode is about two times slower than the simple bubbles, but is suitable for close-up foam. Both foam modes change their optical properties under water, when the transition is water to air or air to water. The rays crossing the border between two underwater bubbles are shaded in the same manner as the ones above the water.


Splash - each particle is shaded as a spherical droplet. The internal surfaces are hidden.


Point - each particle is shaded only in single pixel. This mode is suitable for large scale foam and splash, over an ocean surface for example.



Bubble/Cellular foam mode
Splash mode
Point mode



Subgroup (MXS:subgroup) - selectively shades particles, depending on their position relative to the water. See the Liquid geometry parameter.


All - all the particles are shaded.


Under water - only particles inside the water are shaded.


Above water - only particles outside the water are shaded.


Motion blur (MXS:moblur) - controls the motion blur on/off.

By V-Ray - the V-Ray switch is used.

Force on - the content is rendered with motion blur, regardless of the global setting.

Force off - the content is rendered without motion blur, regardless of the global setting.


Optimize bad sources (MXS:optimize) - when the particles are highly overlapped, the performance sharply decreases and the shader becomes useless due to the huge resource consumption. With this option, an optimization preprocess is performed that deletes the fully overlapped particles and decreases the sizes of the significantly overlapped ones. It's highly recommended to keep this option switched on.


Disable liquid shadows (MXS: nolqshadows) - used to control the lighting of the underwater bubbles, enables direct lighting without caustic photon map and avoiding the liquid color.


Reflection coloring (MXS: usereflmap, reflmap) - used to represent the coloring of the reflection of the real foam, due to the interference. The texture is sampled using the direction, instead of the explicit coordinates.


Environment (MXS: useenvmap, envmap) - this map is used when the reflection depth is reached or the visibility is less than the cut off. The texture is sampled using the direction, instead of the explicit coordinates.


Gizmo (MXS: useGizmo, gizmo) - when set, only the volume inside the gizmo geometry is shaded. If the normals are inverted, the volume outside the geometry is shaded.


Invert gizmo (MXS: invgizmo) - enable the shading only outside the gizmo geometry. This is not the same as a gizmo with inverted geometry, because any rays that do not intersect the gizmo will be shaded, too.

Liquid geometry (MXS: useliquid, liquid) - used to change the shading of the bubbles under the water. Currently only a Phoenix FD object can be set as liquid geometry.


Glass (MXS: useglass, glass) - used to introduce some corrections in the foam-glass interface. Note that the foam should penetrate the glass geometry, otherwise this option has no effect.


Foam rendered with glass correction
Foam rendered without glass correction