Latest
Unity 2.5.0 ( December 6, 2024 ):
Release Notes:
Plugin package name in Unity is VIVE OpenXR Plugin.
Unity6
Section
- Release Information
- Changes
- Recommended AIO ROM
- Supported Extensions
- Feature Dependency
- Profile Dependency
- Toolkits
- Known Issues
Release Information
Version: 2.5.0
Unity Engine Version: 2021.3.3f1 or newer
Unity Input System: 1.4.3 is recommended.
Unity OpenXR Plugin: 1.3.1 or 1.6.0 are recommended.
Target Platform: PC Win64, Android arm64
Target Device: VIVE Focus Vision, VIVE XR Elite, VIVE Focus 3, VIVE Pro Series, VIVE Cosmos
Graphics API: DX11, DX12, OpenGLES3, Vulkan
OpenXR Android Loader Version: Khronos openxr_loader_for_android-1.0.34Version: 2.5.0
Unity Engine Version: 2021.3.3f1 or newer
Unity Input System: 1.4.3 is recommended.
Unity OpenXR Plugin: 1.3.1 or 1.6.0 are recommended.
Target Platform: PC Win64, Android arm64
Target Device: VIVE Focus Vision, VIVE XR Elite, VIVE Focus 3, VIVE Pro Series, VIVE Cosmos
Graphics API: DX11, DX12, OpenGLES3, Vulkan
OpenXR Android Loader Version: Khronos openxr_loader_for_android-1.0.34
Changes
AIO
Extension
- Deprecates the legacy extension " VIVE XR Composition Layer (Passthrough) ". Provides the new extension " VIVE XR Passthrough " as its substitute.
- Adds XR_HTC_eye_tracker .
- Adds "Persisted Anchor".
- Adds XR_EXT_hand_interaction .
- Adds XR_HTC_passthrough_configuration.
- Adds XR_EXT_user_presence .
- Adds "Spectator Camera".
- Adds XR_HTC_frame_synchronization.
- Adds Composition Layer Extra Settings - Sharpness settings.
- Supports the dynamic mode of Foveation .
- Supports the "Default Rects" settings of Composition Layer . When you select Quad layer, you can define a single input texture that consists of both, the left and the right image.
Engine
- Adds Direct Preview configurations. The Direct Preview help you to preview an Android application on Focus3/XR Elite/Focus Vision.
- Supports OpenXR 1.9.1.
- Provides the Controller and Hand models.
PC
Extension
- Deprecates the legacy extension " VIVE XR Composition Layer (Passthrough) ". Provides the new extension " VIVE XR Passthrough " as its substitute.
- Adds XR_HTC_hand_interaction in PC streaming case.
- Adds XR_HTCX_vive_tracker_interaction in all PC cases.
- Adds VIVE XR Tracker in all PC cases.
Engine
- Adds Direct Preview configurations. The Direct Preview help you to preview an Android application on Focus3/XR Elite/Focus Vision.
- Supports OpenXR 1.9.1.
- Provides the Controller and Hand models.
Recommended AIO ROM
- VIVE XR Elite : 1.0.999.738
- VIVE Focus Vision : 7.0.999.228
Supported Extensions
Extensions |
PC Streaming
|
PC Vive Cosmos |
PC Vive Pro series |
AIO
|
V |
V |
V |
V |
|
VIVE Focus3 / XR Elite Controller
|
V |
- |
- |
V |
VIVE Cosmos Controller
|
V※ |
V |
- |
- |
V |
V |
V |
V |
|
Composition Layer
|
|
|
|
V |
Composition Layer Extra Settings
(beta)
|
|
|
|
Focus3 : X XR Elite/Focus Vision : V |
Scene Understanding
|
|
V |
V |
|
V |
V |
V |
V |
|
Hand Interaction Ext
|
|
|
|
Focus3 : X XR Elite/Focus Vision : V |
V |
V |
V |
V |
|
V |
V |
V |
V |
|
|
|
|
V |
|
|
|
|
V |
|
V※ |
|
|
V |
|
VIVE XR Tracker
(beta)
|
V |
V |
V |
V |
|
|
|
Focus3 : X XR Elite/Focus Vision : V |
|
Anchor
(beta)
|
|
|
|
Focus3 : X XR Elite/Focus Vision : V |
Advanced Eye Tracking
(beta)
|
V |
|
V |
V |
Passthrough Configuration
(beta)
|
|
|
|
V |
Persisted Anchor
|
|
|
|
Focus3 : X XR Elite/Focus Vision : V |
|
|
|
V |
|
Spectator Camera
(beta)
|
|
|
|
Focus3 : X XR Elite/Focus Vision : V |
Frame Synchronization
(beta)
|
|
|
|
V |
V |
V |
V |
|
※Correspondent VIVE Streaming settings required.
Feature Dependency
ROM Dependency
- The XR_HTC_hand_interaction "/input/grip/pose" and "/input/squeeze/value" values depend on VIVE XR Elite v1.0.999.456 or newer ROM.
- The XR_FB_display_refresh_rate extension depends on VIVE XR Elite v1.0.999.456 or newer ROM.
- The "XR_HTC_vive_xr_tracker_interaction" extension depends on VIVE XR Elite v1.0.999.528 or newer ROM.
- The "XR_HTC_vive_xr_tracker_interaction" "/input/menu/click", "/input/squeeze/click", "/input/trigger/click", "/input/trackpad/click" and "/input/trackpad/touch" values depend on VIVE XR Elite v1.0.999.676 or newer ROM.
- The "XR Hands" package depends on VIVE Focus 3 v6.0.999.980, VIVE XR Elite v1.0.999.700 or newer ROM.
- The newly added features depends on VIVE Focus 3 Release 6.4, VIVE XR Elite Release 8, VIVE Focus Vision or newer ROM.
Others
- The "Spectator Camera" depends on Unity 2022.
- We provides the VIVE XR Hand Interaction Ext ( XR_EXT_hand_interaction ) AIO version.
Profile Dependency
The
VIVE OpenXR Plugin
provides
Profiles
that adhere to the
OpenXR Specification
, located at
VIVE OpenXR Plugin > Runtime > Profiles
.
These
Profiles
rely on the
OpenXR extensions
configured in
Project Settings > XR Plug-in Management > OpenXR
. To utilize these
Profiles
, you must enable the corresponding relative extensions as listed in the table below.
Profile |
Extension |
XR_EXT_hand_tracking | VIVE XR Hand Tracking |
XR_EXT_user_presence | VIVE XR User Presence |
XR_HTC_composition_layer_extra_settings | VIVE XR Composition Layer (Extra Settings) |
XR_HTC_eye_tracker | VIVE XR Eye Tracker |
XR_HTC_facial_tracking | VIVE XR Facial Tracking |
XR_HTC_passthrough |
VIVE XR Composition Layer
VIVE XR Passthrough |
XR_HTC_path_enumeration | VIVE XR Path Enumeration |
Toolkits
- Custom Gesture : Provides interfaces to customize hand gestures by calculating the fingers "bending" states and "distance" between fingers.
- Realistic Hand Interaction : Provides interfaces to grab/throw an object using XR Hands .
Toolkits |
PC Streaming
|
PC
|
AIO
|
V |
|
V |
|
V |
|
V |
Known Issues
- XR_HTC_eye_tracker : The EyeGaze.isValid and PupilData.isValid are always true. The Wide value is always zero.
-
Materials are unavailable when using an
Universal Render Pipeline (URP)
project.
=> VIVE OpenXR Plugin provides materials specifically for Scriptable Render Pipeline (SRP) . To use SRP materials, you can create an SRP project in Unity Hub by selecting the 3D (Built-In Render Pipeline) template.
Please note that Unity 6 uses URP as the default project template.
Unity 6 Development (Beta)
The VIVE OpenXR Unity Plugin 2.5.0 is experimental for Unity 6 development (version 6000.0.25f1 is verified). Please refer to the feature support table below for details.
Supported Features
Extensions |
PC Streaming
|
PC Vive Cosmos |
PC Vive Pro series |
AIO
|
V |
V |
V |
V |
|
VIVE Focus3 / XR Elite Controller
|
V |
- |
- |
V |
VIVE Cosmos Controller
|
V |
V |
V |
- |
V |
V |
V |
V |
|
Composition Layer
|
|
|
|
V |
Composition Layer Extra Settings
(beta)
|
|
|
|
V |
Scene Understanding
|
- |
V |
V |
- |
V |
V |
V |
V |
|
Hand Interaction Ext
|
|
|
|
|
V |
V |
V |
V |
|
V |
- |
V |
V |
|
|
|
|
V |
|
|
|
|
V |
|
V |
- |
- |
V |
|
VIVE XR Tracker
(beta)
|
V |
V |
V |
V |
|
- |
- |
V |
|
Anchor
(beta)
|
|
- |
- |
V |
Advanced Eye Tracking
(beta)
|
V |
- |
V |
V |
Passthrough Configuration
(beta)
|
|
- |
- |
V |
Persisted Anchor
|
|
- |
- |
V |
|
|
|
V |
|
Spectator Camera
(beta)
|
|
|
|
|
Frame Synchronization
(beta)
|
|
|
|
V |
V |
- |
V |
- |
Known Issues & Solutions
- The PoseState isTracked is always false.
- When lost tracking, the PoseState trackingState is Position + Rotation.
- XR_HTC_hand_interaction : The pose is abnormal when the tracking origin is Floor in PC mode.
-
XR_HTC_passthrough
: The HDR feature is default enabled in PC mode and causes
Planar
and
Projected
Passthrough unavailable.
=> Workaround: Disable the HDR. -
Vision is limited.
=> Workaround: Set XRSettings.occlusionMaskScale to 0.using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.XR; public class RemoveRenderMask : MonoBehaviour { private void OnEnable() { StartCoroutine(RemoveOcclusionMask()); } IEnumerator RemoveOcclusionMask() { // Find DisplaySubsystem XRDisplaySubsystem display = null; List displaySubsystems = new List(); do { SubsystemManager.GetSubsystems(displaySubsystems); foreach (var d in displaySubsystems) { if (d.running) { display = d; break; } } yield return null; } while (display == null); Debug.Log("RemoveOcclusionMask XRSettings.occlusionMaskScale = 0"); XRSettings.occlusionMaskScale = 0; XRSettings.useOcclusionMesh = false; } }