This page includes details on the V-Ray Stochastic Flakes material.
The VRayStochasticFlakesMtl material can be used to simulate car paints, snow and other glittery materials. It works by simulating at render time the aggregated effect of a large number of mirror-like flakes scattered over the surface of an object. The material is somewhat similar to the VRayFlakesMtl and VRayCarPaintMtl materials, but uses less memory and avoids the tiling issues for these materials. The term stochastic means "using a random variable".
||Hypershade|| > Create panel > VRay section > VRay Stochastic Flakes Mtl
||Create Render Node window|| > VRay section > VRay Stochastic Flakes Mtl
||V-Ray Shelf|| > Right-click to Create V-Ray Materials button > VRay Stochastic Flakes Mtl
Enable Flakes – When enabled, the material simulates flakes scattered on the surface of the object. If disabled, the material renders the specified BRDF type with the specified glossiness. For more details, please see the Enable Flakes example below.
Num Flakes – The number of flakes, expressed as the square root of the actual number of flakes in the unit texture square. For example, a value of 3000 generates 9,000,000 flakes in the unit texture square. The number of flakes is restricted to 231 (a little over 2 billion), which means the highest useful value for Num Flakes is 46340. If you need more than 2 billion flakes, increase the Flake Scale parameter. For more details, please see the Number of Flakes example below.
Hilight Glossiness – Controls the distribution of the flakes. Values close to 1.0 orient all flakes with normals pointing more perpendicular to the surface, whereas lower values randomize the normals of the flakes. For more information, please see the Highlight Glossiness example below.
Blur Angle – Controls the "softening" of the flakes effect. Higher values produce softer results, while smaller values make the flakes sharper. Usually, value between 0.5 and 8 are used. For more information, please see the Blur Angle example below.
Subdivs – Controls the number of samples to use when calculating reflections. Note that this parameter is available for changing only when Use local subdivs is enabled in the DMC Sampler.
Reflect Filter – Specifies the reflection color of the flakes.
Mapping Type – Specifies the way the flakes are scattered on the surface:
Explicit UVW – The flakes are mapped according to the specified mapping channel. The density of the flakes on the surface depends on the way the UVs follow the surface.
Triplanar from Object XYZ – The material uses triplanar mapping to create the flakes. This mode is useful for objects that don't have suitable UV mapping.
Mapping Channel – Specifies which map channel to use when Mapping Type is set to Explicit UVW channel.
Flake Scale – Controls the scale of the texture space. When Mapping Type is set to Explicit UVW channel, a value of 1.0 is recommended. For Triplanar from Object XYZ mapping, the Num Flakes amount is distributed in each square unit in local object coordinates. In this case it is necessary to lower the Flake Scale value to 0.05, 0.01, or even less, and increase the Num Flakes value depending on the object size, especially if square artifacts are observed.
The Num Flakes and Flake Scale parameters are inversely proportional. This means that if you double the value of Num Flakes and divide the Flake Scale by 2, the resulting flake density remains the same, although the flake pattern itself might change.
Brdf Type – Specifies the BRDF used to guide the distribution of the flakes:
GGX – Uses GGX distribution for the flakes (the GGX distribution has a longer "tail" compared to Beckmann).
Beckmann – Uses a Beckmann distribution for the flakes.
Seed – The seed for the randomization of flakes. Changing this value produces different flake patterns.
Example: Enable Flakes
The Enable Flakes parameter allows the user to turn the Stochastic Flakes effect on and off. When on, flakes will be scattered across the surface of the material. When off, the material will render with only the specified Brdf Type and Hilight Glossiness. In the example below, the BRDF type is set to GGX. Click on the image to open the full-res.
Enable Flakes is off.
Enable Flakes is on.
Example: Number of Flakes
Num Flakes = 2236 (5,000,000 flakes per unit texture square)
Num Flakes = 7070 (50,000,000 flakes)
Num Flakes = 22360 (500,000,000 flakes)
Example: Highlight Glossiness
Hilight Glossiness = 0.6
Hilight Glossiness = 0.8
Hilight Glossiness = 0.95
Example: Blur Angle
Blur Angle = 1.0
Blur Angle = 3.0
Blur Angle = 6.0
Colored Flakes Parameters
The Colored Flakes parameters control the color and random hue and lightness of the flakes. The correct physical behavior is that the material appears darker, since the colored flakes/mirrors reflect only certain part of the spectrum. When viewed from distance, the aggregate color of the material converges to the average color of the flakes.
Colored Flakes – Dropdown to enable Colored Flakes
Off – No variance to the specified color for the flakes is applied.
Random Hue – Enables randomized hue for the flakes.
Random from Map – Enables use of a texture map for randomized colors.
Saturation – Determines the saturation variation of the colors for all flakes.
Lightness – Controls the lightness variation of the colors for all flakes.
Random Color Map – Available when Colored Flakes is set to Random from Map. Specifies a texture from which random colors are sampled and applied to the flake color.
Note: Only the bottom-most horizontal row of pixels from the texture are sampled; all other parts are ignored. See the Random Color Map example below for more information.
White Average – When enabled, renders colored flakes without the darkening effect. Note that this is not physically correct.
Example: Random Color Map
The Random Color Map parameter allows the user to provide a texture map for randomizing the stochastic flake colors. It is only accessible when Colored Flakes is set to Random from Map. Random colors are generated by sampling the horizontal row of pixels at the very bottom of the map along the U-axis. The sample area is only 1 pixel tall; the rest of the map is ignored.
The example below illustrates how the same ramp produces different flake color results depending on the ramp type. A U Ramp produces multi-colored flakes while a V ramp produces single-color flakes. The Stochastic Flakes Material is used as the base material of a VRayBlendMtl with a lightly reflective VRayMtl as the coat.
Input ramp using U space
Multi-colored flakes are produced. Click on the image for a larger resolution.
Input ramp using V space
Only Yellow-colored flakes are produced. Click on the image for a larger resolution.
Blend Min – Specifies the number of flakes per pixel below which the flakes are computed. When the number of flakes per pixel is above this value, the material gradually transitions into a smooth (non-discrete) BRDF.
Blend Max – Specifies the number of flakes per pixel above which the material will only compute the smooth (non-discrete) BRDF. If the number of flakes per pixel is below this value, the material gradually transitions into discrete flakes.
The VRayStochasticFlakesMtl material is based on the Chaos Group paper "A Practical Stochastic Algorithm for Rendering Mirror-Like Flakes" (PDF Download).