Lighting and Rendering / Maya

This page contains the information about lighting, rendering and background settings which can be used with Verge3D for Maya.

Renderers

Verge3D is designed to represent Maya's Viewport 2.0 hardware renderer as closely as possible. It supports physically-based shading, lights, shadows and image-based lighting (IBL).

Environment Lighting

Environment lighting is a very important component of Verge3D graphics pipeline. You can illuminate your entire scene with just an environment map alone, without using any light objects. See the Scooter as an example of this approach.

The default cube template provides an HDR texture for image-based lighting. You can replace this texture with your own file, or setup environment lighting from scratch. To do so, simply append Arnold's aiSkyDomeLight object to your scene and assign some texture to it as Color.

Using Maya's aiSkyDomeLight object

In addition, you may use the Intensity attribute to tweak intensity of your environment lighting and Texture Resolution to configure its quality:

When using HDR texture for your skydome, make sure you set the Color Space setting to Raw:

Setting color space for aiSkyDomeLight

You can also aiSkyDomeLight without any texture to simulate light coming evenly from all directions. However, it's much more efficient to use Ambient Lights for that.

Lights

In some cases, using just image-based lighting to illuminate your scene is not enough. If you'd like to simulate some additional light source, need dynamic shadows, or if you need to move your lights (as with car lights), you may use direct light sources.

Verge3D supports the following light types:

In addition, you can assign Depth Map Shadow Attributes on Directional, Point and Spot lights. See here for more info.

Reflection Cubemap Light Probes

Verge3D add-on adds a custom light probe object called v3dReflectionCubemap, which can be used to apply indirect lighting to objects via a local reflection cubemap.

For usage example, check out the following demo from the Asset Store: Light Probe.

The new light probe object can be found inside the custom Verge3D shelf:

Creating reflection cubemap light probe in Maya

This object defines a volume of influence represented by a box or a sphere. All objects contained inside that volume will use a local reflection cubemap generated in runtime instead of the scene's global environment texture/color.

The advantage of using a local reflection map is that it has surrounding objects baked in it, while the scene's global map only contains the background texture/color that can be specified via Arnold's aiSkyDomeLight object. Local reflection maps also have a parallax effect depending on the geometry of the influence or parallax volume.

Reflection cubemap in Maya viewport and Verge3D
Left - reflection cubemap object in Maya viewport, right - effect it adds to a reflective material in Verge3D.

v3dReflectionCubemap objects have the following parameters:

Reflection cubemap params
General Settings
General light probe settings:
Influence Type
Type of the influence volume: Sphere or Box. Only objects located inside this volume are affected by the probe's lighting. Default is Sphere.
Influence Distance
The size of the influence volume. You can also change object scaling and make the shape of the influence volume non-uniform. Default is 1.0.
Intensity
The intensity of the indirect lighting. Any value different from 1.0 is not physically correct. Default is 1.0.
Clipping Start
Near clip distance. Objects located closer than this value won't be rendered into the reflection cubemap. Default is 0.1.
Clipping End
Far clip distance. Objects located further than this value won't be rendered into the reflection cubemap. Default is 100.0.
Visibility Selection Set
Object visibility settings:
Selection Set
Limit objects that should appear on the reflection cubemap to those belonging to this selection set. Choose empty in order to not specify any set of objects - that way all scene objects will be used for generating the reflection cubemap.
Invert Visibility
Invert the selection of objects visible to this light probe if Selection Set is specified. Disabled by default.
Custom Parallax
Parallax settings:
Use Custom Parallax
Enable custom settings for the parallax correction. This group of settings defines a parallax volume, which is used to project the lighting captured by the probe. If Custom Parallax is not enabled the parallax effect is calculated based on Influence Type and Influence Distance. Disabled by default.
Parallax Type
Type of the parallax volume: Sphere or Box. Default is Sphere
Parallax Distance
The size of the parallax volume. Default is 1.0.
Custom Influence
Custom influence settings:
Use Custom Influence
Enable custom influence settings. This group of settings allows defining a selection set of objects that will be affected by this light probe. Selection Set (if specified) will be used instead of the Influence Type and Influence Distance general probe settings.
Selection Set
Limit objects that should be affected by this light probe to this selection set. If specified it is used instead of the Influence Type and Influence Distance general probe settings.
Invert Influence
Invert the selection of objects affected by this probe if Selection Set is specified.

Reflection Plane Light Probes

Reflection Plane Light Probes used to apply real-time reflections (indirect lighting) to planar objects, such as mirrors, floors, walls, etc.

Reflection plane example

For usage example, check out the following demo from the Asset Store: Light Probe.

The new light probe object can be found inside the custom Verge3D shelf:

Creating reflection plane object in Maya

Reflection plane objects have the following parameters:

Reflection plane params panel
Influence Distance
Influence distance of the probe.
Falloff
Controls how fast the probe influence decreases.
Clipping Offset
Near camera clipping for objects rendered in the light probe.
Selection Set
Selection set of the objects visible for the probe. Specify empty value to make all scene objects visible for the probe.
Invert Visibility
Invert the selection of objects visible to this light probe if Selection Set is specified. Disabled by default.

Reflection plane light probes can only act on surfaces with zero roughness and maximum metalness:

Specifying maximum metalness for reflective surfaces in Maya

Planar reflection probes can greatly reduce performance of your scene, since they multiply the number of draw calls by a factor N+1. To make rendering faster, specify a limited set of reflected objects as the Visibility Selection Set property.

Background

By default Verge3D renders the same background you see in Maya's Viewport (grey in most cases). When using image-based lighting (provided by aiSkyDomeLight objects) you see the environment texture instead.

To change your background to some other color, do not edit Viewport settings in Maya, simply assign Background Color and enable the Render Background attribute on your main camera:

Render background feature in Maya

You can use Maya's Render View window or Verge3D's Sneak Peek feature to preview the scene with custom background.

Global Rendering Settings

Global rendering settings accessible from the Verge3D Export Settings dialog window (Verge3DExport Settings... in Maya menu).

Verge3D Export Settings window in Maya
Anti-Aliasing
Select what anti-aliasing algorithm to use for the scene:
Auto
use system default method.
MSAA 4x
prefer multisample anti-aliasing with 4x samples if the target hardware supports it.
MSAA 8x
prefer multisample anti-aliasing with 8x samples if the target hardware supports it.
MSAA 16x
prefer multisample anti-aliasing with 16x samples if the target hardware supports it.
FXAA
force fast approximate anti-aliasing (FXAA).
None
disable anti-aliasing.
Use HDR Rendering

Enable high-dynamic-range rendering.

If activated, Verge3D will use 16-bit float textures as rendering buffers. This feature can significantly improve rendering of the Bloom post-processing as well as smoothness of node-based gradient textures. The downside of this — increased GPU memory consumption and reduced performance.

This feature is not related to HDR textures which are commonly used to produce image-based lighting, thus activating it won't improve rendering of such textures.

Order-Indep. Transparency

Enable Order-Independent Transparency (OIT) rendering technique, which solves most transparency issues. Read more about this here.

IBL Environment Mode
PMREM (slow)
Use prefiltered, mipmapped radiance environment maps (PMREMs). This property is selected by default because it offers the highest quality and decent performance at the same time.
Light Probe + Cubemap (deprecated)
This mode was deprecated in Verge3D 4.3. Specifying it will make your scene fallback to PMREM lighting.
Light Probe (fast)
Disable image-based specular reflections altogether, still the diffuse component will be applied. This mode is fast but provides decent quality for non-metallic surfaces only (e.g. rendered with Lambert shader).
None (fastest)
Disable image-based lighting for both specular and diffuse reflections. This is the fastest mode among all. It is perfect if you use shadeless (emissive) surfaces or rely solely on light sources to shade your scene.

Ambient Occlusion

Ambient Occlusion is a rendering technique that improves a scene's realism by adding soft shadows from indirect (ambient) lighting based on how much the point is exposed to the light sources.

Verge3D implements Ground Truth Ambient Occlusion (GTAO), which settings you can find in the AO section of Verge3D Export Settings (accessible through Verge3DExport Settings... in Maya menu):

Ambient occlusion settings tab in Maya

Verge3D adds the ambient occlusion effect only for Standard Sufrace and aiStandardSufrace materials and only if the scene has environment lighting (via Arnold's aiSkyDomeLight object).

Enabled
Enable Ambient Occlusion in the scene.
Distance
The radius (in system units) within which to calculate ambient occlusion. Higher values make the effect more noticeable by over-darkening and expanding the area of it, but also can decrease performance. Lower values make occlusion less noticeable.
Factor
The strength of the occlusion effect.
Trace Precision
Higher precision means more accurate occlusion at increased performance cost. Lower precision means better performance but the effect appears less prominent.
Bent Normals
Use modified (or "bent") normals to sample the environment instead of the original ones. The modified normals represent the least occluded direction and make environment lighting a bit more realistic.

Outline Rendering

Outline rendering (aka silhouette edge rendering) is a common non-photorealistic rendering (NPR) technique that can significantly enhance the visual perception of your scene. This effect can be used for various applications such as e-learning, games, architecture visualization, and technical drawing.

Example of a scene with outline rendering

To use object outlining (and optional glowing) in your Verge3D application, first enable the effect in the Verge3D Exports Settings:

Outline settings tab in Maya

then use the outline puzzle to apply it to your object(s).

The outline rendering does not work inside AR/VR sessions. Use other methods to highlight your objects, such as animation or changing material's color.

You can tweak outlining using the following properties:

Enabled
Enable/disable the effect.
Edge Strength
Outlining strength factor.
Edge Glow
Intensity of additional glowing (rendered beyond the main outline edge).
Edge Thickness
Outline edge thickness factor.
Pulse Period
Pulse period in seconds. Specify to make the effect animated.
Visible Edge Color
Visible edge color.
Hidden Edge Color
Color of the outline edge being rendered behind any other scene objects.
Render Hidden Edge
Enable/disable rendering of the outline edge behind other scene objects.

Though it's possible to render glowing objects, in the most cases the outline rendering is used to improve visual clarity of your scene. If you need glowing from lamps or another bright objects, consider using the bloom post-processing instead.

Per-Object Rendering Settings

Verge3D supports the following additional rendering settings for your geometry objects:

Per-object rendering settings in Maya
Render Order
Modifies the rendering order for a particular object. The smaller the index, the earlier the object will be rendered. In most cases, you need to tweak this value when using Blend transparency to eliminate transparency artifacts.
Frustum Culling
Enables/disables frustum culling optimization for the object. Uncheck this option if you have some skinned object which can move beyond the screen space to prevent it from being culled.

In addition, there is a set of object transform settings located on the Verge3DAdvanced Rendering panel:

Advanced rendering settings panel
HiDPI Compositing
Render object using HiDPI compositing pass. See below for more info.
Fix Ortho Zoom
Apply inverse orthographic camera zoom as scaling factor for this object. Enable this property for object parented to ortho camera, so they don't move/scale when the user zooms the camera.
Fit to Camera Edge
See here for more info.
Visibility Breakpoints
Enable object visibility breakpoints. See here.

Rendering on HiDPI (Retina) Screens

As of today, most mobile and many desktop screens have high pixel density (so called "Retina" displays). These displays allow you to substantially increase quality of your renderings. The downside of rendering many pixels is reduced performance.

There are two approaches how to make your content look better and do not make your scenes really slow:

The latter approach can be easily achieved by enabling the HiDPI Compositing property located on the Advanced Rendering panel:

HiDPI compositing setting in Maya

For usage example, check out the following demo from the Asset Store: Ring.

Visibility Breakpoints

Visibility Breakpoints allow you to show/hide content depending on 3D viewport width/height or orientation settings. The most important use case of this feature — adapting your scene to different screen sizes and orientations. E.g you may have two different models for portrait and landscape screen orientations.

If assigned to the current camera, tries to switch to an alternative camera (must have acceptable visibility breakpoints) in the scene, if no alternative camera is found, does nothing.

You can configure the breakpoints on the Advanced Rendering panel:

Visibility breakpoint feature in Maya
Min Width
Minimum canvas width the object stays visible.
Max Width
Maximum canvas width the object stays visible.
Min Height
Minimum canvas height the object stays visible.
Max Height
Maximum canvas height the object stays visible.
Orientation
Screen orientation the object stays visible.

Line Rendering

With this feature you can render Maya objects by using lines. The most common use case of Line Rendering is drawing curve objects, which do not have any geometry on their own. However, you can also apply this technique to regular meshes and surfaces:

Object wireframes displayed with the line rendering feature
Object wireframes displayed with the line rendering feature.

Line Rendering is activated in Verge3D Settings located on the Object Data Properties panel:

Line rendering properties in Maya

Here you can also assign color and width of the rendered lines. In Verge3D lines are rendered with the Emission shader.

For usage example, check out the following demo from the Asset Store: Lines.

Clipping Planes

Clipping planes (aka section planes, cross-section planes, mesh sections) is a technique used to show internal arrangement of complex objects, such as buildings, cars, appliances, gadgets, machines etc.

Example of a scene with clipping planes
Example of a scene with clipping planes.

To add a new clipping plane, use the Verge3DClipping Plane button located on the Maya tool shelf:

Creating a clipping plane object in Maya

The objects on your scene will be clipped in the negative Y direction of the clipping plane object.

Clipping planes have the following parameters:

Affected Objects
Set of the objects clipped by the plane. If empty, all scene objects will be clipped.
Negated
Swap clipped and unclipped sides.
Clip Shadows
Clip shadows cast from the clipped objects.
Union Planes
Construct a union from all the clipping planes, affecting the object, not their intersection.
Cross-Section
Fill cross-section between the clipping plane and the affected objects.
Color
Cross-section diffuse color and opacity.
Render Side
Cross-section render side. Specify Double-sided to render complex geometry with cuts and holes.
Size
Cross-section plane size. Increase this value if you use larger scene size.

For usage example, check out the following demo from the Asset Store: Clipping Planes.

Got Questions?

Feel free to ask on the forums!