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
Make sure that is checked in the on the General tab of your Display Preferences, and that is set correctly for your graphics card and driver.
Choose from the Display Mode menu of a viewport.
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.
- For every light you want to cast shadows, activate in the Shadows group on the General tab of the Soft Light shader.
- Make sure that is activated on the High Quality tab of the viewport's Camera Display properties, and set to the desired quality.
- For soft shadows, activate on the Shadow Map tab of the Light Property Editor property and adjust . Use Viewport to control the quality and 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.
Make sure that the desired pass is current.
If you haven't already done so, add an Environment shader to the pass's shader stack. See Applying Shaders to Passes.
Activate 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:
- Multiple lights, including infinite, point, and spot lights with attenuation.
- Anti-aliasing. This can be controlled on the High Quality tab of viewports' Camera Display properties.
- Shadow maps. These can be controlled on the High Quality tab of viewports' Camera Display properties. For soft shadows, there are separate and settings in the group on the Shadow Map of the Light Property Editor.
- Screen-space ambient occlusion. This can be controlled on the High Quality tab of viewports' Camera Display properties.
- Depth of field. This can be controlled on the High Quality tab of viewports' Camera Display properties.
- Environment effects, including glossy reflections.
- Multiple blended textures.
- Bump and normal maps.
- Multiple texture projections.
- Texture layers.
- Weight maps, vertex colors, and other maps and attributes using lookup shaders.
- Backface culling.
- Two-sided lighting.
- Shader compounds.
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:
- Any raytraced effect, such as self-reflection.
- Area lights.
- Inclusive and exclusive lights.
- Depth cue/fog
- NURBS surface objects.
- Particle blob and capsule shapes. These are rendered as spheres.
- Framebuffers. You can render only the main channel when using High Quality mode with the hardware renderer.
- Rendermap and Ultimapper.
The following categories of shaders are not supported:
- Any shader labelled "mi*", for example "misss" or "mip".
- Light (except Soft Light).
- Data/Render Channel
- Texture Generators.
- Texture Space Generators.
- Texture Space Controllers.
- mental ray.
- SSS Compounds.
In addition, only some 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:
- XSI_DISABLE_HIGH_QUALITY_VIEWPORT_PASSES completely disables High Quality display mode.
- The following environment variables clamp the maximum number of samples used for various effects:
See Environment Variables.
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.