
glTF graphics library Transmission https://github.com/KhronosGroup/glTFFormat Fabrice Robinet / Montage Studio COLLADA Working Group Chair 1 Menu • Inter-exchange and runtime formats • Motivations: • Transmission Format for 3D Assets • Designed for GL • Asset Pipeline • glTF: • Birds eye view • RAW datas for straight GL Code • Features • Organized for efficiency • Compression: • As part of glTF via extensions • Open3DGC • Next steps • Demos • QA 2 Inter-exchange and runtime formats • There isn’t anything such as a silver bullet for 3D formats • Different formats for different pipeline stages: • Inter-exchange: 3D assets exchange between tools (COLLADA & FBX). • Runtime & delivery format: provide a compact and efficient representation to be directly consumed by the low level graphic API. 3 Motivation : Transmission Format for 3D assets • Content is king • 3D is the last media without delivery format • For easy adoption, needs to be royalty-free Audio Video Images 3D MP3 H.264 JPEG ? 4 Motivation : Designed for GL • Inter-exchange formats are not suited for real-time • Data has to be transformed to be passed to GL • Especially on mobile, offload processing from runtime • Unify indices • Split meshes due to indexing restrictions (OpenGL ES 2.0) • Split meshes due to maximum uniforms (For Skinning) • … • Reduce duplicated efforts in content pipeline • A common format for content providers 5 Asset Pipeline Author Interchange Converter Delivery API Maya OpenGL/ES Command Line COLLAD Blende Tool glTF WebGL A r FB or .. X Rest API OpenGL … Note: COLLADA is the open standards-based flow but other tool flows are possible 6 glTF : Birds eye view • JSON to properties declarations and refer to external files (buffers, images..) • Binary for heavy datas , vertices and indices, animations… scene light node camera morph mesh material animation accessors technique pass skin bufferView program texture sampler buffer shader image 7 glTF : RAW Datas for straight GL code • Buffers and BufferViews are fundamental building blocks • used to hold datas for vertices, indices, animations and more… • Buffer and bufferView properties match typed array specification • BufferViews may have a ELEMENT_ARRAY_BUFFER or ARRAY_BUFFER target property • Accessors refer to bufferViews, specify its type and support interleaving • Straight GL matching for program, texture, sampler, shader properties • No client behavior is mandated, apps can process glTF as they wish • one may prefer to load data progressively and possibly create multiple VBOs • or, all datas for an asset could be loaded at once to maximize buffers size. 8 glTF : Features • Version 0.6 • Specified & Implemented • Node • Mesh • Animation (TRS) • Technique, Pass, Program, Shader • Skinning • Camera • Light 9 glTF : Organized for efficiency material material material materials share techniques technique technique pass set states and program pass pass set states and program once per pass states program states program render primitives sharing same material 10 Compression : extension mechanism • Extensions implemented outside of the core specification • Similar to the way texture compression is supported with GL • Scope is mesh and animation compression • Work-in progress: • https://github.com/KhronosGroup/glTF/issues/230 • https://github.com/KhronosGroup/glTF/issues/61 11 Compression : Open3DGC •Khronos and MPEG collaboration •Royalty free •https://github.com/KhronosGroup/glTF/wiki/Open-3D-Graphics-Compression •Open3DGC Binary is an implementation of the MPEG-SC3DMC (Scalable Compression 3D Mesh Compression) • 2 modes: binary and ascii. • Open3DGC Binary exploits an adaptive arithmetic-based encoding to exploit statistical properties of the encoded data • Open3DGC ASCII exploits a 7-bit ASCII encoding adapted for GZip compression • Open3DGC ASCII is a slightly modified version of SC3DMC to exploit GZip compression 12 Compression : Open3DGC •Features • Generic Attributes, POSITION, NORMAL, TEXCOORD, WEIGHTS… all supporting multiple sets… • Animation compression • Virtual City test scene (from 3DRT.com). 13 Compression : Open3DGC Excerpt from Khaled Mammou contribution on glTF WIKI 14 glTF : Next steps • Morphing • Video • Compression extension • Multi-pass still considered for v1.0 15 glTF : Adoption •In Three.js dev Branch. Contribution from Tony Parisi - http://threejs.org/ •Cesium globe engine - http://cesiumjs.org/ • http://cesiumjs.org/Cesium/Apps/Sandcastle/index.html?src=3D%20Models.htm l&label=Showcases •Montage Studio - http://www.montagestudio.com/ •AMD Rest3D Project - https://github.com/amd/rest3d 16 Thank you 17 QA 18 .
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages18 Page
-
File Size-