Real-Time Rendering CS 446 David Luebke 1

advertisement
Real-Time Rendering
CS 446
David Luebke
David Luebke
1
7/27/2016
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
2
7/27/2016
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
3
7/27/2016
Comparison:
SGI InfiniteReality (1998) vs. NVIDIA GeForce4 (2002)
Metric
SGI IR
Triangles/demosec
Pixels/demosec
Texture memory
Bump mapping
Programmable
vertex engine?
Programmable
pixel engine?
Form factor
Cost
13 million
NVIDIA GF4
64 MB
Nope
136 million
4.8 billion
128 MB
No sweat
You kidding?
Oh, yeah
Get real
Mini-fridge
$100,000
Yeah baby
videocassette
$300
The real news!!!
David Luebke
4
7/27/2016
Rate of Change
a.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
5
7/27/2016
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
6
7/27/2016
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
7
7/27/2016
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
8
7/27/2016
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
9
7/27/2016
The Course: Syllabus
● The web page is the syllabus…
David Luebke
10
7/27/2016
Review: The Graphics Pipeline
● The next lecture will go over the traditional
graphics pipeline
● The big picture:
Application
David Luebke
Geometry
11
Rasterizer
7/27/2016
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
12
7/27/2016
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
13
7/27/2016
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
14
7/27/2016
Download