150 likes | 294 Views
Real-Time Rendering. CS 446 David Luebke. Demo Time. We will have a 5 minute “demo time” to open each class Students pick something (e.g., a game) to demo Focus: real-time graphics , not game play, MPEG’d cut scenes, etc. Students responsible for bringing platform to classroom
E N D
Real-Time Rendering CS 446David Luebke David Luebke 19/6/2014
Demo Time • We will have a 5 minute “demo time” to open each class • Students pick something (e.g., a game) to demo • Focus: real-time graphics, not game play, MPEG’d cut scenes, etc. • Students responsible for bringing platform to classroom • I can provide PC (GFX, ATI), PS2, Xbox from lab • Students rotate duty each class or each week • Send around a sign-up sheet David Luebke 29/6/2014
Introduction • The changing face of real-time rendering • In 2002 when I taught this class I said: • The good old days: • SGI was king • A slew of PC vendors • Today: • SGI is selling real estate • NVIDIA, ATI rule the world • Now: • SGI is irrelevant • Programmable GPUs are the big news David Luebke 39/6/2014
The real news!!! Comparison:SGI InfiniteReality (1998) vs. NVIDIA GeForce4 (2002) Metric SGI IR NVIDIA GF4 Triangles/demosec 13 million 136 million Pixels/demosec 4.8 billion Texture memory 64 MB 128 MB Bump mapping Nope No sweat Programmable vertex engine? You kidding? Oh, yeah Programmable pixel engine? Get real Yeah baby Form factor Mini-fridge videocassette Cost $100,000 $300 David Luebke 49/6/2014
Rate of Changea.k.a “Stop the technology, I want to get on” • SGI: new product every 3 years • NVIDIA: new product every 6/18 months • Current commodity cards double in performance every 10 months or so • Far outstripping Moore’s Law… • Exciting new features have been appearing at a breathtaking rate: • Programmable pipelines, floating-point support, hardware occlusion support David Luebke 59/6/2014
Summary • These are interesting times for real-time rendering: • Commodity graphics cards are fantastically capable • The rate of ongoing improvement is dizzying • New algorithms, long-offline algorithms becoming possible • Hard to keep up, even for “experts” • What’s pushing the technology curve? David Luebke 69/6/2014
Video Games • Undoubtedly the driving force behind this revolution • In 2002 the video game industry surpassed the film industry (wave hands) • Commodity parts: Pentium 4 vs GFX David Luebke 79/6/2014
The Course: General Topics • This class will study real-time rendering, with a particular focus on the hardware and algorithms underlying 3D game engines • Generally PC hardware rather than consoles • Bit more emphasis on NVIDIA hardware • Generally OpenGL (DX more apropos, but…) • We won’t study: • Gameplay, storylines, AI, game art, production process, artist tools, network layers, OO game design, audio, (much) physics, (much) animation David Luebke 89/6/2014
The Course: Workload • This is a project course, all grades from programming assignments: • A couple of completely individual assignments • Hardware performance, “Building blocks” of a game engine • Big team project: a 3D video game • Individual assignments in context of team project • Add features to your team’s game engine • Think graduate-level course • A game engine is a big program • Will likely be more work (but also more rewarding) than any course you’ve ever had David Luebke 99/6/2014
The Course: Syllabus • The web page is the syllabus… David Luebke 109/6/2014
Review: The Graphics Pipeline • The next lecture will go over the traditional graphics pipeline • The big picture: Application Geometry Rasterizer David Luebke 119/6/2014
Programmable Pipelines • Recent hardware offers the option of replacing portions of the pipeline with user-programmed stages • Vertex shader: replaces fixed-function transform and lighting • Pixel shader: replaces texturing stages David Luebke 129/6/2014
To think about: • What are some possible bottlenecks in system performance of a graphics/game engine? • Does it make any difference to sort your geometry front-to-back or back-to-front when using a depth-buffer? • Will your textured polygons render faster if MIP-mapping is enabled or disabled? • Does the order that you traverse polygons (i.e., issue vertices using glVertex()) make a difference in performance? David Luebke 139/6/2014
Programmable Pipelines • The amount of programmability is increasing by leaps and bounds • Vertex shaders: more instructions, variable looping, branching, subroutines • Pixel shaders: still SIMD, but with more instructions, unlimited texture accesses, pixel kill • The data formats are also improving • IEEE floating point throughout the pixel pipeline! • Various versions David Luebke 149/6/2014