SlideShare ist ein Scribd-Unternehmen logo
1 von 17
glTF update
tony parisi
august 22, 2013
last November

8/22/20
13
http://www.tonyparisi.com
8/22/20
13
http://www.tonyparisi.com

now
graphics library Transmission Format
wtf is glTF?
the runtime asset format for WebGL, OpenGL ES, and OpenGL
applications
compact representation
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 used by any app or runtime – initial target is for WebGL-
accelerated applications
open specification; open process
Khronos Group initiative within the COLLADA working group
F. Robinet (lead), R. Arnaud, P. Cozzi, T. Parisi
http://gltf.gl/
8/22/20
13
http://www.tonyparisi.com
wtf would I care?
there is no open, comprehensive, vendor- and engine- neutral
format for publishing 3D data to web and mobile apps
COLLADA not designed for runtime delivery – bulky, XML-
based, intended for interchange, not playback
Autodesk FBX – proprietary
VRML, X3D, others - out of the mainstream and out of date
engine-specific formats (e.g. Three.js) on their own trajectories
WebGL content creation a.k.a. DEATHMATCH 3000
developers scramble to find exporters and importers, often build
custom pipeline tools per-project – film production approach on
web schedules and budgets
technical directors spend an inordinate amount of time hand-
coding basic features (cameras and lighting) that could and
should be done by artists in a 3D tool
8/22/20
13
http://www.tonyparisi.com
how does glTF help?
a “JPEG for 3D”
bridges the gap between existing 3D formats/tools and
today‟s GL based APIs
compact, efficient to load representation
balanced, pragmatic feature set
GL native data types require no additional processing
also includes common 3D constructs (hierarchy, cameras,
lights, common materials, animation )
reduces duplicated effort in content pipeline
a common publishing format for content tools
8/22/20
13
http://www.tonyparisi.com
8/22/20
13
http://www.tonyparisi.com
three.js loader
rest3d viewer
Cesium engine
MontageJS viewer
glTF in action
demo
8/22/20
13
http://www.tonyparisi.com
model from 3drt.com
comparison : glTF vs
COLLADA file sizes
8/22/20
13
http://www.tonyparisi.com
Size (Mb) Wine Rack
Super
Murdoch Virtual City Razer Rambler
glTF JSON + .bin 0.58 0.85 2.6 5.1 12.7
COLLADA (.dae) 0.79 1.8 5.5 7.5 31.6
% reduction 27% 53% 53% 32% 60%
0
5
10
15
20
25
30
35
40
45
50
Wine Rack Super
Murdoch
Virtual City Razer Rambler
COLLADA (.dae)
glTF JSON + .bin
comparison : glTF vs
COLLADA load times
8/22/20
13
http://www.tonyparisi.com
0
1
2
3
4
5
6
7
Wine Rack Razer Virtual City Super
Murdoch
Rambler
COLLADA (.dae)
glTF
glTF w BufferGeometry
Wine Rack Razer Virtual City Super Murdoch Rambler
glTF w BufferGeometry 0.06 0.08 0.09 0.21 0.69
glTF 0.08 0.36 0.15 0.27 1.86
COLLADA (.dae) 0.18 1.34 1.05 0.55 3.88
%reduction 67% 94% 91% 62% 82%
8/22/20
13
http://www.tonyparisi.com
{


"attributes": {
"attribute_22": {
"bufferView": "bufferView_28",
"byteOffset": 0,
"byteStride": 12,
"count": 2399,
"max": [
96.1799,
163.97,
53.9252
],
"min": [
-69.2985,
9.92937,
-61.3282
],
"type": "FLOAT_VEC3"
},


"bufferViews": {
"bufferView_28": {
"buffer": "duck.bin",
"byteLength": 76768,
"byteOffset": 0,
"target": "ARRAY_BUFFER"
},
"bufferView_29": {
"buffer": "duck.bin",
"byteLength": 25272,
"byteOffset": 76768,
"target": "ELEMENT_ARRAY_BUFFER"
}
},
"buffers": {
"duck.bin": {
"byteLength": 102040,
"path": "duck.bin"
}
},
syntax: low-level stuff
declaring vertex
attributes
accessing external binary
data via buffers and buffer
views
8/22/20
13
http://www.tonyparisi.com
syntax: high-level stuff
"nodes": {
"LOD3sp": {
"children": [],
"matrix": [
...
],
"meshes": [
"LOD3spShape-lib"
],
"name": "LOD3sp"
},
"camera1": {
"camera": "camera_0",
"children": [],
"matrix": [
...
],
"name": "camera1"
},
"meshes": {
"LOD3spShape-lib": {
"name": "LOD3spShape",
"primitives": [
{
"indices": "indices_20",
"material": "material.0",
"primitive": "TRIANGLES",
"semantics": {
"NORMAL": "attribute_24",
"POSITION": "attribute_22",
"TEXCOORD_0":
"attribute_26"
}
}
]
}
},
declaring meshes
primitives define
the mesh
shapes
attributes reference
binary data sources
scene graph structure
defined as hierarchy of
nodes
8/22/20
13
http://www.tonyparisi.com
glTF content pipelines
Three.js glTF loader project
8/22/20
13
http://www.tonyparisi.com
currently a branch of the glTF project on Github
https://github.com/KhronosGroup/glTF
Branch „threejsloader‟
designed to be compatible with other Three.js example loaders
such as OBJ and COLLADA
e.g. http://threejs.org/examples/webgl_loader_collada.html
no external dependencies other than official glTF parser (webgl-tf-
loader.js)
demo version at SIGGRAPH
expect v1.0 feature complete in October
after completion, will submit a Github pull request for inclusion with
Three.js distribution
three.js glTF loader – project
status
8/22/20
13
http://www.tonyparisi.com
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)
glTF status
version 1.0 – hoping for full draft spec in early 2014
v1.0 scope
node hierarchy
cameras
lights
animations – key frames, skinning, morphs
common material techniques – Blinn, Phong, Lambert
user-defined shaders
external media (images & videos)
mesh compression as extensions post v1.0
multi-pass considered
8/22/20
13
http://www.tonyparisi.com
glTF specification process
specification driven by COLLADA working group at
Khronos
not an official standard - yet
spec work being done completely in the open
all features backed up by multiple implementations in
code
specification
https://github.com/KhronosGroup/glTF/blob/master/specificati
on/README.md
glTF repo with sample code and specification JSON
schema
https://github.com/KhronosGroup/glTF 8/22/20
13
http://www.tonyparisi.com

Weitere Àhnliche Inhalte

Was ist angesagt?

Was ist angesagt? (7)

MapFish v1-0 Presentation
MapFish v1-0 PresentationMapFish v1-0 Presentation
MapFish v1-0 Presentation
 
Embedding Chromium into AGL demo platform with WAM
Embedding Chromium into AGL demo platform with WAMEmbedding Chromium into AGL demo platform with WAM
Embedding Chromium into AGL demo platform with WAM
 
Cache in Chromium: Disk Cache
Cache in Chromium: Disk CacheCache in Chromium: Disk Cache
Cache in Chromium: Disk Cache
 
Html5 tx - preso
Html5 tx - presoHtml5 tx - preso
Html5 tx - preso
 
Front Page of Hacker News with GitLab Pages
Front Page of Hacker News with GitLab PagesFront Page of Hacker News with GitLab Pages
Front Page of Hacker News with GitLab Pages
 
The web can do that better - My adventure with HTML5 Vide, WebRTC and Shared ...
The web can do that better - My adventure with HTML5 Vide, WebRTC and Shared ...The web can do that better - My adventure with HTML5 Vide, WebRTC and Shared ...
The web can do that better - My adventure with HTML5 Vide, WebRTC and Shared ...
 
Docker and .NET Core - Best Friends Forever - Michael Newton - Codemotion Rom...
Docker and .NET Core - Best Friends Forever - Michael Newton - Codemotion Rom...Docker and .NET Core - Best Friends Forever - Michael Newton - Codemotion Rom...
Docker and .NET Core - Best Friends Forever - Michael Newton - Codemotion Rom...
 

Ähnlich wie glTF Update with Tony Parisi WebGL Meetup August 2013

Gl tf siggraph-2013
Gl tf siggraph-2013Gl tf siggraph-2013
Gl tf siggraph-2013
Khaled MAMOU
 
WebGL demos showcase
WebGL demos showcaseWebGL demos showcase
WebGL demos showcase
Yukio Andoh
 
3D Geo-standaarden workshop
3D Geo-standaarden workshop3D Geo-standaarden workshop
3D Geo-standaarden workshop
LĂ©on Berlo
 
Rest3d BOF presentation at SigGraph 2013
Rest3d BOF presentation at SigGraph 2013Rest3d BOF presentation at SigGraph 2013
Rest3d BOF presentation at SigGraph 2013
Remi Arnaud
 
Http/2 - What's it all about?
Http/2  - What's it all about?Http/2  - What's it all about?
Http/2 - What's it all about?
Andy Davies
 

Ähnlich wie glTF Update with Tony Parisi WebGL Meetup August 2013 (20)

Open layers
Open layersOpen layers
Open layers
 
3D for the modern web: declarative3d and gltf
3D for the modern web: declarative3d and gltf3D for the modern web: declarative3d and gltf
3D for the modern web: declarative3d and gltf
 
HTML5 and CartoDB
HTML5 and CartoDBHTML5 and CartoDB
HTML5 and CartoDB
 
Rock Overview
Rock OverviewRock Overview
Rock Overview
 
PDE2011 pythonOCC project status and plans
PDE2011 pythonOCC project status and plansPDE2011 pythonOCC project status and plans
PDE2011 pythonOCC project status and plans
 
WebGL - It's GO Time
WebGL - It's GO TimeWebGL - It's GO Time
WebGL - It's GO Time
 
Artists Only
Artists OnlyArtists Only
Artists Only
 
Gagg: A graph Aggregation Operator
Gagg: A graph Aggregation OperatorGagg: A graph Aggregation Operator
Gagg: A graph Aggregation Operator
 
Keypoints html5
Keypoints html5Keypoints html5
Keypoints html5
 
Gl tf siggraph-2013
Gl tf siggraph-2013Gl tf siggraph-2013
Gl tf siggraph-2013
 
Time series data monitoring at 99acres.com
Time series data monitoring at 99acres.comTime series data monitoring at 99acres.com
Time series data monitoring at 99acres.com
 
WebGL demos showcase
WebGL demos showcaseWebGL demos showcase
WebGL demos showcase
 
3D Geo-standaarden workshop
3D Geo-standaarden workshop3D Geo-standaarden workshop
3D Geo-standaarden workshop
 
Big Data Europe: Simplifying Development and Deployment of Big Data Applications
Big Data Europe: Simplifying Development and Deployment of Big Data ApplicationsBig Data Europe: Simplifying Development and Deployment of Big Data Applications
Big Data Europe: Simplifying Development and Deployment of Big Data Applications
 
Rest3d BOF presentation at SigGraph 2013
Rest3d BOF presentation at SigGraph 2013Rest3d BOF presentation at SigGraph 2013
Rest3d BOF presentation at SigGraph 2013
 
Mobile applications for SharePoint using HTML5
Mobile applications for SharePoint using HTML5Mobile applications for SharePoint using HTML5
Mobile applications for SharePoint using HTML5
 
mago3D FOSS4G NA 2018
mago3D FOSS4G NA 2018mago3D FOSS4G NA 2018
mago3D FOSS4G NA 2018
 
Http/2 - What's it all about?
Http/2  - What's it all about?Http/2  - What's it all about?
Http/2 - What's it all about?
 
gVisor, Kata Containers, Firecracker, Docker: Who is Who in the Container Space?
gVisor, Kata Containers, Firecracker, Docker: Who is Who in the Container Space?gVisor, Kata Containers, Firecracker, Docker: Who is Who in the Container Space?
gVisor, Kata Containers, Firecracker, Docker: Who is Who in the Container Space?
 
Ktunaxa RMS, open source GIS for a first nation by Joachim Van der Auwera
Ktunaxa RMS, open source GIS for a first nation by Joachim Van der AuweraKtunaxa RMS, open source GIS for a first nation by Joachim Van der Auwera
Ktunaxa RMS, open source GIS for a first nation by Joachim Van der Auwera
 

Mehr von Tony Parisi

Mehr von Tony Parisi (20)

The New Fine Arts
The New Fine ArtsThe New Fine Arts
The New Fine Arts
 
Face the Future: Computing in an Augmented World
Face the Future: Computing in an Augmented WorldFace the Future: Computing in an Augmented World
Face the Future: Computing in an Augmented World
 
Powering the VR/AR Ecosystem 2017-01-17
Powering the VR/AR Ecosystem 2017-01-17Powering the VR/AR Ecosystem 2017-01-17
Powering the VR/AR Ecosystem 2017-01-17
 
WebVR: Developing for the Immersive Web
WebVR: Developing for the Immersive WebWebVR: Developing for the Immersive Web
WebVR: Developing for the Immersive Web
 
Introduction to WebVR Autodesk Forge 2016
Introduction to WebVR Autodesk Forge 2016Introduction to WebVR Autodesk Forge 2016
Introduction to WebVR Autodesk Forge 2016
 
WebVR Ecosystem and API Update
WebVR Ecosystem and API UpdateWebVR Ecosystem and API Update
WebVR Ecosystem and API Update
 
Foundations of the Immersive Web
Foundations of the Immersive WebFoundations of the Immersive Web
Foundations of the Immersive Web
 
The Immersive Web
The Immersive WebThe Immersive Web
The Immersive Web
 
Virtually Anyone
Virtually AnyoneVirtually Anyone
Virtually Anyone
 
React-VR: An Early Experiment with React and WebGL for VR Development
React-VR: An Early Experiment with React and WebGL for VR DevelopmentReact-VR: An Early Experiment with React and WebGL for VR Development
React-VR: An Early Experiment with React and WebGL for VR Development
 
WebGL: The Next Generation
WebGL:  The Next GenerationWebGL:  The Next Generation
WebGL: The Next Generation
 
Vrml, or There and Back Again
Vrml, or There and Back AgainVrml, or There and Back Again
Vrml, or There and Back Again
 
The Coming Distribution War
The Coming Distribution WarThe Coming Distribution War
The Coming Distribution War
 
Browser-Based Virtual Reality April 2015
Browser-Based Virtual Reality April 2015Browser-Based Virtual Reality April 2015
Browser-Based Virtual Reality April 2015
 
VR Without Borders RIVER WebVR April 2015
VR Without Borders RIVER WebVR April 2015VR Without Borders RIVER WebVR April 2015
VR Without Borders RIVER WebVR April 2015
 
An Introduction to Web VR January 2015
An Introduction to Web VR January 2015An Introduction to Web VR January 2015
An Introduction to Web VR January 2015
 
Up And Running With Web VR Fall 2014
Up And Running With Web VR Fall 2014Up And Running With Web VR Fall 2014
Up And Running With Web VR Fall 2014
 
The Web Eats Everything In Its Path Fall 2014
The Web Eats Everything In Its Path Fall 2014The Web Eats Everything In Its Path Fall 2014
The Web Eats Everything In Its Path Fall 2014
 
Hacking Reality: Browser-Based VR with HTML5
Hacking Reality: Browser-Based VR with HTML5Hacking Reality: Browser-Based VR with HTML5
Hacking Reality: Browser-Based VR with HTML5
 
WebGL, WebVR and the Metaverse
WebGL, WebVR and the MetaverseWebGL, WebVR and the Metaverse
WebGL, WebVR and the Metaverse
 

KĂŒrzlich hochgeladen

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

KĂŒrzlich hochgeladen (20)

MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 

glTF Update with Tony Parisi WebGL Meetup August 2013

  • 4. wtf is glTF? the runtime asset format for WebGL, OpenGL ES, and OpenGL applications compact representation 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 used by any app or runtime – initial target is for WebGL- accelerated applications open specification; open process Khronos Group initiative within the COLLADA working group F. Robinet (lead), R. Arnaud, P. Cozzi, T. Parisi http://gltf.gl/ 8/22/20 13 http://www.tonyparisi.com
  • 5. wtf would I care? there is no open, comprehensive, vendor- and engine- neutral format for publishing 3D data to web and mobile apps COLLADA not designed for runtime delivery – bulky, XML- based, intended for interchange, not playback Autodesk FBX – proprietary VRML, X3D, others - out of the mainstream and out of date engine-specific formats (e.g. Three.js) on their own trajectories WebGL content creation a.k.a. DEATHMATCH 3000 developers scramble to find exporters and importers, often build custom pipeline tools per-project – film production approach on web schedules and budgets technical directors spend an inordinate amount of time hand- coding basic features (cameras and lighting) that could and should be done by artists in a 3D tool 8/22/20 13 http://www.tonyparisi.com
  • 6. how does glTF help? a “JPEG for 3D” bridges the gap between existing 3D formats/tools and today‟s GL based APIs compact, efficient to load representation balanced, pragmatic feature set GL native data types require no additional processing also includes common 3D constructs (hierarchy, cameras, lights, common materials, animation ) reduces duplicated effort in content pipeline a common publishing format for content tools 8/22/20 13 http://www.tonyparisi.com
  • 9. comparison : glTF vs COLLADA file sizes 8/22/20 13 http://www.tonyparisi.com Size (Mb) Wine Rack Super Murdoch Virtual City Razer Rambler glTF JSON + .bin 0.58 0.85 2.6 5.1 12.7 COLLADA (.dae) 0.79 1.8 5.5 7.5 31.6 % reduction 27% 53% 53% 32% 60% 0 5 10 15 20 25 30 35 40 45 50 Wine Rack Super Murdoch Virtual City Razer Rambler COLLADA (.dae) glTF JSON + .bin
  • 10. comparison : glTF vs COLLADA load times 8/22/20 13 http://www.tonyparisi.com 0 1 2 3 4 5 6 7 Wine Rack Razer Virtual City Super Murdoch Rambler COLLADA (.dae) glTF glTF w BufferGeometry Wine Rack Razer Virtual City Super Murdoch Rambler glTF w BufferGeometry 0.06 0.08 0.09 0.21 0.69 glTF 0.08 0.36 0.15 0.27 1.86 COLLADA (.dae) 0.18 1.34 1.05 0.55 3.88 %reduction 67% 94% 91% 62% 82%
  • 11. 8/22/20 13 http://www.tonyparisi.com { 
 "attributes": { "attribute_22": { "bufferView": "bufferView_28", "byteOffset": 0, "byteStride": 12, "count": 2399, "max": [ 96.1799, 163.97, 53.9252 ], "min": [ -69.2985, 9.92937, -61.3282 ], "type": "FLOAT_VEC3" }, 
 "bufferViews": { "bufferView_28": { "buffer": "duck.bin", "byteLength": 76768, "byteOffset": 0, "target": "ARRAY_BUFFER" }, "bufferView_29": { "buffer": "duck.bin", "byteLength": 25272, "byteOffset": 76768, "target": "ELEMENT_ARRAY_BUFFER" } }, "buffers": { "duck.bin": { "byteLength": 102040, "path": "duck.bin" } }, syntax: low-level stuff declaring vertex attributes accessing external binary data via buffers and buffer views
  • 12. 8/22/20 13 http://www.tonyparisi.com syntax: high-level stuff "nodes": { "LOD3sp": { "children": [], "matrix": [ ... ], "meshes": [ "LOD3spShape-lib" ], "name": "LOD3sp" }, "camera1": { "camera": "camera_0", "children": [], "matrix": [ ... ], "name": "camera1" }, "meshes": { "LOD3spShape-lib": { "name": "LOD3spShape", "primitives": [ { "indices": "indices_20", "material": "material.0", "primitive": "TRIANGLES", "semantics": { "NORMAL": "attribute_24", "POSITION": "attribute_22", "TEXCOORD_0": "attribute_26" } } ] } }, declaring meshes primitives define the mesh shapes attributes reference binary data sources scene graph structure defined as hierarchy of nodes
  • 14. Three.js glTF loader project 8/22/20 13 http://www.tonyparisi.com currently a branch of the glTF project on Github https://github.com/KhronosGroup/glTF Branch „threejsloader‟ designed to be compatible with other Three.js example loaders such as OBJ and COLLADA e.g. http://threejs.org/examples/webgl_loader_collada.html no external dependencies other than official glTF parser (webgl-tf- loader.js) demo version at SIGGRAPH expect v1.0 feature complete in October after completion, will submit a Github pull request for inclusion with Three.js distribution
  • 15. three.js glTF loader – project status 8/22/20 13 http://www.tonyparisi.com 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)
  • 16. glTF status version 1.0 – hoping for full draft spec in early 2014 v1.0 scope node hierarchy cameras lights animations – key frames, skinning, morphs common material techniques – Blinn, Phong, Lambert user-defined shaders external media (images & videos) mesh compression as extensions post v1.0 multi-pass considered 8/22/20 13 http://www.tonyparisi.com
  • 17. glTF specification process specification driven by COLLADA working group at Khronos not an official standard - yet spec work being done completely in the open all features backed up by multiple implementations in code specification https://github.com/KhronosGroup/glTF/blob/master/specificati on/README.md glTF repo with sample code and specification JSON schema https://github.com/KhronosGroup/glTF 8/22/20 13 http://www.tonyparisi.com