Aller au contenu

Graphics configuration

At initialization, a GraphicsLevel can be set in the ViewerOptions. These levels are performance profiles going from low to high: low provides the best performance and high the best graphical quality. The Auto level tries to select the best level for the detected platform.

The results of the graphics selection process can be retrieved using the GetConfiguration method of ViewerService, which also returns information about the available features and the graphics settings used by the engine. Information about the plaform detection is also displayed in the logs during the initialization.

Level–feature matrix

Feature Low Medium High
Shadows
Simulated atmosphere
High-quality UI1

Additionally, the quality of raster and flat overlays layers are affected by the graphics level.

Level auto-selection rules

These are the rules applied when auto-selecting a graphics level, from highest to lowest priority. An empty cell means “any value”.

OS Runtime GPU Selected level
Android - - Low
iOS - - Low
- Web2 Intel [HD] Graphics Low
- - Intel Arc High
- - Nvidia High
- - AMD Radeon HD/RX (discrete) High
- - - Medium

Low video memory situations

When the quantity of video memory is low (as set by max_video_memory_size in ViewerOptions), certain layers or effects can be degraded automatically, regardless of the graphics level.

They comprise:

  • Raster layers,
  • Flat overlays,
  • Shadows.

The quality is degraded if the available video memory is below 800 MiB, and further degraded if it is below 600 MiB. The settings affected by this degradation process can also be retrieved with the GetConfiguration method of ViewerService.

Overriding graphics settings

ViewerOptions has a graphics_settings_overrides property, which allows to force the use of a specific value for any of the settings affected by the graphics level. Doing so requires caution as they can drastically affect the quality and performance of the rendering: changing the graphics level used by the engine should be sufficient in most cases.


  1. This enables high-quality transparency for UI elements such as gizmos and grids. ↩︎

  2. Any browser ↩︎