Gaming Technologies Craig Peeper Software Architect Windows Graphics & Gaming Technologies Microsoft Corporation Craig Peeper Software Architect Windows.

Slides:



Advertisements
Similar presentations
Real-Time Rendering 靜宜大學資工研究所 蔡奇偉副教授 2010©.
Advertisements

COMPUTER GRAPHICS CS 482 – FALL 2014 NOVEMBER 10, 2014 GRAPHICS HARDWARE GRAPHICS PROCESSING UNITS PARALLELISM.
Understanding the graphics pipeline Lecture 2 Original Slides by: Suresh Venkatasubramanian Updates by Joseph Kider.
RealityEngine Graphics Kurt Akeley Silicon Graphics Computer Systems.
The Programmable Graphics Hardware Pipeline Doug James Asst. Professor CS & Robotics.
Damon Rocco.  Tessellation: The filling of a plane with polygons such that there is no overlap or gap.  In computer graphics objects are rendered as.
Rasterization and Ray Tracing in Real-Time Applications (Games) Andrew Graff.
Computer Graphics Hardware Acceleration for Embedded Level Systems Brian Murray
3D Graphics Processor Architecture Victor Moya. PhD Project Research on architecture improvements for future Graphic Processor Units (GPUs). Research.
IN4151 Introduction 3D graphics 1 Introduction to 3D computer graphics part 2 Viewing pipeline Multi-processor implementation GPU architecture GPU algorithms.
The Graphics Pipeline CS2150 Anthony Jones. Introduction What is this lecture about? – The graphics pipeline as a whole – With examples from the video.
1 Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005 Models and Architectures Ed Angel Professor of Computer Science, Electrical and Computer.
AGD: 5. Game Arch.1 Objective o to discuss some of the main game architecture elements, rendering, and the game loop Animation and Games Development.
0 Real-time Graphics: Issues and Trends in Games Tobi Saulnier CEO, 1 st Playable Productions November 5, 2007 Computer Graphics, Fall 2007.
GPU Graphics Processing Unit. Graphics Pipeline Scene Transformations Lighting & Shading ViewingTransformations Rasterization GPUs evolved as hardware.
High Performance in Broad Reach Games Chas. Boyd
CSE 381 – Advanced Game Programming Basic 3D Graphics
Interactive Rendering of Meso-structure Surface Details using Semi-transparent 3D Textures Vision, Modeling, Visualization Erlangen, Germany November 16-18,
Computer Graphics An Introduction. What’s this course all about? 06/10/2015 Lecture 1 2 We will cover… Graphics programming and algorithms Graphics data.
Interactive Time-Dependent Tone Mapping Using Programmable Graphics Hardware Nolan GoodnightGreg HumphreysCliff WoolleyRui Wang University of Virginia.
09/11/03CS679 - Fall Copyright Univ. of Wisconsin Last Time Graphics Pipeline Texturing Overview Cubic Environment Mapping.
CS 450: COMPUTER GRAPHICS REVIEW: INTRODUCTION TO COMPUTER GRAPHICS – PART 2 SPRING 2015 DR. MICHAEL J. REALE.
Multimedia Software Tools. 3-D Modeling and Animation Tools 3-D modeling gives images a 3-dimensional look. It can be used along with animation, for instance,
CSC 461: Lecture 3 1 CSC461 Lecture 3: Models and Architectures  Objectives –Learn the basic design of a graphics system –Introduce pipeline architecture.
1 Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science.
Stream Processing Main References: “Comparing Reyes and OpenGL on a Stream Architecture”, 2002 “Polygon Rendering on a Stream Architecture”, 2000 Department.
1Computer Graphics Lecture 4 - Models and Architectures John Shearer Culture Lab – space 2
Tone Mapping on GPUs Cliff Woolley University of Virginia Slides courtesy Nolan Goodnight.
Maths & Technologies for Games DirectX 11 – New Features Tessellation & Displacement Mapping CO3303 Week 19.
Shader Study 이동현. Vision engine   Games Helldorado The Show Warlord.
Ritual ™ Entertainment: Next-Gen Effects on Direct3D ® 10 Sam Z. Glassenberg Program Manager Microsoft ® – Direct3D ® Doug Service Director of Technology.
Xbox MB system memory IBM 3-way symmetric core processor ATI GPU with embedded EDRAM 12x DVD Optional Hard disk.
09/16/03CS679 - Fall Copyright Univ. of Wisconsin Last Time Environment mapping Light mapping Project Goals for Stage 1.
- Laboratoire d'InfoRmatique en Image et Systèmes d'information
Subject Name: Computer Graphics Subject Code: Textbook: “Computer Graphics”, C Version By Hearn and Baker Credits: 6 1.
A SEMINAR ON 1 CONTENT 2  The Stream Programming Model  The Stream Programming Model-II  Advantage of Stream Processor  Imagine’s.
Computer Graphics 3 Lecture 6: Other Hardware-Based Extensions Benjamin Mora 1 University of Wales Swansea Dr. Benjamin Mora.
Maths & Technologies for Games Graphics Optimisation - Batching CO3303 Week 5.
GAM666 – Introduction To Game Programming ● Programmer's perspective of Game Industry ● Introduction to Windows Programming ● 2D animation using DirectX.
COMPUTER GRAPHICS CS 482 – FALL 2015 SEPTEMBER 29, 2015 RENDERING RASTERIZATION RAY CASTING PROGRAMMABLE SHADERS.
Emerging Technologies for Games Capability Testing and DirectX10 Features CO3301 Week 6.
What are shaders? In the field of computer graphics, a shader is a computer program that runs on the graphics processing unit(GPU) and is used to do shading.
UW EXTENSION CERTIFICATE PROGRAM IN GAME DEVELOPMENT 2 ND QUARTER: ADVANCED GRAPHICS The GPU.
Chapter 1 Graphics Systems and Models Models and Architectures.
1 E. Angel and D. Shreiner: Interactive Computer Graphics 6E © Addison-Wesley 2012 Models and Architectures 靜宜大學 資訊工程系 蔡奇偉 副教授 2012.
Postmortem: Deferred Shading in Tabula Rasa Rusty Koonce NCsoft September 15, 2008.
1© 2009 Autodesk Hardware Shade – Presenting Your Designs Hardware and Software Shading HW Shade Workflow Tessellation Quality Settings Lighting Settings.
1 Geometry for Game. Geometry Geometry –Position / vertex normals / vertex colors / texture coordinates Topology Topology –Primitive »Lines / triangles.
Chapter 10: Computer Graphics
COMPUTER GRAPHICS CHAPTER 38 CS 482 – Fall 2017 GRAPHICS HARDWARE
- Introduction - Graphics Pipeline
Chapter 1 An overview on Computer Graphics
Chapter 10 Computer Graphics
Computer Graphics Lecture 32
Chapter 1 An overview on Computer Graphics
Graphics Processing Unit
Chapter 6 GPU, Shaders, and Shading Languages
The Graphics Rendering Pipeline
Understanding Theory and application of 3D
Models and Architectures
Models and Architectures
Models and Architectures
Introduction to Computer Graphics with WebGL
Graphics Processing Unit
UMBC Graphics for Games
Models and Architectures
Game Engines Non-game specific technology Game: Engine
Models and Architectures
RADEON™ 9700 Architecture and 3D Performance
Computer Graphics Introduction to Shaders
Presentation transcript:

Gaming Technologies Craig Peeper Software Architect Windows Graphics & Gaming Technologies Microsoft Corporation 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 in Game Creation Summary Games Yesterday & Today Game Components PC Platform & WGF 2.0 Game Trends Big Challenges in Game Creation Summary

Games Yesterday & Today Quake Far Cry Prince of Persia Age of Empires III Max Payne Doom

Platform Game Components Content + Engine

Content Components story scripting animation texturing / surfacing lighting Content as well as … user interface modeling effects level design sound visual technologies

Content Creation Tool driven Combination of tools forms “Art Pipeline” Character Pipeline 3D Model/Sculpting Animation/Rigging Skinning Texturing Lighting/Shading An artist often specializes on one part of pipeline Tool driven Combination of tools forms “Art Pipeline” Character Pipeline 3D Model/Sculpting Animation/Rigging Skinning Texturing Lighting/Shading An artist often specializes on one part of pipeline

Game Engine Components AI Physics Audio Graphics Networking + I/O Engine as well as … installation patching resource management multithreading disk i/o state save/restore

Game Engines Studio chooses to build or buy Quake Source, Unreal engines Renderware, Gamebryo middleware Often come with great authoring tools (level editors, etc.) Componentized software May buy specialized components How many people can write a physics engine? Video codecs, etc Engine may be optimized for game genre/style Engine bounds range of content Global illumination, terrain, indoor scenes Studio chooses to build or buy Quake Source, Unreal engines Renderware, Gamebryo middleware Often come with great authoring tools (level editors, etc.) Componentized software May buy specialized components How many people can write a physics engine? Video codecs, etc Engine may be optimized for game genre/style Engine bounds range of content Global illumination, terrain, indoor scenes

Game Platform Components CPU + Memory Storage Audio Graphics Networking + Input SW + HW Platform

Game Platforms Console 10M – 100M installed base “fixed platform” Moderately powerful hardware Standard & High definition video resolution (1080i, 720p) Controller, wheel (& keyboard, mouse) input Refreshed every 4-5 years 10’ experience on TV Console 10M – 100M installed base “fixed platform” Moderately powerful hardware Standard & High definition video resolution (1080i, 720p) Controller, wheel (& keyboard, mouse) input Refreshed every 4-5 years 10’ experience on TV

Game Platforms (cont.) PC 600M installed base (running Microsoft Windows) Non-uniform platform (video cards, memory, CPU) Most powerful hardware Least powerful too Very high resolution (1600x1200, 1920x1080, …) Keyboard, mouse (& controller) input 2’ & 10’ (desk vs living room) Notebook (portable gaming) Upgraded yearly! PC 600M installed base (running Microsoft Windows) Non-uniform platform (video cards, memory, CPU) Most powerful hardware Least powerful too Very high resolution (1600x1200, 1920x1080, …) Keyboard, mouse (& controller) input 2’ & 10’ (desk vs living room) Notebook (portable gaming) Upgraded yearly!

Other Platforms Hand-held Dedicated consoles (PSP, Gameboy) Controller-like input Mobile phones 700M phones/year Non-uniform platform Keypad input Modest resolution (320x200 … 640x480) 1995-class PC graphics Arcade Industrial version of home console? Hand-held Dedicated consoles (PSP, Gameboy) Controller-like input Mobile phones 700M phones/year Non-uniform platform Keypad input Modest resolution (320x200 … 640x480) 1995-class PC graphics Arcade Industrial version of home console?

PC as a Platform Large installed base Least expensive to publish on No platform royalties Large hw variation, rapidly evolving Large number of support calls Supports rapid innovation Profit from selling PC hardware! Games must span variability Influences content & engine Reach versus development cost Challenges Abstract hardware differences in platform Support innovation Large installed base Least expensive to publish on No platform royalties Large hw variation, rapidly evolving Large number of support calls Supports rapid innovation Profit from selling PC hardware! Games must span variability Influences content & engine Reach versus development cost Challenges Abstract hardware differences in platform Support innovation

New Direction for PC Platform Reduce “unnecessary” hardware variation Programmable hardware causes new problems Shading programs are part of content not engine Shading programs more complex Content must be portable & reusable Approach: Specify details that matter Representation, precision, accuracy Don’t specify non-observable implementation details Use virtual machine model Reduce “unnecessary” hardware variation Programmable hardware causes new problems Shading programs are part of content not engine Shading programs more complex Content must be portable & reusable Approach: Specify details that matter Representation, precision, accuracy Don’t specify non-observable implementation details Use virtual machine model

Windows Graphics Foundation 2.0 Maintain consistent feature set Eliminate capability bits (optional features) Well defined behavior Multiple implementations produce same result E.g., IEEE-754 arithmetic Migrate legacy fixed functions to shaders Fixed-function lighting, alpha test, etc Consistent shader programming model Vertex and pixel shaders use common instruction set Obsolete assembly level programming Add optimizations where large benefit Scenario-specific formats (high dynamic range, normal maps) Maintain consistent feature set Eliminate capability bits (optional features) Well defined behavior Multiple implementations produce same result E.g., IEEE-754 arithmetic Migrate legacy fixed functions to shaders Fixed-function lighting, alpha test, etc Consistent shader programming model Vertex and pixel shaders use common instruction set Obsolete assembly level programming Add optimizations where large benefit Scenario-specific formats (high dynamic range, normal maps)

Innovation in WGF 2.0 Integer & floating-point processing More general data flow Stream out to memory after vertex processing Unify textures, render targets, vertex buffers “Arrayed” resources Select array element to render to in shader Enables single-pass render to cube map New pipeline stage (geometry shader) Whole-primitive processing Integer & floating-point processing More general data flow Stream out to memory after vertex processing Unify textures, render targets, vertex buffers “Arrayed” resources Select array element to render to in shader Enables single-pass render to cube map New pipeline stage (geometry shader) Whole-primitive processing

Geometry Shader Shader stage that “sees” whole primitive 3 vertices of a triangle (or 2 vertices of a line) As well as adjacency (6 vertices per triangle) Can compute per-primitive data Pass to pixel shader Barycentric parameters Plane equations Can amplify data Extrude edges, expand points, generate shells Find silhouette edges Limited amplification (not a general tessellator) Shader stage that “sees” whole primitive 3 vertices of a triangle (or 2 vertices of a line) As well as adjacency (6 vertices per triangle) Can compute per-primitive data Pass to pixel shader Barycentric parameters Plane equations Can amplify data Extrude edges, expand points, generate shells Find silhouette edges Limited amplification (not a general tessellator)

WGF 2.0 Pipeline Vertex Buffer Input Assembler Vertex Shader Setup Rasterizer Output Merger Pixel Shader Geometry Shader Index Buffer Texture Render Target Depth Stencil Texture Stream Buffer Stream out Memory memory programmable fixed Sampler Constant

Game Trends Record sales Visually stunning titles Half Life 2, Halo 2, Far Cry, Doom 3 Largest worlds Most detailed levels of realism Not just graphics: AI, physics, animation Longest development times Largest development costs Bulk of cost in producing content Increasing ratio of artists : programmers Record sales Visually stunning titles Half Life 2, Halo 2, Far Cry, Doom 3 Largest worlds Most detailed levels of realism Not just graphics: AI, physics, animation Longest development times Largest development costs Bulk of cost in producing content Increasing ratio of artists : programmers

Trends - Software Demand for larger worlds Demand for more detail Floppies vs CDs vs DVDs → HALO2 4.2GB HD-DVD/Blueray → 20GB Rising development cost Content creation is the bottleneck $10M content budget Art Pipeline is not scaling Amortize cost over multiple platforms Demand for larger worlds Demand for more detail Floppies vs CDs vs DVDs → HALO2 4.2GB HD-DVD/Blueray → 20GB Rising development cost Content creation is the bottleneck $10M content budget Art Pipeline is not scaling Amortize cost over multiple platforms

Trends – Hardware CPU performance Clock speed brick wall Transition to “multi-core” CPUs Games are CPU-limited Games are tuned until they are not GPU-limited PC & consoles GPU performance 2x increase every 2 years CPU performance Clock speed brick wall Transition to “multi-core” CPUs Games are CPU-limited Games are tuned until they are not GPU-limited PC & consoles GPU performance 2x increase every 2 years

Hardware Lots of Room To Grow? Enthusiast GPU today (soon): 1-2 Teraflops nm ~ M transistors ~80 Watts Increasing attention on power efficiency Enthusiast GPU today (soon): 1-2 Teraflops nm ~ M transistors ~80 Watts Increasing attention on power efficiency

Game Development Challenges Creating & Managing Detail Scalable process for content creation CPU overload Multi-core not a panacea Volume of data Effective run-time management of data Tool power & expressiveness Traditional tools not powerful enough Creating & Managing Detail Scalable process for content creation CPU overload Multi-core not a panacea Volume of data Effective run-time management of data Tool power & expressiveness Traditional tools not powerful enough

GPU as Solution How best to use performance increases? CPU bottlenecks Offload more processing to the GPU? Simulations, physics? Content Support greater detail Don’t create more work for artists Procedural detail? How best to use performance increases? CPU bottlenecks Offload more processing to the GPU? Simulations, physics? Content Support greater detail Don’t create more work for artists Procedural detail?

Procedural Detail Techniques used in film production Scene Composition & Post Processing Translucency & Antialiasing Filter & Blend Texture Detail Procedural generation Modeling & Animation Tessellation + Displacement/Normal Maps Techniques used in film production Scene Composition & Post Processing Translucency & Antialiasing Filter & Blend Texture Detail Procedural generation Modeling & Animation Tessellation + Displacement/Normal Maps

Scene Composition & Post “Post” effects becoming common place HDR, bloom, tints, grain, motion blur, depth of field …. Global atmosphere Don’t merge into individual assets Next step, on the fly Apply to individual scene elements Composite scene elements together Use to “break up” the scene – detailing “Post” effects becoming common place HDR, bloom, tints, grain, motion blur, depth of field …. Global atmosphere Don’t merge into individual assets Next step, on the fly Apply to individual scene elements Composite scene elements together Use to “break up” the scene – detailing

Composition Commonly use render target blending Porter-Duff composition More generally use pixel shader to Apply curves and filters (blurs) Limiting factors Performance Transparency & depth compositing Commonly use render target blending Porter-Duff composition More generally use pixel shader to Apply curves and filters (blurs) Limiting factors Performance Transparency & depth compositing

Transparency Traditionally render back to front with blend Sort on CPU Interactions with other algorithms (e.g., shadows) Different algorithms for Objects with feathered edges (trees) Transparent objects (windows) Volumetric effects (particle systems) Opacity versus Coverage Use alpha to represent both Can we solve with hardware? Traditionally render back to front with blend Sort on CPU Interactions with other algorithms (e.g., shadows) Different algorithms for Objects with feathered edges (trees) Transparent objects (windows) Volumetric effects (particle systems) Opacity versus Coverage Use alpha to represent both Can we solve with hardware?

Unsorted Transparency Traditionally solved with a-buffer algorithm Save all of the pixel fragments for each pixel Resolve at end of frame Arbitrary number of fragments per pixel  Lists (linked), dynamic allocation Look at “good enough” solutions Save some maximum number of fragments Fixed-function or programmable solution? Fixed-function more efficient, but extra hardware Traditionally solved with a-buffer algorithm Save all of the pixel fragments for each pixel Resolve at end of frame Arbitrary number of fragments per pixel  Lists (linked), dynamic allocation Look at “good enough” solutions Save some maximum number of fragments Fixed-function or programmable solution? Fixed-function more efficient, but extra hardware

Texture Maps Resolution increasing rapidly 4Kx4K high-resolution maps Nearing the 8Kx8K used for film Too much work to paint this much detail Don’t paint individual skin pores Digital camera capture not the answer 4Kx4K RGBA = 2x compression Resolution increasing rapidly 4Kx4K high-resolution maps Nearing the 8Kx8K used for film Too much work to paint this much detail Don’t paint individual skin pores Digital camera capture not the answer 4Kx4K RGBA = 2x compression

Texture Maps GPU virtual memory helps with size, but… Can we ever really store enough resolution? A better way? Use procedural texture techniques Shaders now expressive enough Do they have enough performance? Artists concentrate on form Algorithmically add detail “paint” algorithm ids GPU virtual memory helps with size, but… Can we ever really store enough resolution? A better way? Use procedural texture techniques Shaders now expressive enough Do they have enough performance? Artists concentrate on form Algorithmically add detail “paint” algorithm ids

Surfaces and Tessellation Increasing character complexity 2K → 5K → 15K triangles/character Increased skinning and morphing complexity k weights for each vertex Hand-tuned for animation Silhouette edges still look poor Compared to lighting and shading quality Alternative – use higher-order surfaces Beziers, Catmull-Clark subdivision, NURBS, … Many studios already model with surfaces Convert to triangles when packaging content Increasing character complexity 2K → 5K → 15K triangles/character Increased skinning and morphing complexity k weights for each vertex Hand-tuned for animation Silhouette edges still look poor Compared to lighting and shading quality Alternative – use higher-order surfaces Beziers, Catmull-Clark subdivision, NURBS, … Many studios already model with surfaces Convert to triangles when packaging content

Tessellation Advantages Animate and skin the control mesh Less computation than per-vertex Tessellate the resulting control mesh Combine with displacement mapping Use for additional geometric detail Adds detail to silhouette edges Use normal maps for fine shading detail Combine with adaptive tessellation? Animate and skin the control mesh Less computation than per-vertex Tessellate the resulting control mesh Combine with displacement mapping Use for additional geometric detail Adds detail to silhouette edges Use normal maps for fine shading detail Combine with adaptive tessellation?

Skinned Control Mesh

Summary Games increasingly more complex World size, detail Bulk of cost in producing content Content creation process not scaling Amortize cost over multiple platforms Try to reduce cost of additional detail Run-time generation of detail Improved tools for controlling detail Good areas for additional research Games increasingly more complex World size, detail Bulk of cost in producing content Content creation process not scaling Amortize cost over multiple platforms Try to reduce cost of additional detail Run-time generation of detail Improved tools for controlling detail Good areas for additional research

Games Tomorrow

Questions