Verge3D for Maya: Materials, Textures, and Utility Nodes — Soft8Soft
Description: Learn what kinds of Maya materials, textures, and utility nodes are supported in Verge3D and how to configure them to create good-looking 3D web interactives.

# Materials, Textures, and Utility Nodes / Maya

This section references all materials, textures and utility nodes supported in Verge3D for Maya.

- Surface Shaders
  - Standard Surface
  - Lambert
  - Blinn, Phong, Phong E
  - Surface Shader
- 2D Textures
  - Bulge
  - Checker
  - Cloth
  - File
  - Grid
  - Noise
  - Ramp
- Environment Textures
  - Env Sphere
- Other Textures
  - Layered Texture
- Utility Nodes
  - Add Double Linear
  - Add Matrix
  - Blend Colors
  - Bump 2d
  - Clamp
  - Compose Matrix
  - Condition
  - Decompose Matrix
  - Four By Four Matrix
  - Gamma Correct
  - Inverse Matrix
  - Luminance
  - Multiply Divide
  - Mult Double Linear
  - Mult Matrix
  - 2d Placement
  - Reverse
  - Sampler Info
  - Set Range
  - Transpose Matrix
  - Unit Conversion
  - Vector Product
  - Weighted Add Matrix
- LookdevKit Utility Nodes
  - Channels
  - Color Composite
  - Color Condition
  - Color Constant
  - Color Logic
  - Color Mask
  - Color Math
  - Float Composite
  - Float Condition
  - Float Constant
  - Float Logic
  - Float Mask
  - Float Math
  - Premultiply
  - Unpremultiply
- Arnold Nodes
  - aiStandardSurface
  - aiAbs
  - aiAdd
  - aiAtan
  - aiCheckerboard
  - aiCompare
  - aiComlement
  - aiCross
  - aiDivide
  - aiDot
  - aiExp
  - aiFacingRatio
  - aiFlat
  - aiFraction
  - aiIsFinite
  - aiLength
  - aiLog
  - aiMatrixTransform
  - aiMax
  - aiMin
  - aiMixShader
  - aiModulo
  - aiMultiply
  - aiNegate
  - aiNormalize
  - aiNormalMap
  - aiOslShader
  - aiPow
  - aiRaySwitch
  - aiReciprocal
  - aiShadowMatte
  - aiSign
  - aiSkyDomeLight
  - aiSqrt
  - aiSubtract
  - aiTrigo
  - aiTriplanar
  - aiTwoSided
  - aiUserDataColor
  - aiUvProjection
- Performance Considerations

#

## Surface Shaders

#

### Standard Surface

This shader can represent many real-world materials (such as metals, plastics, glass, wood, textile etc) by using physically-based shading model.

The following Standard Surface settings are supported in Verge3D:

#### Base Panel

- Weight or (Base input in Hypershade)
- Color or (Base Color input in Hypershade)
- Metalness

#### Specular Panel

- Weight (Specular input in Hypershade)
- Color (Specular Color input in Hypershade)
- Roughness (Specular Roughness input in Hypershade)
- IOR (Specular IOR input in Hypershade)

#### Transmission Panel

- Weight (Transmission input in Hypershade)
- Color (Transmission Color input in Hypershade)

#### Coat Panel

- Weight (Coat input in Hypershade)
- Roughness (Coat Roughness input in Hypershade)
- Normal (Coat Normal input in Hypershade)

#### Sheen Panel

- Weight (Sheen input in Hypershade)
- Color (Sheen Color input in Hypershade)
- Roughness (Sheen Roughness input in Hypershade)

#### Emission Panel

- Weight (Emission input in Hypershade)
- Color (Emission Color input in Hypershade)

#### Geometry Panel

- Thin Walled
- Opacity
- Bump Mapping (Normal Camera input in Hypershade)

#### Additional Verge3D Settings

You can tweak your Standard Surface materials by using the following settings located on Verge3D panel:

Alpha Mode
  Select transparency mode: Auto, Opaque, Blend, Mask, Coverage, or Add. See transparency guide for more info.
Two Sided
  Make your material two-sided. By default, Verge3D renders only front side of materials, enable this option to render their reverse side as well.
Depth Write
  Render material depth in depth buffer. Disable this option for transparent materials to make them rendered in additive manner.
Depth Test
  Perform depth test calculations when rendering your material. Disabling depth test is useful when rendering objects inside semi-transparent objects to prevent them from being culled by the covering objects.
Dithering
  Reduce banding artifacts by using pixel dithering.
glTF 2.0 Compatible
  Force the material to be glTF 2.0 compatible. See the following guide for more information.

#

### Lambert

Basic yet quite efficient node which can be used to represent materials with no specular reflections.

The following Lambert settings are supported in Verge3D:

- Color
- Transparency
- Diffuse
- Bump/Normal Mapping

Verge3D settings are also supported, see above for more info.

#

### Blinn, Phong, Phong E

In Verge3D, these materials will be approximated by the PBR shading model, thus they might look differently compared to Maya Viewport.

#

### Surface Shader

Use this shader node to create fully-customizable materials. Basically, it just transfers Out Color parameter to the renderer as is.

#

## 2D Textures

#

### Bulge

Create bulge pattern. Read more here.

#

### Checker

Create checkerboard pattern. Read more here.

#

### Cloth

Create cloth pattern. Read more here.

#

### File

Read texture from file. See more info here.

#

### Grid

Create grid pattern. Read more here.

#

### Noise

Create 2D noise pattern. Perlin Noise type is the only supported.

#

### Ramp

Procedural gradient texture. Read more here.

#

## Environment Textures

#

### Env Sphere

Map input texture image by using equirectangular projection. This node is useful to simulate metallic surfaces without having to use complex (and compute-intensive) physically-based shading algorithms. For example, you can connect it to the Surface Shader node:

#

## Other Textures

#

### Layered Texture

Used to create multi-layered textures. Read more here.

#

## Utility Nodes

#

### Add Double Linear

Calculate the sum of two input values. Since double-precision values are not supported in WebGL, this node works exactly like Add operation in the Float Math node.

#

### Add Matrix

Calculate sum of input matrices.

#

### Blend Colors

Blend Color 1 and Color 2 using the Blender factor.

#

### Bump 2d

This node is used to apply bump and normal maps to low-poly geometry to increase its detalization.

Verge3D supports only Bump and Tangent Space Normals maps (set by Use As parameter). Read more about bump and normal mapping in Maya here.

#

### Clamp

Clamp Input between Min and Max.

#

### Compose Matrix

This node composes a 4x4 matrix from the given translation, rotation, and scale components. Shear input is not supported.

#

### Condition

Compare First Term with Second Term and select Color If True or Color If False based on the result of comparison. Read more here.

#

### Decompose Matrix

Decompose input matrix to components. Read more here.

#

### Four By Four Matrix

This node is used to compose a 4x4 matrix from 16 float values.

#

### Gamma Correct

Perform gamma correction in input value:

OutValue = Value 1/γ

#

### Inverse Matrix

Inverts the given 4x4 matrix.

#

### Luminance

Convert input color to grayscale value. The conversion formula is:

Luminance = 0.3*R + 0.59*G + 0.11*B

#

### Multiply Divide

Perform Multiply, Divide, or Power operation on input values.

#

### Mult Double Linear

Multiply two input values. Since double-precision values are not supported in WebGL, this node works exactly like Multiply operation in the Multiply Divide node.

#

### Mult Matrix

Multiply two or more matrices. In Verge3D, you can multiply no more than 3 matrices using the single Mult Matrix node.

#

### 2d Placement

Output 2D texture coordinates (UV). Read more here.

#

### Reverse

Reverse vector or color:

Output = 1 - Input

#

### Sampler Info

Output info about rendered pixel. Read more here.

#

### Set Range

Remap input Value. Read more here.

#

### Transpose Matrix

Transpose the given 4x4 matrix.

#

### Unit Conversion

Convert units of the input value. Read more here.

#

### Vector Product

Calculate Dot Product, Cross Product, Vector Matrix Product, or Point Matrix Product from the input vectors. Read more here.

#

### Weighted Add Matrix

Calculate a weighted sum of the input matrices. Read more here.

#

## LookdevKit Utility Nodes

Make sure you have LookdevKit plug-in enabled before using any of these nodes.

#

### Channels

Remap channels in the input color (and alpha). Read more here.

#

### Color Composite

Perform various composite operations on input colors (and alphas): Add, Subtract, Mix, Multiply, Screen, Overlay, Difference, Dodge, Burn. For more explanations please refer to the Maya's docs.

#

### Color Condition

Check whether the input Condition is true or false, and pass corresponding Color/Alpha value as output. Read here for more info.

#

### Color Constant

Output specified Color and Alpha values.

#

### Color Logic

Perform math operation on input colors and set the Out Bool value in accordance.

#

### Color Mask

Apply color mask to input color/alpha. Read more about this node here.

#

### Color Math

Perform math operation on input colors/alphas: add, subtract, multiply, divide, min, max.

#

### Float Composite

Perform various composite operations on input values: Add, Subtract, Mix, Multiply, Screen, Overlay, Difference, Dodge, Burn. For more explanations please refer to the Maya's docs.

#

### Float Condition

Check whether the input Condition is true or false, and pass corresponding value as output. Read here for more info.

#

### Float Constant

Output specified float value.

#

### Float Logic

Perform math operation on input values and set the Out Bool value in accordance.

#

### Float Mask

Apply mask to input value. Read more here.

#

### Float Math

Perform math operation on input values: add, subtract, multiply, divide, min, max, or power.

#

### Premultiply

Premultiply RGB color channels by alpha.

#

### Unpremultiply

Unpremultiply (divide) RGB color channels by alpha.

#

## Arnold Nodes

#

### aiStandardSurface

This shader comes with Arnold for Maya (MtoA) and is very similar to Standard Surface shader.

Since Standard Surface is better supported in Maya viewport and does not require Arnold plug-in to be installed, we recommend using it over aiStandardSurface. The only reason to stick with Arnold version is preserving compatibility with your existing scenes.

#

### aiAbs

Calculate absolute value of the input color/vector.

#

### aiAdd

Calculate sum of the colors/vectors.

#

### aiAtan

Calculate 2-argument arctangent of input vectors. See more here.

#

### aiCheckerboard

Create checkerboard pattern. Verge3D supports all aiCheckerboard properties except Filter Strength and Filter Offset.

#

### aiCompare

Compare input values. See more here.

#

### aiComlement

Complement input color. This node works similarly to the reverse node.

Output = 1 - Input

#

### aiCross

Calculate cross product from input vectors.

#

### aiDivide

Divide Input 1 by Input 2.

#

### aiDot

Calculate dot product from input vectors.

#

### aiExp

Calculate natural exponentiation of the Input color.

#

### aiFacingRatio

Calculate facing ratio of the rendered pixel, e.g a dot product between the shading normal and the camera direction. Bias, Gain, Linear, and Invert params are not supported.

#

### aiFlat

Basic shader which works similarly to Surface Shader. It passes input Color value to Out Color as is.

#

### aiFraction

Calculate input's fractional part, for example:

[1.5, 2.25, 3.33] becomes [0.5, 0.25, 0.33]

#

### aiIsFinite

Check if the input value is finite, i.e. is not a floating point infinity.

#

### aiLength

Calculate input vector length.

#

### aiLog

Calculate a logarithm of the Input value in the base of the Base value.

#

### aiMatrixTransform

Apply transformations to texture coordinates using a transformation matrix. This is especially useful for adjusting the position, rotation, and scale of textures without changing the underlying geometry.

#

### aiMax

Calculate the maximum of the two input values.

#

### aiMin

Calculate the minimum of the two input values.

#

### aiMixShader

Mix the two input shaders using the Mix Weight value. For this node both blend and add mix modes are supported. Add Transparency checker is not supported.

#

### aiModulo

Compute Input value modulo Divisor value.

#

### aiMultiply

Multiply two inputs.

#

### aiNegate

Negate input value.

#

### aiNormalize

Normalize input vector.

#

### aiNormalMap

Modify input Normal according to normal map passed as Input parameter and Tangent vector. See more info on how to use this node here.

#

### aiOslShader

Node to create custom OSL shaders.

#

### aiPow

Calculate Base value raised to the power of the Exponent value.

#

### aiRaySwitch

When used in combination with aiSkyDomeLight, this node splits rendering of the camera background and environment lighting. Node tree connected to the Camera input will be used for background while Diffuse Reflection will be used for environment.

This node setup is supported neither in Maya viewport nor in the Arnold renderer. Preview your scene in Verge3D to see how it works.

#

### aiReciprocal

Calculate reciprocal value of the Input value:

Out Color = 1 / Input

#

### aiShadowMatte

In Verge3D this node is used to cut out 3D objects as well as to apply colored semi-transparent shadows over the scene background.

#

### aiSign

Calculate sign of the Input value.

#

### aiSkyDomeLight

Used to create image-based environment lighting. See the Lighting and Rendering section for more info.

#

### aiSqrt

Calculate square root of the input value.

#

### aiSubtract

Subtract Input 2 from Input 1.

#

### aiTrigo

Calculate trigonometric function of the Input value.

#

### aiTriplanar

Texture mapping by simultaneous projection along three different axes.

Node's texture inputs accept only aiImage node.

#

### aiTwoSided

Render Front input on the front side and Back on the back side of the geometry.

#

### aiUserDataColor

Used to render Vertex Colors in Verge3D. Specify the color set name as the Attribute parameter.

You can find that name in Maya's Color Set Editor:

For usage example, check out the Vertex Colors demo (source files available in the Asset Store).

#

### aiUvProjection

Control the placement of textures on 3D models using multiple projection types such as planar, spherical, cylindrical, cubic, etc.

Node's texture inputs accept only aiImage node.

#

## Performance Considerations

Being the only choice for creating nice and realistic renders, Standard Surface (or aiStandardSurface) nevertheless require more computing power from your GPU and slows down app loading. This is especially true for scenes with lots of such materials.

To improve performance you can tweak the Texture Resolution parameter for aiSkyDomeLight.

## Got Questions?

Feel free to ask on the forums!