Interactive Ray Tracing CS 851 David Luebke University of Virginia.

24
Interactive Ray Tracing CS 851 David Luebke University of Virginia

Transcript of Interactive Ray Tracing CS 851 David Luebke University of Virginia.

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?