This page provides information on the V-Ray PhxShaderFoam node.

Note that the new PhxShaderFoam node is still work in progress.



This component is intended to shade particles such as splash and foam but may be used to render sparks, sand or thin cigarette smoke as well.


UI Paths: ||mat Network|| > V-Ray > Volume > V-Ray VolumeGrid Foam



EnabledEnables rendering of VolumeGrid Foam.


Render Settings

Mode – Sets the shading mode:

Bubbles – Each particle is shaded as a spherical, transparent, reflective foam bubble. Surfaces of bubbles that intersect one another are visible inside the bubbles. If you get flickering or noisy renders of tightly packed masses of foam such as beer heads, you should switch to Cellular mode. Otherwise, in animation, pairs of bubbles would appear with one bubble completely in front of another in one frame, and completely behind on the next frame, once the bubble's center goes behind the other bubble's center. This would cause abrupt changes in the overall look of the foam mass in animation.
Cellular – Similar to Bubble mode, but replaces intersecting walls between bubbles with a curved wall. This mode is about twice as slow as simple Bubbles but is suitable for close-up foam.
Splashes – Each particle is shaded as a spherical, opaque, reflective droplet. Surfaces of droplets that intersect one another are not visible. Note that when a Liquid Simulator is connected, particles do not render as Splashes when they are inside the liquid volume of the Liquid Simulator. This is because Splashes represents small liquid droplets used to add more detail to the Liquid mesh, so it does not make sense to render them underwater.
Points – Particles are shaded as flat discs, each the size of one pixel by default. This mode is faster than Bubbles, Cellular, and Splashes and thus is suitable for large scale foam and splashes over a large surface such as an ocean surface. This mode is also suitable for rendering non-foamy fluids such as smoke or ink. Because the points are pixel sized, moving the camera away or decreasing the render resolution makes them appear denser, while moving the camera in closer or increasing the render resolution makes the particles look more scattered. Note that Point mode does not do reflections or refractions like the Bubbles, Cellular, and Splashes, so the particles look diffuse and sometimes darker if you render them next to strongly reflective materials.

Subgroup – The Particle Shader can skip rendering some particles depending on the selected condition.

Use Foam Texture – When enabled, allows to connect a texture to drive the color of the particles. 

Foam Texture – Specifies a texture for the color of the particles.

Foam Color – Specifies the particle color.

Diffuse Multiplier – Provides an additional option to multiply the color brightness.

Size Multiplier – Acts as an additional parameter for controlling the bubbles/splashes size, independent of their particle system. This parameter can be animated to reduce the size of the rendered particles over time. If the Size Multiplier by Particle Age option is enabled, the animation is applied on a per-particle basis rather than acting simultaneously over the entire particle group. The value for this parameter is not set as a constant but instead is affected by the Size Variation and Size Distribution parameters. This introduces randomness in a particle system where all particles have the same size.

Size Multiplier by Particle Age – When enabled, animation of the Size Multiplier parameter is evaluated individually for each particle. The Age channel of individual particles is treated as if it is the Timeline itself, and animation applied to the Size Multiplier is evaluated over it. Therefore, the Size Multiplier animation is applied to each particle, starting at its time of birth. For example, animating the Size Multiplier to go from 1 to 0 over Timeline frames 0 to 30 will individually scale down each particle during the first 30 frames of its birth. Conversely, when this option is disabled, the Size Multiplier animation treats the particles as a collection of points, and scales them simultaneously, regardless of their current age. For example, animating the Size Multiplier to go from 1 to 0 over Timeline frames 0 to 30 will simultaneously scale all particles in the simulation over the first 30 Timeline frames, and none will be visible on frame 31.

Size Addend (Units) – Add this to the size of the particles in order to make them larger, or smaller if a negative value is used. Unlike Size Multiplier which would scale all particles proportionally, Size Addend adds a fixed number to all particle sizes. If both Size Multiplier and Size Addend are used, the Size Multiplier scales the sizes first, and then the Size Addend is added.

Size Variation – Adds randomization to the Size Multiplier so that different particles are scaled differently. The higher the variation, the larger the difference between the smaller and the larger sizes will be.

Size Distribution – Controls the number of bubbles that change size as a result of the Size Multiplier. When this value is set to 0, all particle sizes are simply multiplied by the Size Multiplier. When this value is greater than 0, some particles are multiplied by a higher value, and some are multiplied by with a lower value. Setting this value to 1 ensures that an equal amount of particles are made larger as those that remain smaller. Increasing this parameter produces many smaller particles and fewer big particles.

Size Threshold (Units)If the particle count is very high and most particles are indiscernible from the camera position, using separate shading techniques for large and small particles gives better results. This parameter works in combination with the Subgroup parameter for this purpose. When the Subgroup parameter is set to 3 or 4, the shader only renders particles that satisfy the condition. Use a second Particle Shader object to render the rest of the particles by setting the opposite condition. This makes it possible to have different shading for big and small bubbles or droplets.

Count Multiplier – Increases or decreases the number of particles for rendering. When the value is below 1, the particle count decreases, skipping the particles randomly. When the value is above 1, new particles are created and placed randomly among the original ones in a way that attempts to preserve the group's overall shape. Note that you have to export the particle ID channel if you want to render animation, otherwise the particles would start appearing and disappearing in different places during the animation.

Use Cutter – Enables the Render cutter.

Invert Cutter – When enabled, shading is applied outside the Cutter Geometry. This is not the same as a Cutter with inverted geometry because any rays that do not intersect the Cutter are shaded as well.

Render as Geometry – Produces procedural geometry that contains multiple transparent layers.

Motion Blur – Controls the motion blur effect.

From Renderer – The current renderer's motion blur setting 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.

Motion Blur Multiplier – Can be used to strengthen or weaken the motion blur effect. This value can also be negative and would change the motion blur direction. It would also affect the V-Ray Velocity Render Element, even if motion blur is disabled.

Scattering – Controls how the light rays are scattered inside the particle volume.

Ray-traced (GI only) – Enables physically accurate scattering of light rays. This mode produces the most realistic results but it's the slowest to render. It requires V-Ray with enabled Global Illumination, otherwise the rendered result would be the same as if the option is Disabled. The Diffuse Multiplier does not affect the rendering in this mode.
Disabled – Disables scattering. The Diffuse Multiplier value can be used to correct the brightness because without light scattering the particles would generally render darker.
Approximate – Uses an approximate formula which is faster than Ray-Traced scattering and produces good-looking results. This option is not supported when Render as Geometry is enabled.
Approximate+Shadows – Same as Approximate, but also affects the strength of shadows over the scene geometry. This option is not supported when Render as Geometry is enabled.

Particle Mode – In this mode, the opacity is interpreted as a probability for absorption of the ray even for primary rays.

Use Light Cache – Enables light caching, which can speed up bucket rendering considerably

Light Cache Speedup –  (Available only when Use Light Cache is enabled) Reduces the quality of the Volume Light Cache and increases the rendering speed. You can increase this and gain render speed as long as you don't start getting artifacts and excessive flickering in animation. Note that when using complex lighting with many light sources or dome lights with HDRI maps, combined with Bubbles, Cellular or Splashes mode rendering with Highlights enabled, increasing this option causes the highlights to jitter over the surfaces of bubbles and this may cause flickering or noise in animation.

Volumetric Material ID – Material ID color for the MateralID Render Element when rendering in volumetric mode (with Render as Geometry disabled).

Volumetric ZDepth – Used to generate a z-depth render element in volumetric mode (with Render as Geometry disabled).

Disable – Disables generating the render element.
Standard Element - The z-depth of the particles is written to the V-Ray zDepth render element.
Phoenix Element - The z-depth of the particles is written to a new Phoenix "zDepth" render element.

Particle Age – Used to generate a Particle Age render element, regardless of whether Render as Geometry is enabled or not.


Particle Settings

Refraction Index – The IOR of the bubble material. Higher refractive indices produce more pronounced reflection and refraction. 

Bounces – Specifies the maximum depth of reflection/refraction branches. When the limit is reached, the color of the Environment texture is used instead of starting new rays. Using more bounces slows down the rendering considerably, but reduces any flickering that may appear with a higher Refractive Index.

Reflection Cut Off – Starting a reflection ray is an expensive operation because it produces an avalanche of rays that can consume resources very quickly. Because of this, a reflection ray is only started if its result is very visible. This parameter is used to determine the critical visibility at which new reflection rays will start. If the visibility is less than the specified value, the Environment map is used instead of tracing a new ray. This option has no effect if the Bounces are 0.

Highlights Width – Specifies the width of the specular highlights.

Highlights Strength – Specifies a multiplier to control the brightness of the highlights. 

Use Reflection Map – Enables reflection map.

Reflection Coloring – Used to represent the coloring of the bubble reflection due to interference. The texture is sampled using the direction instead of the explicit coordinates.

Use Environment Map – Enables environment map.

EnvironmentThis map is used when the visibility is less than the Reflection Cut Off value or when the renderer's reflection depth is reached. The texture is sampled using the direction instead of the explicit coordinates.

Ignore Particle Size – By default, the point shader calculates the alpha by considering the size of the particle and the distance to it. This option is used when the particle system contains particles that are too large and leave hard tracks with motion blur.

Motion Blur Step –  Unlike the Bubbles, Cellular, and Splashes modes, 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, the higher the quality, though at the cost of render time.

Motion Blur Limit – If the particle system contains very fast particles, or if the motion blur step is too small, there is a possibility of rendering overload due to the huge count of particle copies. This parameter sets a limit on the number of clones to keep a reasonable rendering time.




Generate GI – Controls whether the object generates indirect illumination. Note that to obtain the caustics effect you must set the appropriate value for the Caustics multiplier below as well as put some objects that generate caustics in the scene.

Generate GI Multiplier – Specifies a multiplier for the amount GI generated by the material.

Receive GI – Controls whether the object receives indirect illumination. A multiplier can be specified for the received indirect illumination.

Receive GI Multiplier –  Specifies a multiplier for the amount GI received by the material.

Generate Caustics – When enabled, the selected objects refract the light coming from light sources that are caustics generators, so that caustics are produced.

Receive Caustics – When enabled, the selected objects become caustic receivers. When light is refracted by objects that generate caustics the resulting caustics are only visible when they are projected on caustics receivers.

Caustics Multiplier – Specifies a multiplier for the caustics.

Camera VisibilityWhen disabled, the object is not visible to camera rays.

Reflections VisibilityWhen disabled, the object appears perfectly transparent to reflection rays.

GI VisibilityWhen disabled, the object is considered perfectly transparent to GI rays.

Shadows VisibilityWhen disabled, the object is invisible to shadow rays from lights and does not cast shadows.

Probabilistic – Specifies whether to use probabilistic sampling:

Disabled – Probabilistic sampling is disabled.
V-Ray GPU Only – Probabilistic sampling is used only for V-Ray GPU.
Always – Probabilistic sampling is enabled always.