From Art to Engine with Model I/O

Size: px
Start display at page:

Download "From Art to Engine with Model I/O"

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

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 information

Breathing 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) 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 information

Understanding 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 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 information

CS354 Computer Graphics Character Animation and Skinning

CS354 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 information

Metal for Ray Tracing Acceleration

Metal 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 information

SceneKit in Swift Playgrounds

SceneKit 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 information

Tutorial: Accessing Maya tools

Tutorial: 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 information

Zappar's coordinate system is based on the center of the scene being the center of the target image.

Zappar'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 information

SceneKit: What s New Session 604

SceneKit: 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 information

3D Production Pipeline

3D 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 information

Working with Metal Overview

Working 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 information

Tutorial: Exporting characters (Maya)

Tutorial: 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 information

gltf - 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 - 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 information

CGDD 4113 Final Review. Chapter 7: Maya Shading and Texturing

CGDD 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 information

You can also export a video of what one of the cameras in the scene was seeing while you were recording your animations.[2]

You 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 information

Integrating 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: 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 information

Introducing Metal 2. Graphics and Games #WWDC17. Michal Valient, GPU Software Engineer Richard Schreyer, GPU Software Engineer

Introducing 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 information

1 INTRoduCTIon to BLENDER 1. 3 PREPARATIon 19

1 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 information

Chapter 9 Animation System

Chapter 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 information

MODELING AND HIERARCHY

MODELING 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 information

Integrating Apps and Content with AR Quick Look

Integrating 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 information

Content. Building Geometry Appearance Lights Model Loaders

Content. 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 information

Lesson 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

Lesson 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 information

The Application Stage. The Game Loop, Resource Management and Renderer Design

The 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 information

About the FBX Exporter package

About 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 information

Building a Game with SceneKit

Building 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 information

VISIT FOR THE LATEST UPDATES, FORUMS & MORE ASSETS.

VISIT  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 information

Game Programming. Bing-Yu Chen National Taiwan University

Game 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 information

EECE 478. Learning Objectives. Learning Objectives. Rasterization & Scenes. Rasterization. Compositing

EECE 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 information

Building Visually Rich User Experiences

Building 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 information

Shaders : 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 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 information

Underwater Manager (Optional)

Underwater 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 information

Metal for OpenGL Developers

Metal 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 information

Content. Building Geometry Appearance Lights Model Loaders

Content. 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 information

Motivation MGB Agenda. Compression. Scalability. Scalability. Motivation. Tessellation Basics. DX11 Tessellation Pipeline

Motivation 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 information

CHAPTER 1 Graphics Systems and Models 3

CHAPTER 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 information

What s New in SpriteKit

What 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 information

WebGL Seminar: O3D. Alexander Lokhman Tampere University of Technology

WebGL 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 information

Real-Time Universal Capture Facial Animation with GPU Skin Rendering

Real-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 information

Introduction to Shaders.

Introduction 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 information

Computer graphics 2: Graduate seminar in computational aesthetics

Computer 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 information

6.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, :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 information

3D Rendering Pipeline

3D 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 information

DirectX 11 First Elements

DirectX 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 information

Transformation Hierarchies. CS 4620 Lecture 5

Transformation 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 information

https://ilearn.marist.edu/xsl-portal/tool/d4e4fd3a-a3...

https://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 information

Art? 2 Computer Graphics 2 The Stages of Production 4 The CG Production Workflow 8 Core Concepts 10 Basic Film Concepts 21 Summary 26

Art? 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 information

RSX 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 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 information

Working With Metal Advanced

Working 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 information

Hands-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 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 information

character design pipeline) callum.html

character 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 information

CS 352: Computer Graphics. Hierarchical Graphics, Modeling, And Animation

CS 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 information

Research Method: I plan to research existing literature on the subject and conducting tests in the lab.

Research 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 information

Scene Graphs. COMP 575/770 Fall 2010

Scene 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 information

Efficient GPU Rendering of Subdivision Surfaces. Tim Foley,

Efficient 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 information

Next-Generation Graphics on Larrabee. Tim Foley Intel Corp

Next-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 information

COMP371 COMPUTER GRAPHICS

COMP371 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 information

Engineering Real- Time Applications with Wild Magic

Engineering 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 information

CMSC 425: Lecture 10 Skeletal Animation and Skinning

CMSC 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 information

Chapter 5 - The Scene Graph

Chapter 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 information

Real - Time Rendering. Graphics pipeline. Michal Červeňanský Juraj Starinský

Real - 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 information

Learning Autodesk Maya The Modeling & Animation Handbook. Free Models From Turbo Squid Value US $ Official Autodesk Training Guide

Learning 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 information

Character animation Christian Miller CS Fall 2011

Character 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 information

CS230 : Computer Graphics Lecture 4. Tamar Shinar Computer Science & Engineering UC Riverside

CS230 : 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 information

Game Graphics & Real-time Rendering

Game 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 information

Mount 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. 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 information

M3G Overview. Tomi Aarnio Nokia Research Center

M3G 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 information

Hierarchical Modeling and scene graphs

Hierarchical 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 information

Pipeline Operations. CS 4620 Lecture Steve Marschner. Cornell CS4620 Spring 2018 Lecture 11

Pipeline 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 information

Animations. 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 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 information

Viewport 2.0 API Porting Guide for Locators

Viewport 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 information

Easy Decal Version Easy Decal. Operation Manual. &u - Assets

Easy 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 information

Mixamo Maya-Auto-Control-Rig

Mixamo 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 information

Today s Agenda. Basic design of a graphics system. Introduction to OpenGL

Today 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 information

CS 775: Advanced Computer Graphics. Lecture 4: Skinning

CS 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 information

Ryan Marcotte CS 499 (Honours Seminar) March 16, 2011

Ryan 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 information

Direct Rendering of Trimmed NURBS Surfaces

Direct 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 information

B x. Interoperability Chart Version 2011 LEGEND. Perfect compatibility. Data (Converted) compatibility. Emulated (Bake) compatibility.

B 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 information

Craig Peeper Software Architect Windows Graphics & Gaming Technologies Microsoft Corporation

Craig 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 information

B-KD Trees for Hardware Accelerated Ray Tracing of Dynamic Scenes

B-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 information

Enhancing Traditional Rasterization Graphics with Ray Tracing. March 2015

Enhancing 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 information

CS 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. 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 information

Tutorial: Exporting characters (Max)

Tutorial: 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 information

Building scalable 3D applications. Ville Miettinen Hybrid Graphics

Building 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 information

Skinned Instancing. Bryan Dudash

Skinned 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 information

Copyright Khronos Group Page 1

Copyright 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 information

Pipeline Operations. CS 4620 Lecture 14

Pipeline 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 information

Pipeline and Modeling Guidelines

Pipeline 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 information

CS345/DIGM465: Computer Game Development: Understanding Torque

CS345/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 information

Content Loader Introduction

Content 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 information

3D Modeling: Skinning

3D 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 information

move object resize object create a sphere create light source camera left view camera view animation tracks

move 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 information

Hierarchical Modeling

Hierarchical 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 information

3D Modelling: Animation Fundamentals & Unit Quaternions

3D 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 information

GAM 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 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 information

OPENGL RENDERING PIPELINE

OPENGL 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 information

CS 354R: Computer Game Technology

CS 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 information

Shaders (some slides taken from David M. course)

Shaders (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 information

Streaming Massive Environments From Zero to 200MPH

Streaming 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 information

CS451Real-time Rendering Pipeline

CS451Real-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