collada / gltf bof - siggraph 2014
DESCRIPTION
COLLADA and glTF slide presentation from the 2014 SIGGRAPH BOFTRANSCRIPT
© Copyright Khronos Group 2014 - Page 1
Neil Trevett Vice President Mobile Ecosystem, NVIDIA
President, Khronos Group
© Copyright Khronos Group 2014 - Page 2
Agenda
Neil Trevett Khronos President,
VP NVIDIA NVIDIA Introduction to COLLADA and glTF Ecosystem
Dan Toloudis Senior Graphics
Engineer Amobee glTF in the Amobee 3D Content Pipeline
Remi Arnaud Principal Member Tech
Staff AMD Adding 3D content to Libreoffice with glTF and Rest3D
Patrick Cozzi Principal Graphics
Architect
Analytical Graphics Inc.
glTF in Cesium - Update
Neil Trevett OpenCL Chair, VP
NVIDIA NVIDIA Wrap-up and Questions
© Copyright Khronos Group 2014 - Page 3
Khronos Standards
Visual Computing - 3D Graphics - Heterogeneous Parallel Computing
3D Asset Handling - 3D authoring asset interchange
- 3D asset transmission format with compression
Acceleration in HTML5 - 3D in browser – no Plug-in
- Heterogeneous computing for JavaScript
Over 100 companies defining royalty-free
APIs to connect software to silicon
Sensor Processing - Vision Acceleration - Camera Control - Sensor Fusion
© Copyright Khronos Group 2014 - Page 4
COLLADA Developments • COLLADA specifications now on GitHub!
- Encouraging accessibility and feedback
• COLLADA 1.4.2
- Spec update in progress
- Gathering feedback from community
- Easier to be compliant by relaxing some aspects of the schema
• COLLADA-CTS – Conformance Test Suite on GitHub
- Improved with recent Blender support
- https://github.com/KhronosGroup/COLLADA-CTS
• OpenCOLLADA – open source reliable importer/exporters
- OpenCOLLADA: newest exporter for Maya 2014
- Exporter for Max 2015 is now working!
- https://github.com/KhronosGroup/OpenCOLLADA
© Copyright Khronos Group 2014 - Page 5
3D Needs a Transmission Format! • Compression and streaming of 3D assets becoming essential
- Mobile and connected devices need access to increasingly large asset databases
• 3D is the last media type to define a compressed format
- 3D is more complex – diverse asset types and use cases
• Needs to be royalty-free
- Avoid an ‘internet video codec war’ scenario
• Eventually enable hardware implementations of successful codecs
- High-performance and low power – but pragmatic adoption strategy is key
Audio Video Images 3D
MP3 H.264 JPEG ? !
An effective and widely adopted codec ignites previously
unimagined opportunities for a media type
© Copyright Khronos Group 2014 - Page 6
What is glTF? • ‘GL Transmission Format’
- Runtime asset format for WebGL, OpenGL ES, and OpenGL applications
• Efficient Representation = Small Size AND Minimal Load Processing
- JSON for scene structure and other high-level constructs
- Binary mesh and animation data
- Little or no processing to drop glTF data into client application
• Runtime Neutral
- Can be created and used by any app or runtime
• Khronos is prototyping standards-based pipeline
- Conditioning of COLLADA assets into glTF for WebGL applications
Playback Authoring
© Copyright Khronos Group 2014 - Page 7
COLLADA and glTF Ecosystem
Tool Interop
Three.js glTF Importer. Rest3D initiative
COLLADA2GLTF
Translator
OpenCOLLADA
Importer/Exporter
and COLLADA
Conformance Tests
On GitHUB
Pervasive WebGL deployment
Other
authoring
formats
Web-based Tools
© Copyright Khronos Group 2014 - Page 8
Open Source for glTF • COLLADA2GLTF open-source converter is gaining robustness and momentum
- Binaries are available on GitHUB for easy use
- Significant contributions from Tom Fili, Analytical Graphics, Inc.
• Three.js glTF loader project on Github
- https://github.com/KhronosGroup/glTF/tree/master/loaders/threejs
- Most glTF features are already supported - Triangle meshes (optionally uses THREE.BufferGeometry for faster loading)
- Materials – diffuse, specular, emissive, ambient, textures, environment maps
- Cameras – perspective and orthographic,
- Lights – ambient, spot, point, directional
- Matrix transforms, Scene structure, Animation (Key frame/articulated only)
- Shaders (uses “common profile” techniques - lighting models such as Phong and
Lambert, and their parameters, are mapped to existing Three.js material types)
- Features TBD, in progress - Skinned animations and morphs
- Arbitrary GLSL shaders (via THREE.ShaderMaterial)
© Copyright Khronos Group 2014 - Page 9
glTF Specification Status • Open specification; Open process
- Spec, and sample code: https://github.com/KhronosGroup/glTF
- All features backed up by multiple implementations in code
• glTF 0.8 schema available on GitHub
- github.com/KhronosGroup/glTF
- Getting very close to glTF 1.0 - most likely no major breaking changes in 1.0
• Specified & implemented features:
- Node hierarchy, Mesh, Animation (key frames, skinning)
- Camera, Lights, Materials (Blinn, Phong, Lambert)
• Features on the way:
- Morphing, Video, Mesh Compression, Cube maps
- Multi-pass still being considered
• Next steps
- Encourage support for more input formats
- Direct glTF export from tools
http://www.tonyparisi.com
© Copyright Khronos Group 2014 - Page 10
glTF Adoption!
three.js loader
rest3d viewer
Cesium Engine
Montage Viewer
© Copyright Khronos Group 2014 - Page 11
Amobee 3D
[a•mo•bee] Confidential. Do not
distribute.
11 20 August 2014
GLTF in the Amobee 3D Content Pipeline
Dan Toloudis
Senior Graphics Engineer
[a•mo•bee]
© Copyright Khronos Group 2014 - Page 12
Amobee 3D
[a•mo•bee] Confidential. Do not
distribute.
12 20 August 2014
• 3D interactive experiences for advertising
• All assets served via http
• Embedded in mobile apps (iOS, Android)
• On web pages (WebGL)
• Common javascript engine code
© Copyright Khronos Group 2014 - Page 13 [a•mo•bee] Confidential. Do not
distribute.
13 20 August 2014
SDK 3.0
Amobee 3D
Asset Pipeline
1. modeling in 3dsmax or maya
2. COLLADA exporter
• Optimize and organize models for engine
3. Collada2gltf with modifications
• Animation data
• Trivial texture / shader remappings
© Copyright Khronos Group 2014 - Page 14 [a•mo•bee] Confidential. Do not
distribute.
14 20 August 2014
SDK 3.0
Amobee 3D
Asset Pipeline, cont’d
4. custom material metadata is added
5. display in runtime engine
© Copyright Khronos Group 2014 - Page 15 [a•mo•bee] Confidential. Do not
distribut.
15 20 August 2014
SDK 3.0
Amobee 3D
• Demos!
• http://amobee3d.s3.amazonaws.com/ads/Amobee3D_AdList.html
• http://www.amobee.com/products/3d_mobile_ads/
© Copyright Khronos Group 2014 - Page 16
• Open-source WebGL engine for virtual globes started by Analytical Graphics, Inc.
• Supports glTF including animation and skinning
glTF in Cesium
cesiumjs.org
© Copyright Khronos Group 2014 - Page 17
CesiumJS Web Conversion
cesiumjs.org/convertmodel.html
© Copyright Khronos Group 2014 - Page 18
Cygnus Mission to ISS in CesiumJS
Cygnus Mission Demo
© Copyright Khronos Group 2014 - Page 19
glTF in Cesium • NORAD Tracks Santa is built on Cesium
• Animated Santa model used glTF
• ~20 million unique visitors
Video
© Copyright Khronos Group 2014 - Page 20
glTF in Cesium • 26,762 triangles (instanced reindeer)
• Three 1024x1024 texture atlases
• Artwork by Branden Coker (@planetpuncher) using Modo
© Copyright Khronos Group 2014 - Page 21
Questions?