Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Section
Column
width62%

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.

 

UI Expand
titleUI Path: ||Hypershade|| > Create panel > VRay section > Utilities > VRay User Scalar

Column
width5%

 

Column
width33%

 

 

Parameters

...

Section
Column
width62%

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.

Column
width5%

 

Column
width33%

 

 

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.

 

Section
Column
width25%

 

Column
width50%

Image Added

The same material is applied to the two objects with a VRayUserScalar texture controlling the reflection glossiness.

Column
width25%

 

 

 

Section
Column
width15%

 

Column
width30%

Image Added

User attribute for the first object

Column
width10%

 

Column
width30%

Image Added

User attribute for the second object

Column
width15%

 

 

 

Section
Column
width30%

 

Column
width40%

Image Added

Although the two objects have the same material, the glossiness is determined by the user property.

Column
width30%

 

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.

 

Section
Column
width25%

 

Column
width50%

Image Added

The same VRaySwitchMtl is assigned to two spheres and the VRayUserScalar texture determines how Material 0 and 1 are distributed between the spheres.

Column
width25%

 

 

 

Section
Column
width15%

 

Column
width30%

Image Added

User attribute for the first object

Column
width10%

 

Column
width30%

Image Added

User attribute for the second object

Column
width15%

 

 

 

Section
Column
width30%

 

Column
width40%

Image Added

The left sphere received Material 0 and the right sphere received Material 1

 

Column
width30%