interactive ray tracing cs 851 david luebke university of virginia

24
Interactive Ray Tracing CS 851 David Luebke University of Virginia

Upload: matthew-riley

Post on 13-Jan-2016

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Interactive Ray Tracing CS 851 David Luebke University of Virginia

Interactive Ray Tracing

CS 851

David Luebke

University of Virginia

Page 2: Interactive Ray Tracing CS 851 David Luebke University of Virginia

Admin

Exchange names Decide on meeting times

– Goal: two 45-60 minute sessions/week Go over syllabus (oops) Note: next week we will crash Greg

Humphrey’s Image Synthesis course– MEC 339– Tue, Thu 3:30-4:45– Videotaped if you can’t get there– No meetings otherwise.

Page 3: Interactive Ray Tracing CS 851 David Luebke University of Virginia

Interactive Ray Tracing

Long considered an oxymoron, or a joke– “Field of VAX” “Field of Cray”

Has quickly become a generally accepted part of the future of interactive graphics

The big questions: – How?– Why?

Page 4: Interactive Ray Tracing CS 851 David Luebke University of Virginia

Interactive Ray Tracing:Why do it?

Ray tracing has some definite advantages over traditional “forward” rendering– Name some of them

Page 5: Interactive Ray Tracing CS 851 David Luebke University of Virginia

Interactive Ray Tracing:Advantages

Cliché, attributed to Jim Kajiya(?):

“For a complex enough scene, ray tracing will always be faster”

– Why would he say this?– When is it not true?

Page 6: Interactive Ray Tracing CS 851 David Luebke University of Virginia

Interactive Ray Tracing:Advantages

Efficient:– Asymptotically efficient:

Depth complexity & early termination

– “Just makes sense” efficient Triangles are a vehicle for hardware to efficiently

interpolate pixels But triangles are getting smaller than pixels…

Page 7: Interactive Ray Tracing CS 851 David Luebke University of Virginia

Interactive Ray Tracing:Advantages

Elegant!– Whitted’s recursive ray tracing nicely

addressed several problems at once: Visible surface determination Shadows Reflection/refraction

– Its successors have addressed many more: Global illumination/indirect illumination Motion blur, depth of field Etc

Page 8: Interactive Ray Tracing CS 851 David Luebke University of Virginia

Interactive Ray Tracing:Advantages

Lends itself to sophisticated shading– Effects: motion blur, shadows, reflection, etc

– Nice model for programmable shading

– Antialiasing Stochastic sampling Adaptive supersampling

Easy to add support for new primitives– Height field

– NURBS

– Volumes, implicit surfaces, metaballs, etc.

Page 9: Interactive Ray Tracing CS 851 David Luebke University of Virginia

Interactive Ray Tracing:Advantages

Scales well! – The term is “embarrassingly parallel”– Under what conditions?– What is a limiting factor in interactive use?

Page 10: Interactive Ray Tracing CS 851 David Luebke University of Virginia

Interactive Ray Tracing:Advantages:

Presents prospect for wacky new rendering algorithms and acceleration schemes– Decouples spatial sampling from raster grid

Gaze-directed rendering Increased sampling near silhouettes, etc

– Decouples spatial from temporal sampling Frameless rendering Interruptible rendering

Page 11: Interactive Ray Tracing CS 851 David Luebke University of Virginia

Interactive Ray Tracing:Disadvantages

Time complexity grows linearly with the number of pixels– And there’s a lot of pixels on today’s displays

We rarely (?) want to render a million polygons at interactive rates

We often want to render a million pixels at interactive rates

– However, displays are growing more slowly than models

Page 12: Interactive Ray Tracing CS 851 David Luebke University of Virginia

Interactive Ray Tracing:Disadvantages

Recursive ray tracing is an elegant and simple algorithm

It’s also poorly suited to efficient hardware implementation– Recursion == bad– Poor memory coherence (especially for naive

depth-first algorithm)

Page 13: Interactive Ray Tracing CS 851 David Luebke University of Virginia

Interactive Ray Tracing:Disadvantages

As a result there’s no real ray tracing hardware– Some entrepreneurial stabs – Some special markets

Volume-rendering hardware Accelerated offline rendering hardware

– But nothing to compare with maturity and size of polygon rendering hardware market

Page 14: Interactive Ray Tracing CS 851 David Luebke University of Virginia

Related Work: Parker et al

First demonstrated interactive ray tracing system: Parker et al, U. of Utah, 1999– Brute force…

Straightforward implementation Explicitly traces rays through every pixel Simple acceleration structure (uniform grid)

Careful attention to optimizing system resources

– …on a $2.5 million supercomputer 64 node SGI Origin “Reality Monster” CC-NUMA shared-memory multicomputer

Fast interconnect Fine-grained message passing

Page 15: Interactive Ray Tracing CS 851 David Luebke University of Virginia

Related Work:Parker et al

Parker et al demonstrated several advantages of ray tracing:– Big data

– Sophisticated shading

– Direct rendering of multiple primitives

– Frameless rendering

Other contributions– A clever soft shadows hack

– A clever ambient lighting hack

Show the movie

Page 16: Interactive Ray Tracing CS 851 David Luebke University of Virginia

Related Work:Utah

Since then, the Utah group has done research on:– Ray tracing dynamic scenes: incrementally

updating acceleration data structures– Ray tracing volumes: lots of acceleration

techniques for volumes, e.g. MRI data– A cute trick for improving the appearance of

antialiased ray-traced images during motion

Some images and movies at:http://www.cs.utah.edu/~sparker/images.html

Page 17: Interactive Ray Tracing CS 851 David Luebke University of Virginia

Related Work:Wald & Slusallek

Ingo Wald, Philip Slusallek: the next big contributors; lots of publications

Basic idea: ray trace on standard PC hardware, scale to clusters– On dual-PIII 800 MHz, report 1.6-3.6 fps on

models from 40K-8M tris– A cluster of 7 PCs achieves 5-10 fps on the

13 million triangle UNC Powerplant

Page 18: Interactive Ray Tracing CS 851 David Luebke University of Virginia

Related Work:Wald & Slusallek

Big ideas:– Coherence: Restructure ray tracing computation

to increase coherence “Partial breadth-first evaluation” Ray trace small bundles of rays

Intersect all rays in bundle with every triangle, even if some have already terminated

Good cache coherence, can use SIMD instructions

– Scalability: use cluster of PCs with client-server architecture

Hand out bundles to be rendered Clients cache geometry (don’t replicate scene)

Page 19: Interactive Ray Tracing CS 851 David Luebke University of Virginia

Related Work:The Render Cache

Work by Bruce Walters, currently at Cornell; also by Reinhard et al (Utah)

Basic idea: – Cache ray “hits” as shaded 3D points– Reproject points for new viewpoint– Now many pixels already have (possibly

stale) color!

Web page w/ good examples, source:http://www.graphics.cornell.edu/research/interactive/rendercache/

Page 20: Interactive Ray Tracing CS 851 David Luebke University of Virginia

Related Work:The Ray Engine

Nathan Carr, Jesse Hall, John Hart (University of Illinois)

Basic idea: Put ray-tracing intersection on the fragment hardware– Ray intersection is a crossbar:

Intersect a bunch of rays with a bunch of triangles, keep closest hit on each ray

– Triangle rasterization is a crossbar: Intersect a bunch of pixels with a bunch of

triangles, keep closest hit at each pixel

Page 21: Interactive Ray Tracing CS 851 David Luebke University of Virginia

Related Work: Ray Tracing on Prog. Gfx Hdwr

Tim Purcell, Ian Buck, Bill Mark, Pat Hanrahan (Stanford, NVIDIA)

Idea: put all aspects of ray tracing computation into fragment hardware– Formulate ray tracing as a stream

computation– Map streams to textures, kernels to fragment

programs

Page 22: Interactive Ray Tracing CS 851 David Luebke University of Virginia

Upcoming Topics

Ray Tracing fundamentals (Humphreys)– Read Whitted (1980), any other readings

Ray Tracing acceleration follow-up (Luebke, if necessary)

Modern graphics hardware (Luebke) Papers to follow…

Page 23: Interactive Ray Tracing CS 851 David Luebke University of Virginia

Projects

A semester-long project related to interactive ray tracing– Code up an IRT– Do something interesting with an existing one– Novel sampling/reconstruction algorithms– Use the hypothetical cluster

Project proposals due Mar 1 Can work in pairs

Page 24: Interactive Ray Tracing CS 851 David Luebke University of Virginia

Questions?