|
|
|
Prof. John C. Hart |
|
Dept. of Computer Science |
|
University of Illinois, Urbana-Champaign |
|
|
|
|
|
|
GPU designed for efficient local illumination
computations to make video games more interesting |
|
Bump mapping, BRDF |
|
Vertex shader processes per-vertex attributes
(normal, texcoords, color) |
|
Displacement mapping, skinning |
|
Rasterization interpolates vertex attributes
across pixels |
|
Projective, perspective correct |
|
Pixel shader computes colors from interpolated
values and texture lookups |
|
texture shading, perspective texturing |
|
|
|
|
|
Simulates all paths of light from source to eye |
|
Techniques |
|
Ray tracing |
|
Radiosity |
|
Photon mapping |
|
Effects |
|
Shadows |
|
Reflection |
|
Refraction |
|
Color bleeding |
|
Caustics |
|
Subsurface scattering |
|
Expands role of GPU from game engine to DCC
platform |
|
|
|
|
|
Simulates
scattering
of light within a
translucent material |
|
Needed for all non-metallic surfaces |
|
SKIN, milk, bread, stone |
|
Real-time GPU Implementations |
|
one based on recent pixel shader enhancements
(floating point) |
|
one based on recent vertex shader enhancements
(# of constants) |
|
|
|
|
|
|
|
|
Implemented on ATI
Radeon 8500 DX 8.1 |
|
Pixel Shaders 1.4 |
|
16-bit fixed point |
|
Limited precision
resulted in errors |
|
114M ray-triangle ints/s |
|
Much faster than best
single CPU time
(20-40M on 800MHz P3, Wald et al. EGRW01) |
|
Expect gap to widen further |
|
|
|
|
Nate Carr, Jesse Hall, John Hart. The Ray
Engine. Proc. Graphics Hardware 2002. |
|
Uses GPU to intersect rays with triangles |
|
Turns �Geometry Engine� into a �Ray Engine� |
|
Uses CPU to organize which rays and triangles to
send to GPU |
|
|
|
|
|
Ray Engine GH02 |
|
200K rays/s for highly
coherent, small (2.5K) scenes |
|
115K rays/s for large (34K)
complicated scenes |
|
Wald et al. EGRW01 |
|
P3 SSE: 200K � 1.5M rays/s |
|
CPU-SSE tightly coupled |
|
Purcell et al. S02 |
|
300K rays/s large (35K) |
|
up to 4M rays/s small (35) |
|
|
|
|
|
|
|
Drivers currently use PCI readback hardware and
drivers, even for AGP cards! |
|
Only get 160MB/s (should get 1GB/s) |
|
An older IBM card got 800 MB/s readback |
|
PCI Express |
|
promises fast bidirectional GPU access |
|
But only if hardware manufacturers use both
directions |
|
Would help if benchmarks include readback rates |
|