Feature Summary
Refer to Supported Extensions about all features supported in VIVE OpenXR Plugin.
API Reference
Please visit [Unity] VIVE OpenXR - API Reference.
Rendering
Composition Layer: This extension adds an additional layer type where the XR runtime must map a texture stemming from a swapchain onto the inside of a cylinder section. It can be imagined much the same way a curved television display looks to a viewer. This is not a projection type of layer but rather an object-in-world type of layer.
PassThrough: This extension enables an application to show the passthrough image to see the surrounding environment from the VR headset. The application is allowed to configure the passthrough image with the different appearances according to the demand of the application.
The passthrough configurations that runtime provides to applications contain:
- Decide the passthrough layer shown over or under the frame submitted by the application.
- Specify the passthrough form with full of the entire screen or projection onto the mesh specified by the application.
- Set the alpha blending level for the composition of the passthrough layer.
Foveation: This extension enables an application to gain rendering performance improvement by reducing the pixel density of areas in the peripheral vision. The areas near the focal point still sustains the original pixel density than periphery.
Display Refresh Rate: On platforms which support dynamically adjusting the display refresh rate, application developers may request a specific display refresh rate in order to improve the overall user experience, examples include:
- A video application may choose a display refresh rate which better matches the video content playback rate in order to achieve smoother video frames.
- An application which can support a higher frame rate may choose to render at the higher rate to improve the overall perceptual quality, for example, lower latency and less flicker.
This extension allows:
- An application to identify what display refresh rates the session supports and the current display refresh rate.
- An application to request a display refresh rate to indicate its preference to the runtime.
- An application to receive notification of changes to the display refresh rate which are delivered via events.
Mixed Reality
Scene Understanding: Provides applications with a structured, high-level representation of the planes, meshes, and objects in the user’s environment, enabling the development of spatially-aware applications.
The application requests computation of a scene, receiving the list of scene components observed in the environment around the user. These scene components contain information such as:
- The type of the discovered objects (wall, floor, ceiling, or other surface type).
- The planes and their bounds that represent the object.
- The visual and collider triangle meshes that represent the object.
The application can use this information to reason about the structure and location of the environment, to place holograms on surfaces, or render clues for grounding objects.
Plane Detection: This extension enables applications to detect planes in the scene.
Anchor (beta): This extension allows an application to create a non-persistent spatial anchor to track a point in the physical environment. The runtime adjusts the pose of the anchor over time to align it with the real world.
Interaction
VIVE OpenXR Plugin offers various player tracking methods, enabling developers to design interactive VR experiences based on the tracking data.
- Controller: Includes VIVE Focus3 / XR Elite Controller and VIVE Cosmos Controller.
- Hand: Includes Hand Tracking and Hand Interaction.
- Eye: Eye Gaze.
- Face: Facial Tracking.
- Tracker: Includes VIVE Wrist Tracker and VIVE XR Tracker (beta).
Power Consumption
Enabling the following features, currently under development with the VIVE OpenXR Plugin, will increase power consumption.
- Hand: Includes Hand Tracking and Hand Interaction.
- Eye: Eye Gaze.
- Face: Facial Tracking.
- Tracker: Includes VIVE Wrist Tracker and VIVE XR Tracker (beta).
- Mixed Reality: Includes Plane Detection and Anchor (beta).
GPU Performance and Quality
Here lists the features ordered by the influence to GPU performance.
- Foveation: Trade-off between content frame peripheral quality and GPU resources.
- For most of the cases, the Fixed Mode is a nice starting point. You can improve GPU performance with barely noticeable visual quality loss in periphery.
- If your rendering scene has no head locked objects, and the FPS can not reach refresh rate. You may try the Dynamic Mode for further performance improvement.
- Enabling foveated rendering feature incurs a fixed GPU performance cost, which can vary between 1% to 6% depending on the size of the eye buffer. When using a simple shader in the scene, the performance gain from saving resources might be lower than the fixed GPU performance cost, resulting in a performance drop. Therefore, it is advisable to enable or disable the feature based on your specific requirements and performance considerations.
- Display Refresh Rate: Higher refresh rates offer smoother visuals, but come at the cost of increased system load. Conversely, lower refresh rates reduce system load, but result in less smooth visuals. HTC XR Elite offers both 90Hz and 75Hz options to suit your content needs.
- Setting Passthrough Configuration Better quality or higher image rates deliver smoother visuals but increase system load. Conversely, lower quality or reduced image rates ease system load but compromise visual smoothness.