glTF Update SIGGRAPH, August 2017 - Khronos Group · Title: glTF Update SIGGRAPH, August 2017...
Transcript of glTF Update SIGGRAPH, August 2017 - Khronos Group · Title: glTF Update SIGGRAPH, August 2017...
© Copyright Khronos Group 2017 - Page 1
glTF UpdateSIGGRAPH, August 2017
https://www.khronos.org/gltf/https://github.com/KhronosGroup/glTF
© Copyright Khronos Group 2017 - Page 2
glTF – Cross-Platform 3D Asset Transmission
OpenGL Transmission FormatEfficient transmission of 3D
scenes and assets
glTF 2.0 has PBR!Cool, portable materials
Rendering API independenceReleased June 2017
glTF 1.0Aimed at loading assets into WebGL apps
Uses GLSL for materialsReleased December 2015
All glTF spec development
on open GitHub:https://github.com/KhronosGroup/glT
F
© Copyright Khronos Group 2017 - Page 3
Publicly Stated Support for glTF
Strong glTF Industry Momentum
© Copyright Khronos Group 2017 - Page 4
What’s New in glTF 2.0• Physically Based Rendering (PBR) material definitions
- Material information stored in textures
• Graphics API neutral
- Proven by engine implementations using WebGL, Vulkan and Direct3D
- GLSL materials moved to extension for existing content and specialized use cases
• Morph Targets
- Enhanced animation system
• Improvements
- Binary glTF in core
- Dozens of refinements for enhanced performance
and a tighter, clearer specification
• Download the glTF 2.0 Reference Guide!
- https://www.khronos.org/files/gltf20-reference-guide.pdf
© Copyright Khronos Group 2017 - Page 5
glTF 2.0 Scene Description Structure
.gltf (JSON)
Node hierarchy, PBR material textures, cameras
.binGeometry: vertices and indices
Animation: key-framesSkins: inverse-bind matrices
.png
.jpg
...Textures
Texture based PBR materials
Geometry
© Copyright Khronos Group 2017 - Page 6
glTF 2.0 Scalable, Portable PBR• glTF 2.0 PBR Requirements
- Simple and inexpensive to implement - So can be everywhere – even mobile devices
- Scalable- Two combinable models – but materials continue to work even if just core supported
• Metallic-Roughness Material model
- baseColor — base color
- metallic — metalness
- roughness — roughness
- Simple to implement - mandated in core
• Specular-Glossiness Material model
- diffuse — reflected diffuse color
- specular — specular color
- glossiness — glossiness
- Slightly more resources - optional extension
Illustrations by Fraunhofer
© Copyright Khronos Group 2017 - Page 7
glTF 2.0 PBR – Consistency Across Engines
glTF Model on Laugh Engine over Vulkan https://github.com/jian-ru/laugh_engine
glTF on WebGL Reference Implementation
http://github.khronos.org/glTF-WebGL-PBR/
glTF Model running on Metal PBR Rendererhttps://twitter.com/warrenm/status/891558755657175040
glTF on View 3D over DX12https://www.microsoft.com/en-us/store/p/windows-view-3d/9nblggh42ths
glTF model on UX3D Engine over Vulkan
© Copyright Khronos Group 2017 - Page 8
glTF Ecosystem Momentum
Tools
Apps &
Engines
Translators Validator
Import
Convert | Optimize
Export
Validate
PEX
Blender exporter
COLLADA2GLTF
glTF ValidatorglTF Test
glTF Test Models
Tutorialhttps://github.com/KhronosGroup/glTF-Tutorials
nvpro-pipeline
Unity Exporter
glTF in Visual Studio Code
glTF-VSCode extensionhttps://marketplace.visualstudio.com/items?itemName=cesium.gltf-vscode
OBJ2GLTFglTF Pipeline – Convert glTF 1.0->2.0
Drag and drop COLLADA -> glTFhttp://cesiumjs.org/convertmodel.html
glTF 2.0 support complete
glTF 2.0 support in progress
100,000+ glTF 2.0 models for download!
Blender exporter for glTF 2.0 now in Beta!
View 3D
Paint 3D
Microsoft using glTF 2.0 to bring 3D to
Office!
© Copyright Khronos Group 2017 - Page 9
Blender glTF 2.0 Exporter
Open-source Beta Release!
https://github.com/KhronosGroup/glTF-Blender-Exporter
© Copyright Khronos Group 2017 - Page 10
Google Draco glTF Extension!• Library for compressing and decompressing 3D geometric meshes and point clouds
- https://github.com/google/draco
• Google has released Draco encoders and decoders in open source
- C++ source code encoder to compress 3D data
- C++ and JavaScript decoders for the encoded data
• Draco glTF extension is in progress and ready for feedback!
- Draco designed and built for compression efficiency and speed - great fit with glTF!
- https://github.com/KhronosGroup/glTF/pull/874
Typical Draco compression ratios
© Copyright Khronos Group 2017 - Page 11
glTF Roadmap Discussions• LOD - BabylonJS prototype extension #1045
• Progressive Geometry Streaming - Fraunhofer POP Buffer
• Universal Texture Compression – Binomial Basis
• Optimized transmission format with efficient local expansion to any GPU format
• PBR Next
- E.g., transparency/refraction (#1027), multi-pass (#163) and clear coat (#1040)
• API-specific features (they’re interconnected):
- Textures: cube maps, formats, etc. #835, #620, #640, #728
- Enhanced ES 3.0 / WebGL 2.0 support #832
- Enhanced Vulkan support #663
• Point Clouds
• JSON reference other JSON #37
• Bounding Volumes / Collision Volumes #507
• Animation Compression #731
glTF 2.0 PBR Rendering - Image courtesy instant3Dhub / instantUV - Max
Limper
© Copyright Khronos Group 2017 - Page 12
Industry Calls to Action• It’s time to move to your engine/exporter/pipeline to glTF 2.0!
- Breaking changes from 1.0 to 2.0 but processing is streamlined and simplified
- NOT significant work and great benefits by upgrading to 2.0
• Help beta test the glTF 2.0 Blender Exporter- https://github.com/KhronosGroup/glTF-Blender-Exporter
• Engage on GitHub to help drive the ecosystem forward- https://github.com/KhronosGroup/glTF/issues/456
• Share your roadmap priorities with us!- https://github.com/KhronosGroup/glTF/issues/1051
• Join Khronos!
- Get directly involved in the glTF Working Group
Sketchfab User: theblueturtlehttps://sketchfab.com/models/b81008d513954189a063ff901f7abfe4