Verge3D for 3ds Max: Lighting and Rendering — Soft8Soft
Description: This page contains the information about 3ds Max' Lighting and rendering settings supported in Verge3D.

# Lighting and Rendering / 3ds Max

This page contains the information about 3ds Max' lighting and rendering settings which can be used with Verge3D.

- Renderers
- Environment Lighting
- Lights
  - Photometric Lights
  - Standard Lights
- Reflection Cubemap Light Probes
- Reflection Plane Light Probes
- Global Rendering Settings
  - Common Tab
  - Shadows Tab
  - Animation Tab
  - AO Tab
  - Outlining Tab
- Ambient Occlusion
- Outline Rendering
- Exposure Control
- Per-Object Rendering Settings
- Rendering on HiDPI (aka Retina) Screens
- Visibility Breakpoints
- Line Rendering
- Clipping Planes

#

## Renderers

Verge3D supports three renderers provided by 3ds Max: Scanline, ART, and Arnold (recommended). The Scanline renderer is intended for use with Standard lights and materials, while the ART/Arnold is typically used with Photometric lights and Physical materials.

Choosing the right renderer is the first thing you should consider before starting to work with graphics. If you are not sure which renderer to choose, we recommend using Arnold. In order to set the renderer in 3ds Max, use the "Render Setup..." window.

#

## Environment Lighting

Environment lighting is a very important component of Verge3D graphics pipeline based on Physical materials. You may illuminate your scene with an environment map alone, without using any light objects (as in the Scooter demo).

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 as shown in this video.

#

## Lights

If you'd like to have dynamic shadows in your scene, or if you need to move the source of light (as with car lights), you may utilize light objects.

Verge3D supports two types of lights provided by 3ds Max: standard and photometric.

#

### Photometric Lights

Photometric lights are typically used with Physical materials. Verge3D reproduces them by using 3ds Max' Arnold renderer as reference. In addition, you may use Physical Camera Exposure Control settings to tweak the brightness and color range of your renderings.

#

### Standard Lights

Standard lights are typically used with Standard materials. Verge3D reproduces them by using 3ds Max' Scanline renderer as reference.

#

## 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 Light Probe demo (source files available in the Asset Store).

The object can be found in the Create panel → Helpers category → Verge3D subcategory:

A reflection cubemap 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 specified in Max's environment settings. Local reflection maps also have a parallax effect depending on the geometry of the influence or parallax volume.

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

Reflection Cubemap objects have the following parameters:

General
  General 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.
  Influence Distance
    The size of the influence volume. You can also change object scaling and make the shape of the influence volume non-uniform.
  Intensity
    The intensity of the indirect lighting. Any value different from 1.0 is not physically correct.
  Clipping Start
    Near clip distance. Objects located closer than this value won't be rendered into the reflection cubemap.
  Clipping End
    Far clip distance. Objects located further than this value won't be rendered into the reflection cubemap.
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 the empty string option ("") 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 probe if Selection Set is specified.
Custom Parallax
  Parallax settings:
  Enable 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.
  Parallax Type
    Type of the parallax volume: Sphere or Box.
  Parallax Distance
    The size of the parallax volume.
Custom Influence
  custom influence settings:
  Enable 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. Influence Selection Set (if specified) will be used instead of the Influence Type and Influence Distance general probe settings.
  Influence 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 Influence 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 planes are used to render the floor reflections in the Load Unload demo.

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

Verge3D plugin adds a custom light probe object called V3DReflectionPlane. The object can be found in the Create panel → Helpers category → Verge3D subcategory:

Reflection plane objects have the following parameters:

Length
  Reflection plane length.
Width
  Reflection plane width.
Influence Dist.
  Influence distance of the probe.
Falloff
  Controls how fast the probe influence decreases.
Clip Offset
  Near camera clipping for objects rendered in the light probe.
Visibility Selection Set
  Selection set of the objects visible for the probe.

### Performance Considerations

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 by means of the Visibility Selection Set property.

#

## Global Rendering Settings

Global rendering settings accessible from the Verge3D Export Settings dialog window (Verge3D → Export Settings... in 3ds Max menu).

#

### Common Tab

Scene Copyright
  Assign if you want your copyright info to be present in all exported files.
Bake Text
  Whether to export Font objects as is or bake them to geometry meshes. Read more about these two modes in the Text Rendering section of this manual.
Enable LZMA Compression
  Enable LZMA compression for exported glTF files. Check out the Asset Compression section for more info.
Compress Textures
  Store exported textures in KTX2 compression format.
Anti-Aliasing
  Select what anti-aliasing algorithm to use for the scene:
  Auto
    Use system default method. In most cases this would be MSAA 4x.
  MSAA 4x
    Prefer multisample anti-aliasing with 4x samples if the target hardware supports it. Provides decent quality and performance.
  MSAA 8x
    Prefer multisample anti-aliasing with 8x samples if the target hardware supports it. This algorithm provides better AA quality at the expense of reduced performance.
  MSAA 16x
    Prefer multisample anti-aliasing with 16x samples if the target hardware supports it. This algorithm provides way better AA quality compared to MSAA 4x/8x but has the worst performance.
  FXAA
    Force fast approximate anti-aliasing (FXAA). Enable this algorithm if you experience aliasing issues with procedural textures.
  None
    Disable anti-aliasing. Use this option as an aggressive performance optimization when quality does not matter.
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.

Environment Map Size
  Texture size to use for environment lighting:
  256
    Optimum quality with low memory consumption (default value).
  512
    Better quality with moderate memory consumption and reduced performance. Use it to render high quality reflections e.g for rendering jewelry.
  1024
    Best quality with high memory consumption and low performance (generally not recommended).
IBL Environment Mode

  Algorithm to use for image-based environment lighting.

  PMREM (best)
    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 (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 Standard or Lambert shaders).
  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.
Optimize Mesh Attrs
  Remove unused geometry attributes (such as tangents) from exported meshes.

#

### Shadows Tab

Global shadow settings. Read more about these in the corresponding section.

#

### Animation Tab

Global animation settings. See here for the explanation.

#

### AO Tab

Ambient occlusion settings. See below.

#

### Outlining Tab

Outline effect settings. See below.

#

## 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 Verge3D → Export Settings... in 3ds Max menu):

Verge3D adds the ambient occlusion effect only for Physical Material nodes and only if the scene has environment lighting (either as a color or a map).

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.

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

#

## 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.

Outline effect used to highlight selections in the Industrial Robot demo.

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

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.

#

## Exposure Control

Verge3D for 3ds Max supports the following exposure control algorithms:

- Physical Camera Exposure Control
- Logarithmic Exposure Control

See the Autodesk's official documentation for more information on how to configure exposure controls for your scene.

#

## Per-Object Rendering Settings

Verge3D supports the following additional rendering properties for your objects:

### Verge3D Rendering Params panel

Rendering 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.

### Verge3D Adv. Rendering Params panel

Fit to Camera Edge
  See here for more info.
Visibility Breakpoints
  Enable object visibility breakpoints. See here.
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.

#

## Rendering on HiDPI (aka 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:

- Using somewhat better resolution, e.g by setting screen scaling factor to `1.5` or so. See here for more info.
- Using HiDPI rendering only for important content, such as text, screen-space UI elements, etc.

The latter approach can be easily achieved by enabling the HiDPI Compositing property located on the Verge3D Adv. Rendering Params panel:

HiDPI compositing is used to display the UI controls and text in the E-learning demo.

However, rendering HiDPI content in a separate pass has some limitations:

- You can't apply any post-processing effects to the objects rendered in HiDPI pass.
- Objects are not affected by the depth of the objects rendered before them. This may produce artifacts like on the screenshot below (green — regular object, blue — HiDPI object, but in reality the green one is nearest to the viewer):

This basically means that the HiDPI Compositing should be used primarily for UI elements or camera-parented objects.

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

#

## 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 Verge3D Adv. Rendering Params panel:

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 3ds Max 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.

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

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 Lines demo (source files available in the Asset Store).

#

## 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.

Clipping planes used to show the internals of a meat grinder.

To add a new clipping plane, use the Create → Helpers → Verge3D → ClippingPlane button in 3ds Max:

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

Clipping planes have the following parameters:

Affected Objects
  Selection 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.
Cross-Section Color
  Cross-section diffuse color and opacity.
Render Side
  Cross-section render side. Specify Double-sided to render complex geometry with cuts and holes.
Cross-Sect. Size
  Cross-section plane size. Increase this value if you use larger scene size.

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

## Got Questions?

Feel free to ask on the forums!