GlTF and rest3d Patrick Cozzi University of Pennsylvania CIS 565 - Fall 2013.

Slides:



Advertisements
Similar presentations
© Copyright Khronos Group, Page 1 COLLADA FX Update and FX Composer 2.0 Daniel Horowitz & Ignacio Castaño.
Advertisements

The Graphics Pipeline Patrick Cozzi University of Pennsylvania CIS Fall 2012.
Real-time Dynamic HDR Based Lighting in a Static Environment Marcus Hennix Daniel Johansson Gunnar Johansson Martin Wassborn.
MAT 594CM S2010Fundamentals of Spatial ComputingAngus Forbes Overview Today: - Make sure everyone is set up with an OpenGL environment - OpenGL basics:
Morphing and Animation GPU Graphics Gary J. Katz University of Pennsylvania CIS 665 Adapted from articles taken from ShaderX 3, 4 and 5 And GPU Gems 1.
CGDD 4003 THE MASSIVE FIELD OF COMPUTER GRAPHICS.
IN4151 Introduction 3D graphics 1 Introduction to 3D computer graphics part 2 Viewing pipeline Multi-processor implementation GPU architecture GPU algorithms.
Further Programming for 3D applications CE Introduction to Further Programming for 3D application Bob Hobbs Faculty of Computing, Engineering and.
Evolution of the Programmable Graphics Pipeline Patrick Cozzi University of Pennsylvania CIS Spring 2011.
The programmable pipeline Lecture 10 Slide Courtesy to Dr. Suresh Venkatasubramanian.
Visual Studio 11 for Game Developers Boris Jabes Senior Program Manager Microsoft Corporation.
High Performance in Broad Reach Games Chas. Boyd
WebGL Patrick Cozzi University of Pennsylvania CIS Spring 2012.
Antigone Engine Kevin Kassing – Period
CS 480/680 Computer Graphics Course Overview Dr. Frederick C Harris, Jr. Fall 2012.
GPU Programming Robert Hero Quick Overview (The Old Way) Graphics cards process Triangles Graphics cards process Triangles Quads.
Character Animation Blending Abstract BSP Content Importing Digital Content Pipeline Extending Microsoft’s XNA Framework with BSP Content and Animation.
Programmable Pipelines. Objectives Introduce programmable pipelines ­Vertex shaders ­Fragment shaders Introduce shading languages ­Needed to describe.
Real-time Graphical Shader Programming with Cg (HLSL)
INTRO TO COMPUTER GRAPHICS TEXT EDWARD ANGEL: EDITION 5 CS770/870
CSE 381 – Advanced Game Programming Basic 3D Graphics
Copyright© Jeffrey Jongko, Ateneo de Manila University Android.
Games Development Practices 3D Model Import/Export CO2301 Games Development 1 Week 17.
Advanced Computer Graphics March 06, Grading Programming assignments Paper study and reports (flipped classroom) Final project No written exams.
Programmable Pipelines. 2 Objectives Introduce programmable pipelines ­Vertex shaders ­Fragment shaders Introduce shading languages ­Needed to describe.
Main Navigation  Similar to Unity 3D  Unlike Unity it is a right handed coordinate system  Used to determines whether a positive rotation is clockwise.
09/09/03CS679 - Fall Copyright Univ. of Wisconsin Last Time Event management Lag Group assignment has happened, like it or not.
1 Angel and Shreiner: Interactive Computer Graphics 6E © Addison-Wesley 2012 Introduction to Computer Graphics 靜宜大學 資訊工程系 蔡奇偉 副教授
OpenGL ES Performance (and Quality) on the GoForce5500 Handheld GPU Lars M. Bishop, NVIDIA Developer Technologies.
1 Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science.
1 Angel and Shreiner: Interactive Computer Graphics 6E © Addison-Wesley 2012 Introduction to Computer Graphics Ed Angel Professor Emeritus of Computer.
CS 480/680 Intro Dr. Frederick C Harris, Jr. Fall 2014.
Computer Graphics The Rendering Pipeline - Review CO2409 Computer Graphics Week 15.
OpenGL Buffer Transfers Patrick Cozzi University of Pennsylvania CIS Spring 2012.
GRAPHICS PIPELINE & SHADERS SET09115 Intro to Graphics Programming.
Shader Study 이동현. Vision engine   Games Helldorado The Show Warlord.
Final Project Ideas Patrick Cozzi University of Pennsylvania CIS Fall 2014.
Final Project Ideas Patrick Cozzi University of Pennsylvania CIS Fall 2013.
1 Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science.
CSE3AGT – How to fail the Exam Paul Taylor Things to forget: What is Barry? A hamster or a Guinea Pig? The differences between Dx9 and Dx10 What.
CSE 381 – Advanced Game Programming GLSL. Rendering Revisited.
A 3-D Rendering System Final Project Ben Hebert & Mayur Desai Spring 2005.
OpenGL Graphics Textures. Quiz You didn't see that coming!
Maths & Technologies for Games Graphics Optimisation - Batching CO3303 Week 5.
 Learn how you can use the shader through OpenGL ES  Add texture on object and make the object have a different look!!
GLSL Review Monday, Nov OpenGL pipeline Command Stream Vertex Processing Geometry processing Rasterization Fragment processing Fragment Ops/Blending.
Build your own 2D Game Engine and Create Great Web Games using HTML5, JavaScript, and WebGL. Sung, Pavleas, Arnez, and Pace, Chapter 5 Examples 1.
Lecture Rendering pipeline, shaders and effects 1Elias Holmlid.
3D on the Web : Understanding the basics
Textures, Sprites, and Fonts
Textures, Sprites, and Fonts
Software Engineering and Game Development
Antigone Engine.
Web3D Consortium X3DOM: Next-Generation Web3D Applications on Open Standards and Open Source Web3D Consortium
Introduction to OpenGL
How can the Alembic format be useful in production of AAA games
The Graphics Rendering Pipeline
CS451Real-time Rendering Pipeline
Introduction to Computer Graphics with WebGL
Introduction to Computer Graphics with WebGL
Chapter VI OpenGL ES and Shader
Graphics Processing Unit
Games Development Practices 3D Model Import/Export
Computer Graphics Introduction to Shaders
CIS 441/541: Introduction to Computer Graphics Lecture 15: shaders
03 | Creating, Texturing and Moving Objects
Introduction to OpenGL
OpenGL-Rendering Pipeline
CIS 6930: Chip Multiprocessor: GPU Architecture and Programming
Presentation transcript:

glTF and rest3d Patrick Cozzi University of Pennsylvania CIS Fall 2013

Agenda Asset Formats  Tool, interchange, and runtime formats glTF Content Pipeline rest3d 2

Asset Formats 3

Native Modeling Tool Formats Examples 4.lxo.blend.ma /.mb

Interchange Formats 5 ….fbx.obj …

Interchange Formats 6.fbx Engine (Runtime).obj ??

Interchange Formats Target tools, not the GPU, OpenGL, or Direct3D Example: COLLADA  XML + image files  One index per attribute, not vertex  Unsigned int indices  Transform stack per node  Polygons and splines  Common profile materials  Doesn’t specify image file format  Lots of flexibility and indirection in animations and skins 7

Runtime Format Optimized for use in an engine 8 Interchange format Tool format Content Pipeline Runtime format Engine

Engines Engines are more than the runtime Example: 9 Runtime C++ Editor C# Pipeline C++ Ships with the game Used by developers, artists, etc. “Tools” “Engine”

Engine Examples Unity (November 2013)  Runtime: ~500K lines of code  Tools: ~500K Frostbite (November 2013)  Engine + Pipeline: 1.7M  Editor: 1.1M 10

glTF 11

glTF “the runtime asset format for WebGL, OpenGL ES, and OpenGL” jpg, mp3, mpeg, … what about 3D? Open standard Not ratified yet 12

glTF Goals Easy and efficient to render 13.json Node hierarchy, materials, lights, cameras.bin Geometry: vertices and indices Animation: key-frames Skins: inverse-bind matrices.glsl Shaders.png,.jpg, … Textures

glTF Goals Balanced Feature Set Extensible 14 <<

glTF Goals Code, Not Just Spec  Content Pipeline is key to adoption  Three.js is key to adoption  Implementations are needed for a sane spec 15

glTF Goals Community  Grassroots and transparency 16

glTF Goals WebGL, OpenGL ES, and OpenGL  Initial adoption - WebGL 17

glTF Schema 18 scene node camera mesh light accessor bufferView buffer material technique texture sampler image program shader * * * * 1 1 * * * animation skin * 1 glTF duck example

Content Pipeline 19

Content Pipeline Optimize and package assets for use with the engine Several areas  Geometry  Animation and skins  Texture  Shaders 20

Content Pipeline Cleanup redundancies created by artist/exporters  Remove unused nodes, meshes, materials, techniques, etc.  Remove unused vertices. Remove duplicate vertices  Remove duplicate materials and techniques  Combine primitives with the same material and vertex format 21

Content Pipeline: Geometry Triangulation  Polygons Triangles  Higher-order surfaces 22

Content Pipeline: Geometry Deindex  One index per attribute one index per vertex 23 positions normals position indices: [0, 1, 2, 0, 2, 3] normal indices: [0, 0, 0, 0, 0, 0] positions normals indices: [0, 1, 2, 0, 2, 3]

Content Pipeline: Geometry Flatten node hierarchy 24

vertices Content Pipeline: Geometry Split meshes  So indices fit into unsigned short 25 indices: [0, 1, 2,..., 64K - 3, 64K - 2, 64K - 1, 3, 4, 5, 64K, 64K + 1, 64K + 2,...] vertices... indices: [0, 1, 2,..., 64K - 3, 64K - 2, 64K - 1, 3, 4, 5,...] indices: [0, 1, 2,...]

Content Pipeline: Geometry Compression  Open3DGC (TFAN)  Pre-gzip for web deployment  Easy tricks Minify JSON, e.g., whitespace Exclude default values, e.g., identity matrix Uniform scale instead of non-uniform scale 4x3 matrices instead of 4x4 Quaternions are normalized, only store 3 components 26

27

Content Pipeline: Geometry Generate LODs

Content Pipeline: Geometry Others  Consistent up axis What’s up? y? z? What’s forward?  Re-order for the pre- and post-vertex-shader caches  Interleave vertex attributes?

Content Pipeline: Animation and Skins Animations  Resample key-frames  Compress like geometry Skins  Limit joints affecting a vertex  Split meshes 30

Content Pipeline: Texture Create texture atlas  Increases batch size. Reduces individual files 31

Content Pipeline: Texture Generate mipmaps  Higher quality than doing it online  Increase size by 1/3 32

Content Pipeline: Texture Convert image formats  For example,.bmp to.jpg Compress images  DXT / S3TC  ETC2 33

Content Pipeline: Shaders Generate shaders  Common profile -> GLSL  g-buffer formats 34

Content Pipeline: Shaders Optimize shaders  Minify too? 35

Content Pipeline Where is the parallelism? 36

rest3d 37

rest3d Content Pipeline meets the cloud 38 rest3d Manage and process Modeling ToolsEngines

Closing glTF properties not covered today  Morph targets  Multipass  Cube maps, mipmaps  Lights, cameras Themes  Keep the runtime simple  Push work to the Content Pipeline 39