XR Unity Player v1.0.0 features

  • Adds support for augmented reality scenes using the MPEG_anchor glTF extensions which enables anchoring nodes and scenes to real world features. Anchored nodes are composited with the runtime device’s camera stream. The implementation currently targets Mobile XR scenarios on Android devices such as smartphones, leveraging Google’s ARCore API.

  • Adds a basic player configuration file to list multiple glTF documents, and a simple menu to load/unload and switch between scenes.

View Changelog

Anchoring

Supports augmented reality scenes using the MPEG_anchor glTF extensions which enables anchoring nodes and scenes to Trackable real world features.

The implementation targets Android devices, anchored nodes are composited with the runtime device’s camera stream.

 Trackable type Status Test content
TRACKABLE_VIEWER anchoring/anchorTest_viewer_n.gltf
TRACKABLE_FLOOR awards/scene_floor_anchoring.gltf
TRACKABLE_PLANE awards/scene_plane_anchoring.gltf
TRACKABLE_CONTROLLER anchoring/anchorTest_ctrl_n.gltf
TRACKABLE_MARKER_2D anchoring/anchorTest_m2D_n.gltf
TRACKABLE_MARKER_3D anchoring/anchorTest_m3D_n.gltf
TRACKABLE_MARKER_GEO anchoring/anchorTest_geoSpatial_n_cs.gltf
TRACKABLE_APPLICATION anchoring/anchorTest_app_n.gltf

Interactivity

Supports specifying interactive behaviors to gltf documents through the MPEG_scene_interactivity and MPEG_node_interactivity extensions.

An interactivity behavior combines one or more triggers that condition the execution one or more actions.

The table below provide an overview of the supported triggers and actions:

Trigger type Status Test content
TRIGGER_COLLISION gravity/gravity.gltf
TRIGGER_PROXIMITY gravity/gravity.gltf, geometry/UseCase_03-variant1-geometry.gltf
TRIGGER_USER_INPUT gravity/gravity.gltf, geometry/UseCase_03-variant3-geometry.gltf
TRIGGER_VISIBILITY geometry/UseCase_03-variant3-geometry.gltf
Action type Status Test content
ACTION_ACTIVATE gravity/gravity.gltf
ACTION_TRANSFORM gravity/gravity.gltf
ACTION_BLOCK gravity/gravity.gltf
ACTION_ANIMATION geometry/UseCase_03-variant1-geometry.gltf
ACTION_SET_MATERIAL gravity/gravity.gltf
ACTION_MANIPULATE  
ACTION_MEDIA geometry/UseCase_02-variant3-geometry.gltf
ACTION_HAPTIC  
ACTION_SET_AVATAR  

Media pipelines

Android support is planned in #54.

Support for media sources (eg. mp4, dash, rtp, …) exposing media buffers to the presentation engine through the MPEG_media, MPEG_accessor_timer, MPEG_buffer_circular glTF extensions.

Media buffers expose decoded data not limited to video texture or audio sources.

Sample scene with media pipelines

Video texture

Android support is planned in #54.

Supports video textures buffers through the MPEG_texture_video glTF video extension is supported on Windows as of v0.9.0, Android support is planned for v1.1.0.

Sample scene with video texture

Spatial audio

Android support is planned in #54.

Supports audio sources positionned in 3D through the MPEG_audio_spatial glTF extension is supported on Windows as of v0.9.0, Android support is planned for v1.1.0.

For each audio source the extension specifies attenuation parameters controling the audio source loudness as a function of the viewer’s distance.

Sample scene with spatial audio source

Overview of the MPEG extensions to glTF format implemented in v1.0.0

Note that “Unity player” refers to the compiled application, while “Unity editor” refers to the development environment which also allows running the app without actually compiling it for the target platform.

glTF extension Unity player Unity editor
  Android  
MPEG_media
MPEG_buffer_circular
MPEG_accessor_timed
MPEG_audio_spatial
MPEG_texture_video
MPEG_scene_interactivity
MPEG_node_interactivity
MPEG_node_interactivity.type
MPEG_anchor
MPEG_sampler_YCbCr
MPEG_primitive_V3C
MPEG_node_avatar
MPEG_lights_texture_based
MPEG_light_punctual
MPEG_haptic
MPEG_mesh_linking
MPEG_scene_dynamic
MPEG_viewport_recommended
MPEG_animation_timing