Configuring the High Quality View

 
 
 

High Quality display mode gives a close approximation of the final rendered image in the viewport, including soft shadows, bump and normal maps, light attenuation, environment, procedural textures, and more.

It works by compiling MetaSL code into CgFX instructions on-the-fly at runtime. It works with all the MetaSL shaders, as well as with many of the standard Softimage shaders for mental ray whose shader definitions have been adapted to support it. If a shader is not supported in High Quality display mode, it is ignored along with any shaders connected into it.

Be aware that there is a limit on the number of instructions that can be compiled and executed. This may limit the complexity of the materials that can be displayed, as well as the number of lights.

Activating High Quality Mode

  1. Make sure that Enable is checked in the High Quality Viewport Options on the General tab of your Display Preferences, and that Shader Profile is set correctly for your graphics card and driver.

  2. Choose High Quality from the Display Mode menu of a viewport.

  3. Use the options on the High Quality tab of the viewport's Camera Display properties to adjust anti-aliasing, dithering, shadows, screen-space ambient occlusion, and depth of field.

Displaying Shadows in High Quality Mode

There are several settings that control shadows in High Quality display mode.

  1. For every light you want to cast shadows, activate Enabled in the Shadows group on the General tab of the Soft Light shader.
  2. Make sure that Enable Shadows is activated on the High Quality tab of the viewport's Camera Display properties, and set Shadow Map Resolution to the desired quality.
  3. For soft shadows, activate Use Shadow Map on the Shadow Map tab of the Light Property Editor property and adjust Softness. Use Viewport Samples to control the quality and Bias to reduce noise.

Displaying the Environment in High Quality Mode

You can use the current render pass' environment for the background and reflections in High Quality display mode.

  1. Make sure that the desired pass is current.

  2. If you haven't already done so, add an Environment shader to the pass's shader stack. See Applying Shaders to Passes.

  3. Activate Environment on the view's Show menu (eye icon), or in its Camera Visibility property.

NoteEnvironment shaders added to an object's material instead of the pass are always used for reflections in High Quality mode.

What Works in High Quality Mode

The following are features are supported in High Quality display mode:

NoteBump maps, normal maps, and anisotropic effects do not appear exactly as in the rendered image because of differences in the way the basis is calculated. The discrepancy may increase with longer chains of connected shaders.

What Doesn't Work in High Quality Mode

The following do not work with High Quality display mode:

The following categories of shaders are not supported:

In addition, only some State Parameter options of the Shading State shaders are supported.

NoteCertain other shaders might not work, depending on the shader profile supported by your graphics card and driver.

Using High Quality Mode with Custom Shaders

To use High Quality mode with your own shaders, or with shaders for other renderers, their shader definitions must include the appropriate MetaSL blocks.

To see how to do this using SPDL files, you can look at the factory shaders for examples.

If you are not using SPDL files, you can use ShaderDef.AddRendererDef( "MetaSL" ) to add a MetaShaderRendererDef, then set its SymbolName, and finally either set its CodePath to the file path of the shader code or set its CodeText directly to the string of MetaSL commands to execute. For more information, see the SDK Guide.

Environment Variables that Control High Quality Display

There are several environment variables that control High Quality display:

See Environment Variables.

Troubleshooting

When displaying complex materials in High Quality mode on Windows, you may encounter issues related to timeout detection and recovery. This can lead to crashes or freezing. To address this, you can modify the Windows registry as described in Timeout Detection and Recovery of GPUs through WDDM. You can change TdrLevel to 0 to disable the timeouts, or set TdrDelay to a value higher than the default 2. You might need to add the keys if they do not exist already.