This page provides information on the V-Ray User-defined Scalar Map.
Overview
The VRayUserScalar texture allows the user to read and return a single number value from the User-Defined properties of the currently shaded object as a result. This can be useful if the same material or texture is applied to several objects in the scene, but we want to control some of its aspects (i.e. material glossiness, or a blend between two other textures inside a Mix texture etc) with User-Defined properties.
The Example on the right uses a VRayUserScaler node to control the reflection glossiness value on a single V-Ray Material. The four different pieces of the shader ball have a VRayUserAttribute that dictates different values that drive the reflection glossiness.
Parameters
User attribute name – Specifies the name of the user attribute that is looked up and returned from this shading node.
Default value – Specifies the value to return if the user attribute is not found on the shaded object.
Required format for attribute name – Displays possible formats for the attribute in the V-Ray User Attributes string assigned to the object, and what is rendered as a result.
Examples
For the examples below we use a user attribute to several objects. The attribute value is read with a userScalar texture that passes the value to a shader at render time. This way we can pass different shader values that are controlled at the object level, allowing us to share the shader between all objects.
With the help of a user attribute we can control any scalar (float) parameter of the shader.
Note that alembics coming from other applications, e.g. Houdini, with custom attributes already baked in, can be read in the same way as the user attributes. See the Houdini to Maya Alembic Workflow tutorial for more information.
User attributes can be added though the Attributes > VRay > User attributes menu.
Example: User Properties
This example shows the format for the value of the user attribute and how it is interpreted. The VRayUserScalar texture is used to control the VRayMtl Reflection Glossiness parameter. A user attributed named reflectionGlossiness is used to specify different values for the reflection glossiness of two objects.
The same material is applied to the two objects with a VRayUserScalar texture controlling the reflection glossiness.
User attribute for the first object
User attribute for the second object
Although the two objects have the same material, the glossiness is determined by the user property.
Example: VRayUserScalar with VRaySwitchMtl
This example shows how VRayUserScalar determines the distribution of two materials linked in a VRaySwtichMtl to two objects. Two different VRayMtls are linked as Material 0 and Material 1 of a VRaySwtichMaterial. A VrayUserScalar is linked to the SwitchMtl's Material Switch slot and a user attribute named outputMaterial is used to drive the material distribution.
The same VRaySwitchMtl is assigned to two spheres and the VRayUserScalar texture determines how Material 0 and 1 are distributed between the spheres.
User attribute for the first object
User attribute for the second object
The left sphere received Material 0 and the right sphere received Material 1