Gl tf siggraph-2013

1,674 views

Published on

Published in: Technology, Art & Photos
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,674
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
6
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Gl tf siggraph-2013

  1. 1. © Copyright Khronos Group 2013 | Page Fabrice Robinet COLLADA Working Group Chair. graphics library Transmission Format https://github.com/KhronosGroup/glTF Wednesday, July 24, 13
  2. 2. © Copyright Khronos Group 2013 | Page Overview •status •motivations •design principles •glTF pipeline •scope •glTF... and what more ? •demos Wednesday, July 24, 13
  3. 3. © Copyright Khronos Group 2013 | Page Status •COLLADA Working group initiative. •Work in progress - Not a ratified specification yet. •Code work and SPEC work at the same time. •SPEC currently catching up with the converter. •Community feedback welcomed on GitHub. Wednesday, July 24, 13
  4. 4. © Copyright Khronos Group 2013 | Page Motivations •Bridge the gap between 3D formats and GL based APIs. •Reduce duplicated effort in content pipeline. •A common format for contents providers. Wednesday, July 24, 13
  5. 5. © Copyright Khronos Group 2013 | Page Design principles •Streamline rendering: size, speed and ease of implementation •Offload processing from runtime. •Maps well to GL APIs and Typed Arrays. •Neutral, specify higher level only when necessary. Wednesday, July 24, 13
  6. 6. © Copyright Khronos Group 2013 | Page glTF Pipeline - overview OpenCOLLADA Compression COLLADA2GLTF C++ Library Rapidjson COLLADA2GLTF command line tool Rest3D transactions & access to 3D assets COLLADA2GLTF DeliveryAuthor Interchange API Maya Blender .. COLLADA glTF OpenGL/ES WebGL OpenGL Converter Wednesday, July 24, 13
  7. 7. © Copyright Khronos Group 2013 | Page glTF Pipeline - COLLADA2GLTF • Triangulate • Unify indices • Split meshes • Generate shaders • Axis up conversion • Minify shaders • Flatten hierarchy & combine meshes • Convert images • Compress meshes • Interleave vertices • ... Suggestions welcomed ! Mandatory transformations Planned optimizations & transformations Wednesday, July 24, 13
  8. 8. © Copyright Khronos Group 2013 | Page Scope •1.0 - Node hierarchy - Cameras - Lights - Key-framed animations - Skinning - Morphing - Medias (images & videos) •mesh compression as extensions •multi-pass considered. Wednesday, July 24, 13
  9. 9. © Copyright Khronos Group 2013 | Page Compression •Tested 2 compression libraries: - Open3DGC: https://github.com/amd/rest3d/tree/master/server/ o3dgc - webgl-loader: https://code.google.com/p/webgl-loader/ Wednesday, July 24, 13
  10. 10. © Copyright Khronos Group 2013 | Page Open3DGC •Open3DGC Binary is an implementation of the MPEG-SC3DMC (Scalable Compression 3D Mesh Compression) •K. Mammou, T. Zaharia, F. Prêteux, “TFAN: A low complexity 3D mesh compression algorithm” Computer Animation and Virtual Worlds, Vol. 20(2-3), pp. 343–354, 2009 •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 Wednesday, July 24, 13
  11. 11. © Copyright Khronos Group 2013 | Page Model COLLADACOLLADA glTFglTF glTF+Open3DGC ascii glTF+Open3DGC ascii glTF+Open3DGC binary glTF+Open3DGC binary Model XML gzip raw gzip raw gzip raw •raw bin •gzip JSON • bin:102k • JSON:11k • bin:81k • JSON:2kb • ascii:29k • JSON:11k • ascii:19k • JSON:2k • bin:18k • JSON:11k • bin:18k • JSON:2k 336k 106k 113k 83k 40k 21k 29k 20k • bin:9220k • JSON:75k • bin:3220k • JSON:5k • ascii:3080k • JSON:151k • ascii:1510k • JSON:11k • bin: 1622k • JSON:151k • bin: 1622k • JSON:11k 19767k 3417k 9295k 3225k 3231k 1521k 1773k 1633k • bin:25224k • JSON:183k • bin:5738k • JSON:8k • ascii:7793k • JSON:587k • ascii:1433k • JSON:29k • bin:3205k • JSON:589k • bin:3205k • JSON:29k 56763k 7378k 25407k 5746k 8380k 1462k 3794k 3234k • bin:329k • JSON:255k • bin:99k • JSON:10k • ascii:122k • JSON:267k • ascii:61k • JSON:11k • bin:71k • JSON:267k • bin:71k • JSON:11k 794k 133k 584k 109k 389k 77k 338k 88k NOT final numbers - will be refined with integration improvements. Wednesday, July 24, 13
  12. 12. © Copyright Khronos Group 2013 | Page Compression: results overview data from rest3d SigGraph 2013 BOF presentation, Khaled Mammou/Remi Arnaud Wednesday, July 24, 13
  13. 13. © Copyright Khronos Group 2013 | Page Open3DGC compression •First integration within “collada2gltf” available on GitHub. - naive integration to be improved (leading to better compression). •Encoder/Decoder in C++ •Just to get it working quickly, converted code using emscripten to javascript. •Decoding performance to be evaluated in JS. Wednesday, July 24, 13
  14. 14. © Copyright Khronos Group 2013 | Page “webgl-loader” compression • First integration within “collada2gltf” available on GitHub. - naive integration to be improved (leading to better compression). • Encoder in C++/Decoder in JS • Fast decoding. Model COLLADACOLLADA glTF+webgl-loaderglTF+webgl-loader glTF+Open3DGC asciiglTF+Open3DGC ascii glTF+Open3DGC binaryglTF+Open3DGC binary Model XML gzip raw gzip raw gzip raw •raw bin •gzip JSON • utf8:42k • JSON:12k • utf8:34k •JSON:2kb • ascii:29k • JSON:11k • ascii:19k • JSON:2k • bin:18k • JSON:11k • bin:18k • JSON:2k 336k 106k 54k 36k 40k 21k 29k 20k •utf8:8747k • JSON:753k •utf8:1325k • JSON:29k • ascii:7793k • JSON:587k • ascii:1433k • JSON:29k • bin:3205k • JSON:589k • bin:3205k • JSON:29k 56763k 7378k 9500k 1354k 8380k 1462k 3794k 3234k NOT final numbers - will be refined with integration improvements. Wednesday, July 24, 13
  15. 15. © Copyright Khronos Group 2013 | Page Compression: next steps •Fix integration issues: currently both Open3DGC and webgl-loader do not handle shared vertex buffer by multiple index buffers. Needed some vertex duplication to work-around this. •Benchmark for decoding performance and memory footprint. •Compress animations, bones indices and weight Wednesday, July 24, 13
  16. 16. © Copyright Khronos Group 2013 | Page glTF... and what more ? •package not only “models” but whatever you need a declarative way •For instance, the viewer uses glTF “techniques” to: - draw the background gradient - setup the specific image based picking shaders Wednesday, July 24, 13
  17. 17. © Copyright Khronos Group 2013 | Page Demos •Montage Model Viewer •MegaCity & Video demo •Skinning Wednesday, July 24, 13
  18. 18. © Copyright Khronos Group 2013 | Page Thank you - See you on GitHub ! Specification : https://github.com/KhronosGroup/glTF/blob/master/specification/README.md converter : https://github.com/KhronosGroup/glTF/converter montagejs viewer : https://github.com/fabrobinet/glTF-webgl-viewer Wednesday, July 24, 13

×