From 0e8ae6b26e83022637059324718aa4e54b737612 Mon Sep 17 00:00:00 2001 From: Lam Kit Yung klam Date: Thu, 5 Sep 2024 20:56:22 +0200 Subject: [PATCH 1/2] First draft of EXT_volumetricvideo proposal --- .../2.0/Vendor/EXT_volumetricvideo/README.md | 114 ++++++++++++++++++ .../gltf.EXT_volumetricvideo.scheme.json | 35 ++++++ .../2.0/Vendor/EXT_volumetricvideo/vvext.png | Bin 0 -> 70204 bytes 3 files changed, 149 insertions(+) create mode 100644 extensions/2.0/Vendor/EXT_volumetricvideo/README.md create mode 100644 extensions/2.0/Vendor/EXT_volumetricvideo/schema/gltf.EXT_volumetricvideo.scheme.json create mode 100644 extensions/2.0/Vendor/EXT_volumetricvideo/vvext.png diff --git a/extensions/2.0/Vendor/EXT_volumetricvideo/README.md b/extensions/2.0/Vendor/EXT_volumetricvideo/README.md new file mode 100644 index 0000000000..7de9e9a499 --- /dev/null +++ b/extensions/2.0/Vendor/EXT_volumetricvideo/README.md @@ -0,0 +1,114 @@ +# EXT_volumetricvideo + +## Contributors + +* Kit Yung Lam, HSLU, kityung.lam@hslu.ch +* Smolic Aljosa, HSLU, aljosa.smolic@hslu.ch +* Croci Simone, HSLU, simone.croci@hslu.ch +* Haslbauer Philipp, HSLU, philipp.haslbauer@hslu.ch + +## Status + +Proposal + +## Dependencies + +Written against the glTF 2.0 spec. + +## Overview +This extension is designed for simple playback of mesh based Volumetric Video in form of a video textures apply to a sequence of 3D meshes, to enable Volumetric Video playback with the glTF 2.0 standard. + +Typically, glTF renderer only shows the node elements with meshID specified in the scene description. Despite the mesh elements included in the glTF file, the mesh elements absent in the scene and node structure will be ignored. We apply this feature to achieve efficient playback of Volumetric Video with glTF. + +Same as other 3D mesh in the glTF file, all meshes of a Volumetric Video sequence are stored in the glTF buffer, but only one mesh should be displayed per video frame in the Volumetric Video node and apply the corresponding video texture to it, controlled by the video playback. + +A Volumetric Video controller should be developed with the glTF 3D render engine, and control the Volumetric Video playback as shown as below structure. It creates a 3D object for the node contains EXT_volumetricvideo extension and switches the mesh following the video playback, get the video texture from video player and apply it to the Volumetric Video mesh material, +

+ +

+ +Certain research works generate 3D meshes with textures from images, including PIFu and ICON. When it comes to video, these works can generate mesh and texture sequences that, when combined with this extension, can be created as Volumetric Video. + +### Volumetric Video Properties + +The Volumetric Video node contains EXT_volumetricvideo extension properties, which keeps the MPEG media information including the media URI address and a list of mesh IDs in `meshAccessorList` corresponding to the sequence of the video. + +| Property | Type| Description | Required | +|:---------|:----|:------------|:---------| +| `MPEG_media` | MPEG_media | provides an array of MPEG media items referenced by Volumetric Video controller.| No | +| `meshAccessorList` |integer[1-*]| The ID of the meshes that belong to the Volumetric Video node. | Yes | +| `meshStep` |integer[1-*]| The number of video frames texture apply to each Volumetric Video mesh. | No | + +## Adding Volumetric Video Instances to Nodes + +A Volumetric Video node has the `extensions.EXT_volumetricvideo` property and, within that, `meshAccessorList` array contains a list of `meshID` property . Optionally, the `MPEG_media` properties can be defined to provide additional information of video textures. +```javascript + "extensions": { + "EXT_volumetricvideo": { + "mpeg_media": { + "MPEG_media": { + "name": "Levi", + "media": [ + { + "name": null, + "startTime": 0, + "startTimeOffset": 0, + "endTimeOffset": 0, + "autoplay": true, + "autoplayGroup": 0, + "loop": true, + "controls": false, + "alternatives": [ + { + "uri": "Levi.mp4", + "mimeType": "video/mp4", + "tracks": [ + { + "track": "track", + "codec": "h264" + } + ] + } + ] + } + ] + } + }, + "meshAccessorList": [ + 1, + 2, + 3, + ... + 149, + ], + "meshStep":[ + 2 + ] + } + } +``` +## Defining Volumetric Video Mesh Accessor List and MPEG_media +The Volumetric Video glTF exporter should assign a unique mesh ID and primitive description for each Volumetric Video mesh frame in the glTF file, add the mesh IDs to the Volumetric Video Mesh Accessor List and export the list to this extension. The list provides mesh accessor Ids for Volumetric Video controller to import the right Volumetric Video meshes from the 3D scenes containing other non-Volumetric Video meshes. + +The textures of each meshes should be collected together and exported as texture video with the codec and format supported by the video player in glTF renderer. The texture video information such as the codec and URI address should be recorded to the MPEG_media extension and export to this extension. + +## Implementation Details + +We modified the official [UnityGLTF plugin](https://github.com/KhronosGroup/UnityGLTF) to export and import mesh based Volumetric Video in glTF file format with this extension. The Unity project can be found in [irc-hslu/EXTVolumetricVideoUnity](https://github.com/irc-hslu/EXTvolumetricvideoUnity) + +The Volumetric Video controller was written in Unity 3D Csharp script. It creates the 3D object with the Volumetric Video node configuration. It get the video address from MPEG_media and uses the Unity 3D video player component to playback the texture video. For each video frame update, +Volumetric Video controllers retrieve mesh IDs from Mesh Accessor List with the video frame index. Next, it obtains the mesh data from glTF importer and assigns the mesh data to the 3D object mesh filter. The mesh data will be keep in cache for faster loading time. It converts the video frame to texture and assigns them to the material of the 3D object. + +* The 3D object created by the controller and its all mesh frames will inherit the transform of the node. +* The mesh should update immediately follow the video frame rate of the texture video, then the playback speed should be able to adjust as usual as the 2D video. +* meshStep is optional; by default, each video texture frame applies to one mesh. When it comes to array data, its length ought to match that of meshAccessorList. + + +## JSON Schema + +* [gltf.EXT_volumetricvideo.scheme.json](schema/gltf.EXT_volumetricvideo.scheme.json) + +## Resources + +* [glTF 2.0 Extensions in MPEG and 3GPP � Real-time exchange formats for 3D Experiences, IES Computer Committee](https://www.khronos.org/assets/uploads/developers/presentations/glTF_2.0_Extensions_in_MPEG_and_3GPP_.pdf) + diff --git a/extensions/2.0/Vendor/EXT_volumetricvideo/schema/gltf.EXT_volumetricvideo.scheme.json b/extensions/2.0/Vendor/EXT_volumetricvideo/schema/gltf.EXT_volumetricvideo.scheme.json new file mode 100644 index 0000000000..ad31343fce --- /dev/null +++ b/extensions/2.0/Vendor/EXT_volumetricvideo/schema/gltf.EXT_volumetricvideo.scheme.json @@ -0,0 +1,35 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema", + "title": "EXT_volumetricvideo glTF extension", + "type": "object", + "description": "glTF extension that enables the simple Volumetric Video playback with two mode, sequence of mesh or in glTF. A list of mesh sequence indicate the total frame of mesh sequence stored in the gltf file ", + "allOf": [ { "$ref": "glTFProperty.schema.json" } ], + "properties": { + "mpeg_media": { + "type": "object", + "$ref": "MPEG_media.schema.json" + }, + "meshAccessorList": { + "type": "array", + "items": { + "type": "integer", + "minProperties": 2, + "$ref": "glTFid.schema.json" + }, + "minItems": 1 + }, + "meshStep": { + "type": "array", + "items": { + "type": "integer", + "minProperties": 1 + }, + "minItems": 1 + }, + "extensions": {}, + "extras": {} + }, + "required": [ + "lights" + ] +} \ No newline at end of file diff --git a/extensions/2.0/Vendor/EXT_volumetricvideo/vvext.png b/extensions/2.0/Vendor/EXT_volumetricvideo/vvext.png new file mode 100644 index 0000000000000000000000000000000000000000..28e76ac0020dae64701f9dbe97961f69bac1234f GIT binary patch literal 70204 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 literal 0 HcmV?d00001 From 083d391bce78e6fa1b7266c70ef41f55cfe802cd Mon Sep 17 00:00:00 2001 From: Lam Kit Yung klam Date: Thu, 5 Sep 2024 21:55:08 +0200 Subject: [PATCH 2/2] Update README.md --- extensions/2.0/Vendor/EXT_volumetricvideo/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/2.0/Vendor/EXT_volumetricvideo/README.md b/extensions/2.0/Vendor/EXT_volumetricvideo/README.md index 7de9e9a499..15a3276632 100644 --- a/extensions/2.0/Vendor/EXT_volumetricvideo/README.md +++ b/extensions/2.0/Vendor/EXT_volumetricvideo/README.md @@ -22,7 +22,7 @@ Typically, glTF renderer only shows the node elements with meshID specified in t Same as other 3D mesh in the glTF file, all meshes of a Volumetric Video sequence are stored in the glTF buffer, but only one mesh should be displayed per video frame in the Volumetric Video node and apply the corresponding video texture to it, controlled by the video playback. -A Volumetric Video controller should be developed with the glTF 3D render engine, and control the Volumetric Video playback as shown as below structure. It creates a 3D object for the node contains EXT_volumetricvideo extension and switches the mesh following the video playback, get the video texture from video player and apply it to the Volumetric Video mesh material, +A Volumetric Video controller should be developed with the glTF 3D render engine, and control the Volumetric Video playback as shown as below structure. It creates a 3D object for the node contains EXT_volumetricvideo extension and switches the mesh following the video playback, get the video texture from video player and apply it to the Volumetric Video mesh material.