This page provides information on the V-Ray Procedural Fur plugin.
VRayFur is a very simple tool for creating procedural fur. The fur is generated only during render time and is not actually present in the scene.
To create a VRayFur object, you must first select a mesh from the 3ds Max scene, then go to the Create panel, choose the VRay category, and then click on the VRayFur button. Note that if you have not selected an object, or you have selected an object which is not compatible with VRayFur, the VRayFur button will appear greyed out.
||Select geometry|| > Create menu > V-Ray > V-Ray Fur
||Select geometry|| > Create panel > V-Ray list > VRayFur
||Select geometry|| > V-Ray Toolbar > V-Ray Fur button
Source object – Specifies the source geometry on which the fur will be generated. You can click on this button only from the Modify panel (and not from the Create panel).
Length – Specifies the length of the fur strands.
Thickness – Specifies the thickness of the strands.
Gravity – Controls the force that pulls fur strands down along the Z-direction.
Bend – Controls the elasticity of the fur strands. When set to 0.0, the strands are hard and created as perfectly straight lines. Greater values cause the strands to bend (e.g. under the influence of gravity).
Taper – Allows the user to add a taper to the individual strands of fur. Increasing this value makes the tips thinner and the root wider.
MtlID – Assigns a material ID to the VRayFur object. This is useful for applying a Multi/Sub-object material when multiple VRayFur objects are applied to the same geometry.
Using this parameter you can specify the Length of the strands.
Using this parameter you can specify the Thickness of the strands.
Using this parameter you can control the force that pulls the fur strands down along the Z-direction.
Using this parameter you can control the elasticity of the fur strands. When set to 0.0, the strands are hard and all straight lines.
When this parameter is set to 0.0, no taper is applied to the strands and they have the same thickness from root to tip. Higher values make the root wider and the tip thinner.
Knots – Fur strands are rendered as several connected straight segments; this parameter controls the number of segments. More segments make the strands smoother, but also add to the render time. More segments are usually needed when the strands are curved (eg by the gravity, bend, curl parameters and others). The more straight the strands are, the less segments are needed for a smooth result.
Lvl of detail – Level of detail. When enabled, V-Ray will generate less fur geometry for parts of the scene which are far away from the camera. This is done by decreasing the density of the fur strands and increasing their thickness. This parameter helps for two things: First, it conserves memory by decreasing the detail where it is too far to be visible. Second, it helps reduce animation flickering of very fine fur strands when they are far from the camera.
Start distance – Specifies the distance from the camera at which V-Ray is going to start implementing the level of detail adjustment. Up to this distance the fur will be generated as specified by the user. After that V-Ray decreases the density and increases the thickness of the strands by a factor of two for every n units of space specified by the Rate parameter.
Rate – Specifies the rate at which the detail adjustment is applied, starting from the distance specified in the Start distance parameter.
Direction variation – Adds slight variation to the direction in which fur strands grow from the source object. Any positive value is valid. This parameter should be adjusted according to the scale of the scene.
Length/Thickness/Gravity/Curl var – Adds variation to the corresponding parameter. Values range from 0.0 (no variation) to 1.0.
This section determines the density of strands over the source object.
Per face – Specifies the number of fur strands per triangular face of the source object. Every triangle will generate the specified number of fur strands.
Per area – Specifies the number of strands per squared scene unit. For example, if the the system units are in meters, this parameter specifies the desired number of strands per square meter; if the system units are centimeters, it specifies the number of strands per square centimeter and so on. The area of the triangle faces (which is used to compute the number of strands for each face) is taken at the frame specified by the Ref. frame parameter. Every triangle face has at least one strand.
Ref. frame – Reference frame. When the Distribution parameter is set to Per area, this specifies the frame at which the source object is captured to calculate the face area. The captured data will be used throughout the entire animation to ensure that the number of strands for a given face remains constant during animation.
Lock to surface – When the Distribution parameter is set to Per area and VRayFur is assigned to an animated surface this option locks the hair count to the generated hairs count in the referenced frame. This way, when the option is enabled, the hairs stick to their relative generation points. Else VRayFur is uniformly distributed in any frame.
Ignore scale – When the Distribution parameter is set to Per area and Lock to surface is enabled this option controls whether scale transformation that is effecting the surface should be ignored when distribution area is being calculated. If disabled, the scale factor from the referenced frame is used.
Using Distribution per face parameter you can specify the number of fur strands per triangular face of the source object.
Using Distribution per area parameter you can specify the number of strands per squared scene unit.
Determines which faces of the source object will generate fur strands.
Entire object – All faces will generate fur.
Selected faces – Only selected faces (for example with a MeshSelect modifier) will generate fur.
Material ID – Only faces with the specified material ID will generate fur.
Generate W-coordinate – In general, all mapping coordinates are taken from the base object. However, the W mapping coordinate can be modified to represent the offset along the fur strands. When this option is enabled, the W coordinate is the offset along the fur strands (0.0 is the strand base, and 1.0 is the tip). The U and V coordinates are still taken from the base object.
Channel – When Generate W-coordinate is enabled, this parameter specifies the channel for which the W coordinate will be modified.
Curl – When enabled, adds curls to the fur.
Curl Radius – The radius of the individual curl.
Number of curls – The number of curls on a strand.
Example: Curl radius
Using this parameter you can specify the radius of the individual curl.
Example: Number of curls
Using this parameter you can specify the number of curls on a strand.
Dynamic tessellation – When enabled, instructs V-Ray to subdivide and smooth the fur strands before rendering. Strands closer to the camera are tessellated into finer segments so that they render smooth, while strands away from camera are simplified to reduce memory usage and speed up rendering.
Edge length – Specifies the desired edge length, in pixels, of each final segment of the fur strands when Dynamic tessellation is enabled. Smaller values produce smoother strands but take more memory and are slower to render. Larger values are faster to render and take less RAM, but may cause the fur strands to appear jagged.
Base map chan – Some of the texture maps represent vectors in texture space, where the x and y directions are derived from the u and v directions of a texture mapping channel. This parameter specifies which mapping channel is used.
Bend direction map – This is an RGB map which specifies a bend direction of the fur strands in texture space (according to the specified Base map channel). This is the direction in which the fur strands curve to (the amount of curvature is also controlled by the Bend parameter). The red component is offset along the u texture direction, the green component is the offset along the v texture direction, and the blue component is the offset along the surface normal.
Initial direction map – This is an RGB map which specifies the initial direction of the fur strands, in texture space (according to the specified Base map channel). The red component is offset along the u texture direction, the green component is the offset along the v texture direction, and the blue component is the offset along the surface normal.
Length/Thickness/Gravity/Bend map – These maps are multipliers for the corresponding parameters where black is a multiplier of 0.0, and white is a multiplier of 1.0.
Density map – This map is a multiplier for the strand density. Black portions of the map correspond to zero density (effectively no fur will be generated in these areas), and white represents the normal strand density, as specified by the Distribution parameters.
Curl map – This map is a multiplier for the strand Curl. Black portions of the map correspond to no curl, and white represents the set curl, as specified by the Distribution parameters.
These examples demonstrate the effect of using a texture in the VRayFur texture slots. The texture used for each example is seen facing the camera. The same texture is applied to a different slot of the VRayFur and the effect can be observed on the larger plane with VRayFur applied. Note that some of the examples use normal maps. Color maps can be used instead, both procedural and bitmaps, where RGB would equal XYZ respectively.
Color or normal maps can be used for Bend direction and Initial direction, as those require a direction vector of three components.
The rest of the examples use simple black and white gradients, since the respective parameters require a single float value.
Bend direction map (XYZ or RGB)
Initial direction map (XYZ or RGB)
Length map (mono)
Thickness map (mono)
Gravity map (mono)
Bend map (mono)
Density map (Mono)
Curl map (Mono)
These parameters control the display of VRayFur in the viewports.
Preview in viewport – Turns the preview of VRayFur in the viewports on or off.
Max. hairs – Specifies the maximum number of fur strands that will be represented in the viewport. Lowering this value may help speed up the viewports when there's dense fur in the scene.
Icon text – Enables and disables the display of the "VRayFur" text in the view port
Automatic update – When enabled, the viewport preview of the fur will be updated automatically as the source object changes. However, this may slow down the interactive work with the viewports; in this case, turn the option off to disable the automatic update.
Manual update – Click this button to manually refresh the viewport preview when Automatic update is disabled.
It is possible to use vertex color maps to style the fur. A separate tool for this task, VRayFurStyler, is available for download here.
- Avoid applying textures with Object XYZ mapping to the fur. If you need to use a 3d procedural texture, apply a UVW Map modifier to the source object with the option to convert XYZ to UVW coordinates and use explicit mapping for the texture.
- Avoid having very large triangles covered with fur, since the fur is generated in groups corresponding to triangles of the original mesh.
- Shadow maps will not include information about the VRayFur. However, other objects will cast shadows on the fur, even with shadow maps.
- Sharp VRayShadows may produce flickering with VRayFur in animations, because the lighting situation of individual strands will change very rapidly. Area shadows or VRayLights may produce smoother results.
- VRayFur will not work with VRayPlane as a base object.