From Art to Engine with Model I/O
|
|
- Magdalen Barrett
- 5 years ago
- Views:
Transcription
1 Session Graphics and Games #WWDC17 From Art to Engine with Model I/O 610 Nick Porcino, Game Technologies Engineer Nicholas Blasingame, Game Technologies Engineer 2017 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission from Apple.
2 Model I/O Apple's toolkit for building pipelines Import and export 3D assets Geometry, materials, lighting, cameras, voxels Data format conversions Processing tools
3 Model I/O What's new? NEW Improved Importers Skinned Character Animation Blend Shapes Transform Stacks
4 Model I/O Intuitive Asset Traversal Format independent graph MDLAsset Logical Consistent Home Camera Sun Light Car Root Chassis Body Painted metal Suspension... Wheel Wheel Wheel Wheel Rubber Rubber Rubber Rubber
5 Art Assets Models, materials, animations Textures Scenes composed of many files
6 From Art to Engine Art asset is like source code Compiled for an engine
7 From Art to Engine UI based tools Easy the first few times Overwhelming during revision
8 How can the work be scaled?
9 Introducing the Pipeline Export the art Artwork Asset Engine-Ready Data Exporter
10 Introducing the Pipeline Transform the asset Artwork Asset Engine-Ready Data Tool
11 Introducing the Pipeline Load engine-ready data Artwork Asset Engine-Ready Data Engine
12 Introducing the Pipeline Export the art Artwork Asset Engine-Ready Data Exporter
13 Introducing the Pipeline Exporter Maya Asset Exporter Complex hierarchies of files Export script in the sample Art Asset
14 Introducing the Pipeline Exporter Maya Asset Exporter Complex hierarchies of files Export script in the sample Art USD
15 Universal Scene Description
16 Universal Scene Description Composition Shot Layer Car Wheel Master_1 Master_2 Tire Wall Pit Building Pit Building Race Track Race Track
17 Universal Scene Description Classes, Variations, and Overrides shadingvariant modelingvariant
18 Universal Scene Description Powerful Text Format, Fast Binary over "World" { over "anim" { over "chars" { def "Car" ( add references ) { color3f displaycolor = (0.9, 0, 0) } } } }
19 Introducing the Pipeline Scriptable command line tool Artwork Asset Engine-Ready Data Tool
20 Introducing the Pipeline Scriptable command line tool Asset Engine-Ready Data
21 Introducing the Pipeline Scriptable command line tool Repeatable Asset Engine-Ready Data
22 Introducing the Pipeline Scriptable command line tool Repeatable Consistent Asset Engine-Ready Data
23 Introducing the Pipeline Scriptable command line tool Repeatable Consistent Scriptable Asset Engine-Ready Data
24 Introducing the Pipeline Scriptable command line tool Repeatable Consistent Scriptable Scalable Asset Engine-Ready Data
25 Introducing the Pipeline Scriptable command line tool Repeatable Consistent Scriptable Scalable Asset Engine-Ready Data Composable
26 Introducing the Pipeline The sample Demonstrates principles Simplified data Uncompressed Good jumping-off point Asset Engine-Ready Data
27 Introducing the Pipeline Game engine Artwork Asset Engine-Ready Data Engine
28 Game Engine Simple renderer Single-pass forward renderer Physically-based shader Mesh instancing Skinned and animated meshes Multiple materials
29 Render Loop Set Transform Buffer Set Skinning Data Set Vertex Buffer C Set Pipeline State D Set Material Uniforms Set Fragment Textures Draw Indexed Primitive
30 The Pipeline Artwork Asset Engine-Ready Data Baker
31 Baking Operations 1. Geometry + Transforms 2. Texture Paths + Materials 3. Instancing Data 4. Transform Animation 5. Skinning + Character Animation
32 Baking Operations 1. Geometry + Transforms 2. Texture Paths + Materials 3. Instancing Data 4. Transform Animation 5. Skinning + Character Animation
33 Geometry + Transform A simple scene graph Transform Hierarchy Tree of nodes A Meshes and transform objects B C D
34 Geometry + Transform Transform hierarchy Moving the parent will move the children A B C D
35 Geometry + Transform Compactly encode transform hierarchy A B C D
36 Geometry + Transform Array of local transforms A B A C D Local Transforms
37 Geometry + Transform Array of local transforms A B A B C D Local Transforms
38 Geometry + Transform Array of local transforms A B A B C C D Local Transforms
39 Geometry + Transform Array of local transforms A B A B C C D D Local Transforms
40 Geometry + Transform Assign indices A B A 0 B 1 C C 2 D D 3 Local Transforms
41 Geometry + Transform Array of parent indices A B A 0 B 1 - C C 2 D D 3 Local Transforms Parent Indices
42 Geometry + Transform Array of parent indices A B A 0 B 1-0 C C 2 D D 3 Local Transforms Parent Indices
43 Geometry + Transform Array of parent indices A B A 0 B 1-0 C C 2 1 D D 3 1 Local Transforms Parent Indices
44 Geometry + Transform Array of parent indices A B A 0 B 1-0 C C 2 1 D D 3 1 Local Transforms Parent Indices
45 Geometry + Transform Array of mesh indices A B A 0 - B 1 0 C C D D 3 1 Local Transforms Parent Indices Mesh Indices
46 Geometry + Transform Array of mesh indices A B A 0 - B 1 0 C C D D Local Transforms Parent Indices Mesh Indices
47 Geometry + Transform Mesh data Descriptor Vertex Buffers Index Buffer Descriptor Vertex Buffers Index Buffer
48 Geometry + Transform Vertex buffers //for every mdlobject in MDLAsset: if let mesh = mdlobject as? MDLMesh { vertexdescriptors.append(mesh.vertexdescriptor) for vertexbuffer in mesh.vertexbuffers { let vertexbufferdata = Data(bytes: vertexbuffer.map().bytes, count: vertexbuffer.length)... } for submesh in mesh.submeshes! { if let indexbuffer = (submesh as? MDLSubmesh)?.indexBuffer { let indexbufferdata = Data(bytes: indexbuffer.map().bytes, count: indexbuffer.length)... } } }
49 Geometry + Transform Vertex buffers //for every mdlobject in MDLAsset: if let mesh = mdlobject as? MDLMesh { vertexdescriptors.append(mesh.vertexdescriptor) for vertexbuffer in mesh.vertexbuffers { let vertexbufferdata = Data(bytes: vertexbuffer.map().bytes, count: vertexbuffer.length)... } for submesh in mesh.submeshes! { if let indexbuffer = (submesh as? MDLSubmesh)?.indexBuffer { let indexbufferdata = Data(bytes: indexbuffer.map().bytes, count: indexbuffer.length)... } } }
50 Geometry + Transform Vertex buffers //for every mdlobject in MDLAsset: if let mesh = mdlobject as? MDLMesh { vertexdescriptors.append(mesh.vertexdescriptor) for vertexbuffer in mesh.vertexbuffers { let vertexbufferdata = Data(bytes: vertexbuffer.map().bytes, count: vertexbuffer.length)... } for submesh in mesh.submeshes! { if let indexbuffer = (submesh as? MDLSubmesh)?.indexBuffer { let indexbufferdata = Data(bytes: indexbuffer.map().bytes, count: indexbuffer.length)... } } }
51 Geometry + Transform Index buffer //for every mdlobject in MDLAsset: if let mesh = mdlobject as? MDLMesh { vertexdescriptors.append(mesh.vertexdescriptor) for vertexbuffer in mesh.vertexbuffers { let vertexbufferdata = Data(bytes: vertexbuffer.map().bytes, count: vertexbuffer.length)... } for submesh in mesh.submeshes! { if let indexbuffer = (submesh as? MDLSubmesh)?.indexBuffer { let indexbufferdata = Data(bytes: indexbuffer.map().bytes, count: indexbuffer.length)... } } }
52 Geometry + Transform Local transform var localtransforms: [matrix_float4x4] = [] // for every mdlobject in MDLAsset: if let transform = mdlobject.transform { localtransforms.append(transform.matrix) }
53 Geometry + Transform Local transform var localtransforms: [matrix_float4x4] = [] // for every mdlobject in MDLAsset: if let transform = mdlobject.transform { localtransforms.append(transform.matrix) }
54 Geometry + Transform Mesh Data Descriptors Vertex + Index Buffers Scene Composition Data Parent Indices, Mesh Indices Transform Data Local Transforms
55 Baking Operations 1. Geometry + Transforms 2. Texture Paths + Materials 3. Instancing Data 4. Transform Animation 5. Skinning + Character Animation
56 Texture Paths + Materials Materials stored on MDLSubmesh Fetch properties referenced by shader Record texture paths and values MDLSubmesh MDLMaterial MDLMesh AO Base Color Metallic
57 Texture Paths + Materials // for every submesh: if let material = submesh.material { } for property in material.properties(with:<mdlmaterialsemantic>) { if property.type ==.string property.type ==.URL { // texture } else if property.type == <MDLMaterialPropertyType> { // uniform value } }
58 Texture Paths + Materials // for every submesh: if let material = submesh.material { } for property in material.properties(with:<mdlmaterialsemantic>) { if property.type ==.string property.type ==.URL { // texture } else if property.type == <MDLMaterialPropertyType> { // uniform value } }
59 Texture Paths + Materials Mesh Data Descriptors Vertex + Index Buffers Scene Composition Data Parent Indices, Mesh Indices Transform Data Local Transforms
60 Texture Paths + Materials Mesh Data Descriptors Vertex + Index Buffers Scene Composition Data Parent Indices, Mesh Indices Transform Data Local Transforms Material Data Material Uniforms Texture Paths
61 Baking Operations 1. Geometry + Transforms 2. Texture Paths + Materials 3. Instancing Data 4. Transform Animation 5. Skinning + Character Animation
62 Instancing A mesh can be used multiple times A B C D
63 Instancing A mesh can be used multiple times A B C D E
64 Instancing A mesh can be used multiple times Why store it multiple times? A B C D E
65 Instancing Masters Masters MDLAsset has a masters array A B C D E
66 Instancing Model I/O support Masters MDLObject instance pointers refer to masters A B C D E
67 Instancing Masters A 0 - A AB 1 0 B C C D D E E Local Transforms Parent Indices Mesh Indices
68 Instancing Masters A 0 - A AB 1 0 B C C D D E E Local Transforms Parent Indices Mesh Indices
69 Instancing Masters A 0 - A AB 1 0 B C C D D E E Local Transforms Parent Indices Mesh Indices
70 Instancing Masters A 0 - A AB 1 0 B C C D D E E Local Transforms Parent Indices Mesh Indices Instance Count
71 Instancing Mesh Data Descriptors Vertex + Index Buffers Scene Composition Data Parent Indices, Mesh Indices Transform Data Local Transforms Material Data Material Uniforms Texture Paths
72 Instancing Mesh Data Descriptors Vertex + Index Buffers Scene Composition Data Parent Indices, Mesh Indices Instance Count Transform Data Local Transforms Material Data Material Uniforms Texture Paths
73 Demo Geometry, Materials, and Instancing Nicholas Blasingame, Game Technologies Engineer
74 Baking Operations 1. Geometry + Transforms 2. Texture Paths + Materials 3. Instancing Data 4. Transform Animation 5. Skinning + Character Animation
75 Transform Animation Transforms that vary over time A B C D
76 Transform Animation A B C D
77 Transform Animation Sample the animations A t0, t1 tn B B C D D Animated Local Transforms
78 Transform Animation var localtransforms: [matrix_float4x4] = [] // for every mdlobject in MDLAsset: if let transform = mdlobject.transform { localtransforms.append(transform.matrix) }
79 Transform Animation var localtransforms: [matrix_float4x4] = [] // for every mdlobject in MDLAsset: if let transform = mdlobject.transform { localtransforms.append(transform.matrix) } if (transform.keytimes.count > 1) { let sampledxm = sampletimes.map{ transform.localtransform!(attime: $0) } animatedlocaltransforms.append(sampledxm)... }
80 Transform Animation var localtransforms: [matrix_float4x4] = [] // for every mdlobject in MDLAsset: if let transform = mdlobject.transform { localtransforms.append(transform.matrix) } if (transform.keytimes.count > 1) { let sampledxm = sampletimes.map{ transform.localtransform!(attime: $0) } animatedlocaltransforms.append(sampledxm)... }
81 Transform Animation Mesh Data Descriptors Vertex + Index Buffers Scene Composition Data Parent Indices, Mesh Indices Instance Count Transform Data Local Transforms Material Data Material Uniforms Texture Paths
82 Transform Animation Mesh Data Descriptors Vertex + Index Buffers Scene Composition Data Parent Indices, Mesh Indices Instance Count Transform Data Local Transforms Animated Local Transforms Material Data Material Uniforms Texture Paths
83 Baking Operations 1. Geometry + Transforms 2. Texture Paths + Materials 3. Instancing Data 4. Transform Animation 5. Skinning + Character Animation
84 Skinned Character Animation
85 Skinned Character Animation
86 Skinned Character Animation Mesh has geometry
87 Skinned Character Animation Embedded skeleton
88 Skinned Character Animation Vertex weighting to joints
89 Skinned Character Animation Vertex weighting to joints
90 Skinned Character Animation Vertex blending in shader {... float4 position = vertex.pos; packed_uchar4 jidx = vertex.jointindices; packed_float4 w = vertex.jointweights; float4 skinnedposition = w[0] * (palette[jidx[0]] * modelposition) + w[1] * (palette[jidx[1]] * modelposition) + w[2] * (palette[jidx[2]] * modelposition) + w[3] * (palette[jidx[3]] * modelposition); }...
91 Skinned Character Animation Input vertex attributes {... float4 position = vertex.pos; packed_uchar4 jidx = vertex.jointindices; packed_float4 w = vertex.jointweights; float4 skinnedposition = w[0] * (palette[jidx[0]] * modelposition) + w[1] * (palette[jidx[1]] * modelposition) + w[2] * (palette[jidx[2]] * modelposition) + w[3] * (palette[jidx[3]] * modelposition); }...
92 Skinned Character Animation Per vertex joint indices {... float4 position = vertex.pos; packed_uchar4 jidx = vertex.jointindices; packed_float4 w = vertex.jointweights; float4 skinnedposition = w[0] * (palette[jidx[0]] * modelposition) + w[1] * (palette[jidx[1]] * modelposition) + w[2] * (palette[jidx[2]] * modelposition) + w[3] * (palette[jidx[3]] * modelposition); }...
93 Skinned Character Animation Indexed bones for weight each vertex {... float4 position = vertex.pos; packed_uchar4 jidx = vertex.jointindices; packed_float4 w = vertex.jointweights; float4 skinnedposition = w[0] * (palette[jidx[0]] * modelposition) + w[1] * (palette[jidx[1]] * modelposition) + w[2] * (palette[jidx[2]] * modelposition) + w[3] * (palette[jidx[3]] * modelposition); }...
94 Skinned Character Animation A B C D E Root Skeleton Body Wheel 1 Wheel 2
95 Skinned Character Animation E Root Skeleton Body Wheel 1 Wheel 2
96 Skinned Character Animation E Root Skeleton Body Wheel 1 Wheel 2
97 Skinned Character Animation E Root 0 Skeleton Body Wheel Wheel 2 3
98 Skinned Character Animation E Root 0 - Skeleton Body Wheel Wheel Joint Parent Indices
99 Skinned Character Animation Bind Poses + Joint Indices E Root 0 - Body B1-1 Skeleton Wheel B2-1 Wheel B3-1 Joint Parent Indices Bound Joint Indices Inverse Bind Pose
100 Skinned Character Animation Bind Poses + Joint Indices E Root 0 - Body B1-1 Skeleton Wheel B2-1 Wheel B3-1 Joint Parent Indices Bound Joint Indices Inverse Bind Pose
101 Skinned Character Animation Bind Poses + Joint Indices E Root 0 - Body B1-1 Skeleton Wheel B2-1 Wheel B3-1 Joint Parent Indices Bound Joint Indices Inverse Bind Pose
102 Skinned Character Animation Time sample animation E Root 0 - Root t0 tn Body B1-1 Body t0 tn Skeleton Wheel B2-1 W1 t0 tn Wheel B3-1 W2 t0 tn Joint Parent Indices Bound Joint Indices Inverse Bind Pose Animation Clip
103 Skinned Character Animation // for every mdlobject in MDLAsset: if let mesh = mdlobject as? MDLMesh { if let skin = object.componentconforming(to:mdlskindeformercomponent.self) as? MDLSkinDeformerComponent { let inversebindtransforms = skin.jointbindtransforms().map{simd_inverse($0)} }...
104 Skinned Character Animation // for every mdlobject in MDLAsset: if let mesh = mdlobject as? MDLMesh { if let skin = object.componentconforming(to:mdlskindeformercomponent.self) as? MDLSkinDeformerComponent { let inversebindtransforms = skin.jointbindtransforms().map{simd_inverse($0)} }...
105 Skinned Character Animation Mesh Data Descriptors Vertex + Index Buffers Scene Composition Data Parent Indices, Mesh Indices Instance Count Transform Data Local Transforms Animated Local Transforms Material Data Material Uniforms Texture Paths
106 Skinned Character Animation Mesh Data Descriptors Vertex + Index Buffers Scene Composition Data Parent Indices, Mesh Indices Instance Count Transform Data Local Transforms Animated Local Transforms Animation Clips Material Data Skinning Data Material Uniforms Texture Paths Inverse Bind Transforms Joint to Palette Mapping Skeleton Parent Indices
107 Demo Instancing and Characters
108 Recap Artwork Asset Engine Ready Data USD
109 Enhancements Light Mapping
110 Enhancements Light Mapping UV Unwrapping
111 Enhancements Light Mapping UV Unwrapping Ambient Occlusion
112 Enhancements Image-based lighting
113 More Information
114 Related Information Managing 3D Assets with Model I/O WWDC 2015 Introducing Metal 2 WWDC 2017 What s New in SceneKit WWDC 2017
115
What s New in Metal, Part 2
Graphics and Games #WWDC15 What s New in Metal, Part 2 Session 607 Dan Omachi GPU Software Frameworks Engineer Anna Tikhonova GPU Software Frameworks Engineer 2015 Apple Inc. All rights reserved. Redistribution
More informationBreathing life into your applications: Animation with Qt 3D. Dr Sean Harmer Managing Director, KDAB (UK)
Breathing life into your applications: Animation with Qt 3D Dr Sean Harmer Managing Director, KDAB (UK) sean.harmer@kdab.com Contents Overview of Animations in Qt 3D Simple Animations Skeletal Animations
More informationUnderstanding M3G 2.0 and its Effect on Producing Exceptional 3D Java-Based Graphics. Sean Ellis Consultant Graphics Engineer ARM, Maidenhead
Understanding M3G 2.0 and its Effect on Producing Exceptional 3D Java-Based Graphics Sean Ellis Consultant Graphics Engineer ARM, Maidenhead Introduction M3G 1.x Recap ARM M3G Integration M3G 2.0 Update
More informationCS354 Computer Graphics Character Animation and Skinning
Slide Credit: Don Fussell CS354 Computer Graphics Character Animation and Skinning Qixing Huang April 9th 2018 Instance Transformation Start with a prototype object (a symbol) Each appearance of the object
More informationMetal for Ray Tracing Acceleration
Session #WWDC18 Metal for Ray Tracing Acceleration 606 Sean James, GPU Software Engineer Wayne Lister, GPU Software Engineer 2018 Apple Inc. All rights reserved. Redistribution or public display not permitted
More informationSceneKit in Swift Playgrounds
Session Graphics and Games #WWDC17 SceneKit in Swift Playgrounds 605 Michael DeWitt, Gem Collector Lemont Washington, Draw Call Blaster 2017 Apple Inc. All rights reserved. Redistribution or public display
More informationTutorial: Accessing Maya tools
Tutorial: Accessing Maya tools This tutorial walks you through the steps needed to access the Maya Lumberyard Tools for exporting art assets from Maya to Lumberyard. At the end of the tutorial, you will
More informationZappar's coordinate system is based on the center of the scene being the center of the target image.
3D for Zappar Coordinate system Zappar's coordinate system is based on the center of the scene being the center of the target image. The top of the image is Y = 1 and the bottom is Y = -1. The X coordinates
More informationSceneKit: What s New Session 604
Graphics and Games #WWDC17 SceneKit: What s New Session 604 Thomas Goossens, SceneKit engineer Amaury Balliet, SceneKit engineer Anatole Duprat, SceneKit engineer Sébastien Métrot, SceneKit engineer 2017
More information3D Production Pipeline
Overview 3D Production Pipeline Story Character Design Art Direction Storyboarding Vocal Tracks 3D Animatics Modeling Animation Rendering Effects Compositing Basics : OpenGL, transformation Modeling :
More informationWorking with Metal Overview
Graphics and Games #WWDC14 Working with Metal Overview Session 603 Jeremy Sandmel GPU Software 2014 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission
More informationTutorial: Exporting characters (Maya)
Tutorial: Exporting characters (Maya) This tutorial walks you through the steps needed to get a character exported from Maya and ready for importing into Lumberyard, including how to export the character
More informationgltf - what the? Concepts An overview of the basics of the GL Transmission Format Page 1 gltf 2.0 Quick Reference Guide Binary data references
gltf 2.0 Quick Reference Guide gltf - what the? An overview of the basics of the GL Transmission Format For gltf 2.0! Concepts Page 1 The conceptual relationships between the top-level elements of a gltf
More informationCGDD 4113 Final Review. Chapter 7: Maya Shading and Texturing
CGDD 4113 Final Review Chapter 7: Maya Shading and Texturing Maya topics covered in this chapter include the following: Shader Types Shader Attributes Texturing the Axe Life, Love, Textures and Surfaces
More informationYou can also export a video of what one of the cameras in the scene was seeing while you were recording your animations.[2]
Scene Track for Unity User Manual Scene Track Plugin (Beta) The scene track plugin allows you to record live, textured, skinned mesh animation data, transform, rotation and scale animation, event data
More informationIntegrating Physics into a Modern Game Engine. Object Collision. Various types of collision for an object:
Integrating Physics into a Modern Game Engine Object Collision Various types of collision for an object: Sphere Bounding box Convex hull based on rendered model List of convex hull(s) based on special
More informationIntroducing Metal 2. Graphics and Games #WWDC17. Michal Valient, GPU Software Engineer Richard Schreyer, GPU Software Engineer
Session Graphics and Games #WWDC17 Introducing Metal 2 601 Michal Valient, GPU Software Engineer Richard Schreyer, GPU Software Engineer 2017 Apple Inc. All rights reserved. Redistribution or public display
More information1 INTRoduCTIon to BLENDER 1. 3 PREPARATIon 19
INTRoduCTIoN xv 2 INTRoduCTIon to GIMP 13 Topics Covered... xv What Isn t Covered...xvi Requirements....xvi The Projects....xvi The Bat Creature... xvii The Spider Bot... xvii The Jungle Temple... xvii
More informationChapter 9 Animation System
Chapter 9 Animation System 9.1 Types of Character Animation Cel Animation Cel animation is a specific type of traditional animation. A cel is a transparent sheet of plastic on which images can be painted
More informationMODELING AND HIERARCHY
MODELING AND HIERARCHY Introduction Models are abstractions of the world both of the real world in which we live and of virtual worlds that we create with computers. We are all familiar with mathematical
More informationIntegrating Apps and Content with AR Quick Look
Session #WWDC18 Integrating Apps and Content with AR Quick Look 603 David Lui, ARKit Engineering Dave Addey, ARKit Engineering 2018 Apple Inc. All rights reserved. Redistribution or public display not
More informationContent. Building Geometry Appearance Lights Model Loaders
Content Building Geometry Appearance Lights Model Loaders Building Geometry A Geometry represents a 3D object: Mesh: The form or structure of a shape (What to draw) Material: The color, transparency, and
More informationLesson 01 Polygon Basics 17. Lesson 02 Modeling a Body 27. Lesson 03 Modeling a Head 63. Lesson 04 Polygon Texturing 87. Lesson 05 NURBS Basics 117
Table of Contents Project 01 Lesson 01 Polygon Basics 17 Lesson 02 Modeling a Body 27 Lesson 03 Modeling a Head 63 Lesson 04 Polygon Texturing 87 Project 02 Lesson 05 NURBS Basics 117 Lesson 06 Modeling
More informationThe Application Stage. The Game Loop, Resource Management and Renderer Design
1 The Application Stage The Game Loop, Resource Management and Renderer Design Application Stage Responsibilities 2 Set up the rendering pipeline Resource Management 3D meshes Textures etc. Prepare data
More informationAbout the FBX Exporter package
About the FBX Exporter package Version : 1.3.0f1 The FBX Exporter package provides round-trip workflows between Unity and 3D modeling software. Use this workflow to send geometry, Lights, Cameras, and
More informationBuilding a Game with SceneKit
Graphics and Games #WWDC14 Building a Game with SceneKit Session 610 Amaury Balliet Software Engineer 2014 Apple Inc. All rights reserved. Redistribution or public display not permitted without written
More informationVISIT FOR THE LATEST UPDATES, FORUMS & MORE ASSETS.
Gargoyle VISIT WWW.SFBAYSTUDIOS.COM FOR THE LATEST UPDATES, FORUMS & MORE ASSETS. 1. INTRODUCTION 2. QUICK SET UP 3. PROCEDURAL VALUES 4. SCRIPTING 5. ANIMATIONS 6. LEVEL OF DETAIL 7. CHANGE LOG 1. Introduction
More informationGame Programming. Bing-Yu Chen National Taiwan University
Game Programming Bing-Yu Chen National Taiwan University Character Motion Hierarchical Modeling Character Animation Motion Editing 1 Hierarchical Modeling Connected primitives 2 3D Example: A robot arm
More informationEECE 478. Learning Objectives. Learning Objectives. Rasterization & Scenes. Rasterization. Compositing
EECE 478 Rasterization & Scenes Rasterization Learning Objectives Be able to describe the complete graphics pipeline. Describe the process of rasterization for triangles and lines. Compositing Manipulate
More informationBuilding Visually Rich User Experiences
Session App Frameworks #WWDC17 Building Visually Rich User Experiences 235 Noah Witherspoon, Software Engineer Warren Moore, Software Engineer 2017 Apple Inc. All rights reserved. Redistribution or public
More informationShaders : the sky is the limit Sébastien Dominé NVIDIA Richard Stenson SCEA
Shaders : the sky is the limit Sébastien Dominé NVIDIA Richard Stenson SCEA Agenda FX Composer 2.0 Introductions Cross-Platform Shader Authoring FX Composer 2.0 and Production Pipelines PLAYSTATION 3 Production
More informationUnderwater Manager (Optional)
Underwater Shaders - Version 1.5 Thank you for purchasing Underwater Shaders! Underwater Manager (Optional) The Underwater Manager prefab can be dragged into your scene. It is a simple game object with
More informationMetal for OpenGL Developers
#WWDC18 Metal for OpenGL Developers Dan Omachi, Metal Ecosystem Engineer Sukanya Sudugu, GPU Software Engineer 2018 Apple Inc. All rights reserved. Redistribution or public display not permitted without
More informationContent. Building Geometry Appearance Lights Model Loaders
Content Building Geometry Appearance Lights Model Loaders Building Geometry A Geometry represents a 3D object: Mesh: The form or structure of a shape Material: The color, transparency, and shading of a
More informationMotivation MGB Agenda. Compression. Scalability. Scalability. Motivation. Tessellation Basics. DX11 Tessellation Pipeline
MGB 005 Agenda Motivation Tessellation Basics DX Tessellation Pipeline Instanced Tessellation Instanced Tessellation in DX0 Displacement Mapping Content Creation Compression Motivation Save memory and
More informationCHAPTER 1 Graphics Systems and Models 3
?????? 1 CHAPTER 1 Graphics Systems and Models 3 1.1 Applications of Computer Graphics 4 1.1.1 Display of Information............. 4 1.1.2 Design.................... 5 1.1.3 Simulation and Animation...........
More informationWhat s New in SpriteKit
Graphics and Games #WWDC16 What s New in SpriteKit Session 610 Ross Dexter Games Technologies Engineer Clément Boissière Games Technologies Engineer 2016 Apple Inc. All rights reserved. Redistribution
More informationWebGL Seminar: O3D. Alexander Lokhman Tampere University of Technology
WebGL Seminar: O3D Alexander Lokhman Tampere University of Technology What is O3D? O3D is an open source JavaScript API for creating rich, interactive 3D applications in the browser Created by Google and
More informationReal-Time Universal Capture Facial Animation with GPU Skin Rendering
Real-Time Universal Capture Facial Animation with GPU Skin Rendering Meng Yang mengyang@seas.upenn.edu PROJECT ABSTRACT The project implements the real-time skin rendering algorithm presented in [1], and
More informationIntroduction to Shaders.
Introduction to Shaders Marco Benvegnù hiforce@gmx.it www.benve.org Summer 2005 Overview Rendering pipeline Shaders concepts Shading Languages Shading Tools Effects showcase Setup of a Shader in OpenGL
More informationComputer graphics 2: Graduate seminar in computational aesthetics
Computer graphics 2: Graduate seminar in computational aesthetics Angus Forbes evl.uic.edu/creativecoding/cs526 Homework 2 RJ ongoing... - Follow the suggestions in the Research Journal handout and find
More information6.837 Introduction to Computer Graphics Final Exam Tuesday, December 20, :05-12pm Two hand-written sheet of notes (4 pages) allowed 1 SSD [ /17]
6.837 Introduction to Computer Graphics Final Exam Tuesday, December 20, 2011 9:05-12pm Two hand-written sheet of notes (4 pages) allowed NAME: 1 / 17 2 / 12 3 / 35 4 / 8 5 / 18 Total / 90 1 SSD [ /17]
More information3D Rendering Pipeline
3D Rendering Pipeline Reference: Real-Time Rendering 3 rd Edition Chapters 2 4 OpenGL SuperBible 6 th Edition Overview Rendering Pipeline Modern CG Inside a Desktop Architecture Shaders Tool Stage Asset
More informationDirectX 11 First Elements
DirectX 11 First Elements 0. Project changes changed Dx11Base.h void Update( float dt ); void Render( ); to virtual void Update( float dt ) = 0; virtual void Render( ) = 0; new App3D.h #ifndef _APP_3D_H_
More informationTransformation Hierarchies. CS 4620 Lecture 5
Transformation Hierarchies CS 4620 Lecture 5 2013 Steve Marschner 1 Data structures with transforms Representing a drawing ( scene ) List of objects Transform for each object can use minimal primitives:
More informationhttps://ilearn.marist.edu/xsl-portal/tool/d4e4fd3a-a3...
Assessment Preview - This is an example student view of this assessment done Exam 2 Part 1 of 5 - Modern Graphics Pipeline Question 1 of 27 Match each stage in the graphics pipeline with a description
More informationArt? 2 Computer Graphics 2 The Stages of Production 4 The CG Production Workflow 8 Core Concepts 10 Basic Film Concepts 21 Summary 26
Contents Introduction xvii Chapter 1 Introduction to Computer Graphics and 3D 1 Art? 2 Computer Graphics 2 The Stages of Production 4 The CG Production Workflow 8 Core Concepts 10 Basic Film Concepts 21
More informationRSX Best Practices. Mark Cerny, Cerny Games David Simpson, Naughty Dog Jon Olick, Naughty Dog
RSX Best Practices Mark Cerny, Cerny Games David Simpson, Naughty Dog Jon Olick, Naughty Dog RSX Best Practices About libgcm Using the SPUs with the RSX Brief overview of GCM Replay December 7 th, 2004
More informationWorking With Metal Advanced
Graphics and Games #WWDC14 Working With Metal Advanced Session 605 Gokhan Avkarogullari GPU Software Aaftab Munshi GPU Software Serhat Tekin GPU Software 2014 Apple Inc. All rights reserved. Redistribution
More informationHands-On Workshop: 3D Automotive Graphics on Connected Radios Using Rayleigh and OpenGL ES 2.0
Hands-On Workshop: 3D Automotive Graphics on Connected Radios Using Rayleigh and OpenGL ES 2.0 FTF-AUT-F0348 Hugo Osornio Luis Olea A P R. 2 0 1 4 TM External Use Agenda Back to the Basics! What is a GPU?
More informationcharacter design pipeline) callum.html
References: http://3d.about.com/od/3d-101-the-basics/tp/introducing-the-computer-graphics- Pipeline.htm (character design pipeline) http://cpapworthpp.blogspot.co.uk/2012/12/animation-production-pipelinecallum.html
More informationCS 352: Computer Graphics. Hierarchical Graphics, Modeling, And Animation
CS 352: Computer Graphics Hierarchical Graphics, Modeling, And Animation Chapter 9-2 Overview Modeling Animation Data structures for interactive graphics CSG-tree BSP-tree Quadtrees and Octrees Visibility
More informationResearch Method: I plan to research existing literature on the subject and conducting tests in the lab.
Personal Inquiry Proposal. Name: James Morgan Course: MA3D Animation Subject: Creating simple muscle solutions for game and animation in XSI. Brief Explanation: I plan to investigate a practical and simple
More informationScene Graphs. COMP 575/770 Fall 2010
Scene Graphs COMP 575/770 Fall 2010 1 Data structures with transforms Representing a drawing ( scene ) List of objects Transform for each object can use minimal primitives: ellipse is transformed circle
More informationEfficient GPU Rendering of Subdivision Surfaces. Tim Foley,
Efficient GPU Rendering of Subdivision Surfaces Tim Foley, 2017-03-02 Collaborators Activision Wade Brainerd Stanford Matthias Nießner NVIDIA Manuel Kraemer Henry Moreton 2 Subdivision surfaces are a powerful
More informationNext-Generation Graphics on Larrabee. Tim Foley Intel Corp
Next-Generation Graphics on Larrabee Tim Foley Intel Corp Motivation The killer app for GPGPU is graphics We ve seen Abstract models for parallel programming How those models map efficiently to Larrabee
More informationCOMP371 COMPUTER GRAPHICS
COMP371 COMPUTER GRAPHICS SESSION 12 PROGRAMMABLE SHADERS Announcement Programming Assignment #2 deadline next week: Session #7 Review of project proposals 2 Lecture Overview GPU programming 3 GPU Pipeline
More informationEngineering Real- Time Applications with Wild Magic
3D GAME ENGINE ARCHITECTURE Engineering Real- Time Applications with Wild Magic DAVID H. EBERLY Geometric Tools, Inc. AMSTERDAM BOSTON HEIDELRERG LONDON NEW YORK OXFORD PARIS SAN DIEGO SAN FRANCISCO SINGAPORE
More informationCMSC 425: Lecture 10 Skeletal Animation and Skinning
CMSC 425: Lecture 10 Skeletal Animation and Skinning Reading: Chapt 11 of Gregory, Game Engine Architecture. Recap: Last time we introduced the principal elements of skeletal models and discussed forward
More informationChapter 5 - The Scene Graph
Chapter 5 - The Scene Graph Why a scene graph? What is stored in the scene graph? objects appearance camera lights Rendering with a scene graph Practical example 1 The 3D Rendering Pipeline (our version
More informationReal - Time Rendering. Graphics pipeline. Michal Červeňanský Juraj Starinský
Real - Time Rendering Graphics pipeline Michal Červeňanský Juraj Starinský Overview History of Graphics HW Rendering pipeline Shaders Debugging 2 History of Graphics HW First generation Second generation
More informationLearning Autodesk Maya The Modeling & Animation Handbook. Free Models From Turbo Squid Value US $ Official Autodesk Training Guide
Free Models From Turbo Squid Value US $239.00 Official Autodesk Training Guide Learning Autodesk Maya 2008 The Modeling & Animation Handbook A hands-on introduction to key tools and techniques in Autodesk
More informationCharacter animation Christian Miller CS Fall 2011
Character animation Christian Miller CS 354 - Fall 2011 Exam 2 grades Avg = 74.4, std. dev. = 14.4, min = 42, max = 99 Characters Everything is important in an animation But people are especially sensitive
More informationCS230 : Computer Graphics Lecture 4. Tamar Shinar Computer Science & Engineering UC Riverside
CS230 : Computer Graphics Lecture 4 Tamar Shinar Computer Science & Engineering UC Riverside Shadows Shadows for each pixel do compute viewing ray if ( ray hits an object with t in [0, inf] ) then compute
More informationGame Graphics & Real-time Rendering
Game Graphics & Real-time Rendering CMPM 163, W2018 Prof. Angus Forbes (instructor) angus@ucsc.edu Lucas Ferreira (TA) lferreira@ucsc.edu creativecoding.soe.ucsc.edu/courses/cmpm163 github.com/creativecodinglab
More informationMount Points Mount Points is a super simple tool for connecting objects together and managing those relationships.
Mount Points Mount Points is a super simple tool for connecting objects together and managing those relationships. With Mount Points, you can simply drag two objects together and when their mount points
More informationM3G Overview. Tomi Aarnio Nokia Research Center
1 M3G Overview Tomi Aarnio Nokia Research Center 2 Objectives Get an idea of the API structure and feature set Learn practical tricks not found in the spec 3 Prerequisites Fundamentals of 3D graphics Some
More informationHierarchical Modeling and scene graphs
Hierarchical Modeling and scene graphs Overview Examine the limitations of linear modeling Introduce hierarchical models Introduce Tree and DAG models Build a tree-structured model of a humanoid figure
More informationPipeline Operations. CS 4620 Lecture Steve Marschner. Cornell CS4620 Spring 2018 Lecture 11
Pipeline Operations CS 4620 Lecture 11 1 Pipeline you are here APPLICATION COMMAND STREAM 3D transformations; shading VERTEX PROCESSING TRANSFORMED GEOMETRY conversion of primitives to pixels RASTERIZATION
More informationAnimations. Hakan Bilen University of Edinburgh. Computer Graphics Fall Some slides are courtesy of Steve Marschner and Kavita Bala
Animations Hakan Bilen University of Edinburgh Computer Graphics Fall 2017 Some slides are courtesy of Steve Marschner and Kavita Bala Animation Artistic process What are animators trying to do? What tools
More informationViewport 2.0 API Porting Guide for Locators
Viewport 2.0 API Porting Guide for Locators Introduction This document analyzes the choices for porting plug-in locators (MPxLocatorNode) to Viewport 2.0 mostly based on the following factors. Portability:
More informationEasy Decal Version Easy Decal. Operation Manual. &u - Assets
Easy Decal Operation Manual 1 All information provided in this document is subject to change without notice and does not represent a commitment on the part of &U ASSETS. The software described by this
More informationMixamo Maya-Auto-Control-Rig
Mixamo Maya-Auto-Control-Rig The Maya-Auto-Control-Rig is a tool designed for animators to automatically rig a character for Maya and help animate it using keyframing or external sources of animation data.
More informationToday s Agenda. Basic design of a graphics system. Introduction to OpenGL
Today s Agenda Basic design of a graphics system Introduction to OpenGL Image Compositing Compositing one image over another is most common choice can think of each image drawn on a transparent plastic
More informationCS 775: Advanced Computer Graphics. Lecture 4: Skinning
CS 775: Advanced Computer Graphics Lecture 4: http://www.okino.com/conv/skinning.htm Binding Binding Always done in a standard rest or bind pose. Binding Always done in a standard rest or bind pose. Associate
More informationRyan Marcotte CS 499 (Honours Seminar) March 16, 2011
Ryan Marcotte www.cs.uregina.ca/~marcottr CS 499 (Honours Seminar) March 16, 2011 Outline Introduction to the problem Basic principles of skeletal animation, tag points Description of animation algorithm
More informationDirect Rendering of Trimmed NURBS Surfaces
Direct Rendering of Trimmed NURBS Surfaces Hardware Graphics Pipeline 2/ 81 Hardware Graphics Pipeline GPU Video Memory CPU Vertex Processor Raster Unit Fragment Processor Render Target Screen Extended
More informationB x. Interoperability Chart Version 2011 LEGEND. Perfect compatibility. Data (Converted) compatibility. Emulated (Bake) compatibility.
Interoperability Chart Version 2011 LEGEND Perfect compatibility Data passed from a source application is recognized by the destination application, yielding identical results. Data (Converted) compatibility
More informationCraig Peeper Software Architect Windows Graphics & Gaming Technologies Microsoft Corporation
Gaming Technologies Craig Peeper Software Architect Windows Graphics & Gaming Technologies Microsoft Corporation Overview Games Yesterday & Today Game Components PC Platform & WGF 2.0 Game Trends Big Challenges
More informationB-KD Trees for Hardware Accelerated Ray Tracing of Dynamic Scenes
B-KD rees for Hardware Accelerated Ray racing of Dynamic Scenes Sven Woop Gerd Marmitt Philipp Slusallek Saarland University, Germany Outline Previous Work B-KD ree as new Spatial Index Structure DynR
More informationEnhancing Traditional Rasterization Graphics with Ray Tracing. March 2015
Enhancing Traditional Rasterization Graphics with Ray Tracing March 2015 Introductions James Rumble Developer Technology Engineer Ray Tracing Support Justin DeCell Software Design Engineer Ray Tracing
More informationCS 381 Computer Graphics, Fall 2012 Midterm Exam Solutions. The Midterm Exam was given in class on Tuesday, October 16, 2012.
CS 381 Computer Graphics, Fall 2012 Midterm Exam Solutions The Midterm Exam was given in class on Tuesday, October 16, 2012. 1. [7 pts] Synthetic-Camera Model. Describe the Synthetic-Camera Model : how
More informationTutorial: Exporting characters (Max)
Tutorial: Exporting characters (Max) This tutorial walks you through the steps needed to get a character into Lumberyard, including how to export the character s skin, skeleton and material. Character
More informationBuilding scalable 3D applications. Ville Miettinen Hybrid Graphics
Building scalable 3D applications Ville Miettinen Hybrid Graphics What s going to happen... (1/2) Mass market: 3D apps will become a huge success on low-end and mid-tier cell phones Retro-gaming New game
More informationSkinned Instancing. Bryan Dudash
Skinned Instancing Bryan Dudash bdudash@nvidia.com 14 February 2007 Document Change History Version Date Responsible Reason for Change 1.0 2/14/07 Bryan Dudash Initial release 2.0 7/26/07 Bryan Dudash
More informationCopyright Khronos Group Page 1
Gaming Market Briefing Overview of APIs GDC March 2016 Neil Trevett Khronos President NVIDIA Vice President Developer Ecosystem ntrevett@nvidia.com @neilt3d Copyright Khronos Group 2016 - Page 1 Copyright
More informationPipeline Operations. CS 4620 Lecture 14
Pipeline Operations CS 4620 Lecture 14 2014 Steve Marschner 1 Pipeline you are here APPLICATION COMMAND STREAM 3D transformations; shading VERTEX PROCESSING TRANSFORMED GEOMETRY conversion of primitives
More informationPipeline and Modeling Guidelines
Li kewhatyou see? Buyt hebookat t hefocalbookst or e Char act ermodel i ng wi t h Mayaand ZBr ush Jason Pat node ISBN 9780240520346 CH01-K52034.indd viii 12/4/07 1:52:00 PM CHAPTER 1 Pipeline and Modeling
More informationCS345/DIGM465: Computer Game Development: Understanding Torque
CS345/DIGM465: Computer Game Development: Understanding Torque Will Muto Digital Media Drexel University Tribal Trouble, Gish, & ThinkTanks Introduction Cost: $150-$749 Royalties: None Scripting language:
More informationContent Loader Introduction
Content Loader Introduction by G.Paskaleva Vienna University of Technology Model Formats Quake II / III (md2 / md3, md4) Doom 3 (md5) FBX Ogre XML Collada (dae) Wavefront (obj) 1 Must-Have Geometry Information
More information3D Modeling: Skinning
3D Modeling: Skinning CITS3003 Graphics & Animation Thanks to both Richard McKenna and Marco Gillies for permission to use their slides as a base. The second half of this lecture was extracted from the
More informationmove object resize object create a sphere create light source camera left view camera view animation tracks
Computer Graphics & Animation: CS Day @ SIUC This session explores computer graphics and animation using software that will let you create, display and animate 3D Objects. Basically we will create a 3
More informationHierarchical Modeling
Hierarchical Modeling Geometric Primitives Remember that most graphics APIs have only a few geometric primitives Spheres, cubes, triangles, etc These primitives are instanced in order to apply transforms
More information3D Modelling: Animation Fundamentals & Unit Quaternions
3D Modelling: Animation Fundamentals & Unit Quaternions CITS3003 Graphics & Animation Thanks to both Richard McKenna and Marco Gillies for permission to use their slides as a base. Static objects are boring
More informationGAM 223 Game Design Workshop. Project 3D Maze Level Design DUE DATE: / / Design, Modeling & UV unwrapping
GAM 223 Game Design Workshop Project 3D Maze Level Design DUE DATE: / / Design, Modeling & UV unwrapping Creating games like creating movies needs actors, sets, scripts, sounds and effects. However, first
More informationOPENGL RENDERING PIPELINE
CPSC 314 03 SHADERS, OPENGL, & JS UGRAD.CS.UBC.CA/~CS314 Textbook: Appendix A* (helpful, but different version of OpenGL) Alla Sheffer Sep 2016 OPENGL RENDERING PIPELINE 1 OPENGL RENDERING PIPELINE Javascript
More informationCS 354R: Computer Game Technology
CS 354R: Computer Game Technology Texture and Environment Maps Fall 2018 Texture Mapping Problem: colors, normals, etc. are only specified at vertices How do we add detail between vertices without incurring
More informationShaders (some slides taken from David M. course)
Shaders (some slides taken from David M. course) Doron Nussbaum Doron Nussbaum COMP 3501 - Shaders 1 Traditional Rendering Pipeline Traditional pipeline (older graphics cards) restricts developer to texture
More informationStreaming Massive Environments From Zero to 200MPH
FORZA MOTORSPORT From Zero to 200MPH Chris Tector (Software Architect Turn 10 Studios) Turn 10 Internal studio at Microsoft Game Studios - we make Forza Motorsport Around 70 full time staff 2 Why am I
More informationCS451Real-time Rendering Pipeline
1 CS451Real-time Rendering Pipeline JYH-MING LIEN DEPARTMENT OF COMPUTER SCIENCE GEORGE MASON UNIVERSITY Based on Tomas Akenine-Möller s lecture note You say that you render a 3D 2 scene, but what does
More information