Transparency / Maya
Here we show how to enable transparency for Standard Surface, Lambert, and glTF-compliant PBR materials in Maya.
For usage example, check out the following demo from the Asset Store: Transparency.
- Blended vs Masked
- Additive Compositing (aka Additive Blending)
- Order-Independent Transparency (OIT)
- Transparency for Standard Surface Materials
- Transparency for glTF-compliant PBR Materials
Blended vs Masked
Being a real-time 3D engine, Verge3D offers two main methods to handle transparent objects: alpha blending and alpha clipping (usually with an image mask). Blending enables combining a translucent foreground color with a background color, using the foreground color's alpha as blending factor. Clipping, on the other hand, simply discards all pixels with alpha less than some predefined threshold (always equal to 0.5 in Verge3D for Maya).
Blending enables for smooth transitions, generally looks nicer but computationally more expensive than clipping. It may also produce z-sorting artifacts when polygons appear to be rendered in wrong order. Clipping works best for visualizing numerous small objects (such as grass or tree leaves). It also produces hard edges without any transitions which may be aliased.
Use Alpha Mode dropdown in the material settings to choose between blending and masking:
There is also variation of the Mask mode called Coverage. It uses MSAA rendering to improve the quality of alpha clipping.
Additive Compositing (aka Additive Blending)
Verge3D also offers a special method for rendering transparent surfaces called additive compositing. By blending in additive manner and excluding polygons from pixel depth comparison you can get rid of transparency artifacts.
To enable this mode select Add in the Alpha Mode dropdown and uncheck the Depth Write option in material settings to enable this mode. In addition, you'll need to increase the Rendering Order value in object settings to make your transparent object rendered above all.
Order-Independent Transparency (OIT)
Verge3D allows the use of an approximate order-independent transparency technique, which do not require rendering geometry in sorted order, so it solves most transparency issues without any of the above considerations.
OIT can be enabled though the Verge3D Settings panel.
- OIT is only compatible with WebGL 2, otherwise it has no effect.
- OIT is ignored by Reflection Cubemap Light Probes and Reflection Plane Light Probes.
- May not work well with high opacity objects.
- Should not be used together with MSAA (multisample anti-aliasing) in scenes with 2 or more opaque objects. Instead you can use FXAA (fast approximate anti-aliasing) which is fully compatible with OIT.
Transparency for Standard Surface Materials
Transparency of Standard Surface (or aiStandardSurface) materials can be tweaked using the following material settings:
- Transmission Weight
- Transmission factor of thin-walled and refractive materials.
- Transmission Color
- Color of refractive (Thin Walled off) material.
- Thin Walled
- Use generic thin-walled or refraction-based transparency.
- Opacity factor for thin-walled materials.
- Alpha Mode
- Material transparency mode.
- Depth Write
- Disable for additive transparency composing (see above).
By default in Maya, the Thin Walled parameter is unchecked, which disables the most typical transparency rendering you expected to see in your interactive app. Always keep an eye on this setting when you're dealing with the transparent Standard Surface materials.
Transparency for glTF-compliant PBR Materials
In order to enable transparency for such materials, one should bake transparency map as 4 (alpha) component of the base color texture and connect Alpha output of that texture to the Opacity input of the Standard Surface material.
When no base color texture available, simply use unconnected Opacity parameter.
Use the Alpha Mode dropdown to choose between the supported transparency modes: Auto, Opaque, Blend, or Mask.
Feel free to ask on the forums!