Materials / Maya
Verge3D for Maya supports the following types of materials:
- Based on Arnold's aiStandardSurface shaders
- StandardSurface (Maya 2020 only)
- Approximated Lambert, Phong, Blinn, StingrayPBS
Arnold aiStandardSurface shaders
This shader comes with Arnold for Maya (MtoA) and can represent many real-world materials (such as metals, plastics, glass, wood etc) by using physically-based shading model.
The following aiStandardSurface settings are supported in Verge3D:
- Weight or (Base input in Hypershade)
- Color or (Base Color input in Hypershade)
- Roughness (Specular Roughness input in Hypershade)
- Weight (Emission input in Hypershade)
- Color (Emission Color input in Hypershade)
- Bump Mapping (Normal Camera input in Hypershade)
In addition, when dealing with Ambient Occlusion, you might also want to use Weight value from the Specular panel to make you Maya viewport look consistent with Verge3D rendering.
Creating PBR material for general use
Follow these steps to configure standard PBR shader which has 3 maps: Base Color, ORM (Occlusion, Roughness, Metalness) and Normal Map:
- Assign aiStandardSurface to your model.
- Open the Hypershade editor, find and select this material in the Browser panel.
- Create a file node with Base Color texture. Make sure that the Color Space setting of this node is set to sRGB.
- Connect Out Color output of this texture to Base Color input of aiStandardSurface node.
- Create a file node with ORM texture. This texture should contain 3 channels with AO (red), Roughness (green) and Metalness (blue) info. Make sure that the Color Space setting of this node is set to Raw.
- Connect R channel of the ORM texture to Base and Specular inputs of the aiStandardSurface node to simulate the ambient occlusion effect.
- Connect G channel of the ORM texture to Specular Roughness input of the aiStandardSurface node.
- Connect B channel of the ORM texture to Metalness input of the aiStandardSurface node.
- Create file and bump2d nodes with Normal Map texture. Make sure that the Color Space setting of the file node is set to Raw and the Use as setting of the bump node is set to Tangent Space Normals.
- Connect file to bump2d node and bump2d node to Normal Camera input of the aiStandardSurface node.
This is how the material should look in the Hypershade editor:
Additional Verge3D Settings
You can tweak your aiStandardSurface materials by using the following settings located on Verge3D panel:
Alpha Mode - select transparency mode: Auto, Opaque, Blend or Mask.
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. Use 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.
Direct Light Occlusion - this parameter controls the influence of the ambient occlusion texture attributed to Directional, Point and Spot lights. According to the glTF standard, ambient occlusion only affects indirect lighting (aka image-based lighting). This parameter, therefore, extends glTF by including explicitly available (“direct”) lights as well. By default, it is set to 1 meaning that AO is consistent with what we see in Maya viewport. If set to 0, it will behave in the old fashion, as glTF standard dictates.
Standard Surface shader was introduced in Maya 2020. It's based on and very similar to aiStandardSurface.
Since it's better supported in Maya Viewport 2.0 and does not require Arnold plug-in to be installed, we recommend it for use when authoring your Verge3D content in Maya 2020 or above.
Lambert, Phong, Blinn, StingrayPBS
These materials will be approximated by PBR shading model during export to Verge3D. Since they are not consistent with Verge3D renderer and have limited functionality, we don't recommend using them in production.
Feel free to ask on the forums!