Multi-Layer

Introduction

Multi-Layer is a feature that leverages the Wave Multi-Layer Rendering Architecture to display textures on layers other than the eye buffer that Unreal Engine renders to.

Textures displayed using Multi-Layer have better visual quality. This is because the texture is sampled directly from the source texture when performing Asynchronous TimeWarp (ATW), instead of rendering it to the eye buffer first, and then performing ATW.

We recommend using Multi-Layer to display textures of the main subjects in a scene, such as video and text, as it will provide a better user experience.

How to use

To use Multi-Layer in your project, add a Stereo Layer Component onto an Actor in your level and configure the parameters.

For more information, check the Stereo Layers Documentation by Unreal Engine and the Supported Stereo Layer Component Properties section to see which Stereo Layer Properties are currently supported.

Note

Not all devices support Multi-Layers (e.g. VIVE Focus or VIVE Focus Plus do not support this feature).
For devices that do not support Multi-Layers, the behavior of the Stereo Layer Component will fall back to that of the DefaultStereoLayers class provided by Unreal Engine and may be unpredictable.

Supported Stereo Layer Component Properties

This section lists which properties are supported/not supported by Multi-Layer.

Live Texture: Updates the texture content of the Multi-Layer every frame if selected. For static texture content, disable this option for better performance.

Supports Depth: Only supported on UE4.26/27. Enabling this option will allow in-game objects to occlude the StereoLayer.

Note

Enabling the Supports Depth option will introduce a performance overhead since additional resources are needed for a special blending operation in order to make the Underlay visible.

Note

Known Issue: Placing translucent objects in front of a StereoLayer that supports depth will result in abnormal alpha blending results.

No Alpha Channel: Not supported.

Texture: Assign the source texture here.

Quad Preserve Texture Ratio: Not supported.

Quad Size: Specify the width(X) and height(Y) of a Quad Layer.

UVRect: The UV coordinates of the texture to be mapped to the layer.

Stereo Layer Type: Only World and Face Locked Layer types are supported.

Stereo Layer Shape: Only Quad and Cylinder Layer shapes are supported.

Radius (Cylinder Layer): The radius of the full cylinder formed if the curved surface wraps around in a full circle.

Overlay Arc (Cylinder Layer): The arc length of the curved surface.

Height (Cylinder Layer): The height of the cylinder layer.

Priority: The render priority of the layer. Layers with higher priority will be rendered on top of layers with lower priority.

Note

Using properties that are not supported may result in unpredictable behavior.

Samples

Samples related to StereoLayers can be found under Content/VRTestApp/StereoLayer_Test.

StereoLayer_Test: Demonstrates how to setup StereoLayers with static texture content in a Level. StereoLayer_TestWidget: Demonstrates how to transform UMG Widgets to StereoLayers with live texture content in a Level.