The Viro Developer Hub

Welcome to the Viro developer hub. You'll find comprehensive guides and sample code to help you start working with Viro as quickly as possible, as well as support if you get stuck. Let's jump right in!

Get Started

Renderer Configuration

Enabling and disabling rendering features

Viro employs a number of different rendering methods and algorithms. These methods sometimes come at a performance cost, so it's useful to be able to disable specific features. This guide explains what those features are, and how to disable them.

Configuration Methods

The Renderer Configuration class should be used to enable or disable features at launch time for a client. The ViroView is used to enable or disable features at runtime.

Launch time disabling of features may be particularly useful if you're experiencing compatibility problems on specific devices, due to legacy GPUs or low memory architectures. Viro will not allocate memory or GPU resources for features that are disabled on launch.

Disabling features for specific devices is also useful for supporting older devices without having to compromise quality on higher-end devices. For example, you can use RendererConfiguration to enable HDR on newer devices while disabling it on older devices, ensuring even the older devices maintain a high frame-rate.

Configurable Settings

The following renderer settings can be enabled or disabled:

Bloom

Bloom adds a soft glow to bright areas in scene, simulating the way bright highlights appear to the human eye. This requires the use of multiple render targets, and is fill-rate intensive. Disabling bloom will improve performance on low-end devices. For more information on Bloom, see the Lighting and Materials guide.

Dynamic Shadows

Dynamic shadows provide a visual cues about depth in the scene, and in AR give hints as to what real-world surface virtual objects are resting on. Unfortunately, shadows do come at a performance cost, as they require rendering the scene to a shadow map, then referencing this shadow map during the core render cycle. Disabling shadows will improve performance on low-end devices.

HDR

When HDR rendering is enabled, Viro uses a deeper color space and renders the scene to a floating point texture, allowing the preservation of details that may be lost due to limiting contrast ratios. A tone-mapping algorithm is applied after the render to preserve fine details in both bright and dark regions of the scene. If HDR is disabled, then features like Bloom and PBR will not work as well. HDR comes at a performance cost, so disabling it will improve performance on low-end devices.

PBR

Physically based rendering, or PBR, produces more realistic lighting results for your scenes by incorporating an advanced model of real-world lights and materials. PBR produces better results than traditional shading, and improves artist workflow with a more intuitive set of material properties. PBR does, however, rely on advanced GPU algorithms, and comes at a performance cost, so disabling it will improve performance on low-end devices.

Renderer Configuration


Enabling and disabling rendering features

Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.