1 speeding up ray tracing images from virtual light field project ©slides anthony steed 1999 &...

25
Speeding Up Ray Tracing Images from Virtual Light Field Project www.cs.ucl.ac.uk/vlf ©Slides Anthony Steed 1999 & Mel Slater 2004

Upload: morris-lawson

Post on 29-Dec-2015

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 Speeding Up Ray Tracing Images from Virtual Light Field Project  ©Slides Anthony Steed 1999 & Mel Slater 2004

1

Speeding Up Ray Tracing

Images from Virtual Light Field Projectwww.cs.ucl.ac.uk/vlf

©Slides Anthony Steed 1999 & Mel Slater 2004

Page 2: 1 Speeding Up Ray Tracing Images from Virtual Light Field Project  ©Slides Anthony Steed 1999 & Mel Slater 2004

2

Optimisations

Limit the number of rays Make the ray test faster

• for shadow rays– the main drain on resources in there are

several lights

• for primary rays• for all rays

over 90% of the cost of raytracing is in ray-objectintersection tests

Page 3: 1 Speeding Up Ray Tracing Images from Virtual Light Field Project  ©Slides Anthony Steed 1999 & Mel Slater 2004

3

Primary Rays

Use a z-buffer! Instead of writing colour write and object

identifier• Easy to support in OpenGL - turn off lighting,

do flat shading and encode object id within 24bit colour

Difficult technique to use elsewhere because rays are no longer spatially coherent and evenly spaced

Page 4: 1 Speeding Up Ray Tracing Images from Virtual Light Field Project  ©Slides Anthony Steed 1999 & Mel Slater 2004

4

General Rays

Techniques to use• bounding volumes• hierarchical bounding volumes• space subdivision

– regular – adaptive

• ray coherence

Page 5: 1 Speeding Up Ray Tracing Images from Virtual Light Field Project  ©Slides Anthony Steed 1999 & Mel Slater 2004

5

Bounding Volume

Find a tight bounding volume and use it for a first reject test

If hit volume then test full object

Axis alignedBounding Box

Bounding Box

Bounding Sphere

Page 6: 1 Speeding Up Ray Tracing Images from Virtual Light Field Project  ©Slides Anthony Steed 1999 & Mel Slater 2004

6

Fast BV Tests

Box-Ray test• a box is three sets of parallel planes, each

set orthogonal to the other two– Calculate tnear for each of the three plane pairs

– find max of the 3 tnear

– Calculate tfar for each of the three plane pairs

– find min of the 3 tfar

• If max tnear is greater that min tfar, then the box is not intersected

Page 7: 1 Speeding Up Ray Tracing Images from Virtual Light Field Project  ©Slides Anthony Steed 1999 & Mel Slater 2004

7

Fast BV Tests (EG)

tnearx

tfary

tfarx

tnearx

tneary

tfarx

Page 8: 1 Speeding Up Ray Tracing Images from Virtual Light Field Project  ©Slides Anthony Steed 1999 & Mel Slater 2004

8

Choosing a Volume

Choice depends on the cost of the test and the fit of the shape• The “void” area can be very large

More efficient fitting shapes are possible (this is still a research area e.g. k-dops)

Page 9: 1 Speeding Up Ray Tracing Images from Virtual Light Field Project  ©Slides Anthony Steed 1999 & Mel Slater 2004

9

Hierarchical Bounding Volumes

A

B

C

D E

F

root

A+B

A B

C D+E F

D E

r1 r2

Page 10: 1 Speeding Up Ray Tracing Images from Virtual Light Field Project  ©Slides Anthony Steed 1999 & Mel Slater 2004

10

Choosing a HBV

Scene graph might not map to a decent space partitioning• group BVs based on proximity rather than

scene graph position

You would sort the HBV using a BSP tree anyway ...

Page 11: 1 Speeding Up Ray Tracing Images from Virtual Light Field Project  ©Slides Anthony Steed 1999 & Mel Slater 2004

11

Regular Spatial Subdivision

Regular 3D grid of “voxels”

A

B

C

Page 12: 1 Speeding Up Ray Tracing Images from Virtual Light Field Project  ©Slides Anthony Steed 1999 & Mel Slater 2004

12

Details on the RSS

Testing• Each voxel keeps a list of

objects that intersect this voxel

• Need for a ‘mailbox’ system where voxel also keeps track of what has already intersected it to avoid duplications.

Size of voxels• Obvious trade off on

granularity of voxels

Page 13: 1 Speeding Up Ray Tracing Images from Virtual Light Field Project  ©Slides Anthony Steed 1999 & Mel Slater 2004

13

Adaptive Spatial Subdivision

The octree idea (illustrated with a quadtree!)

Page 14: 1 Speeding Up Ray Tracing Images from Virtual Light Field Project  ©Slides Anthony Steed 1999 & Mel Slater 2004

14

Building the Octree

Recursively split the cells into eight, until each cell meets some criteria• e.g. previous diagram was “only one object

intersects each cell” Advantage is clear - cells are not

wasted on void areas

Page 15: 1 Speeding Up Ray Tracing Images from Virtual Light Field Project  ©Slides Anthony Steed 1999 & Mel Slater 2004

15

Tracing an Octree

Find octree cell containing start point If no intersection, find intersection (I) of

ray with cube that surround the octree Find (I) in the octree

• it is moved a little along the ray Repeat

Page 16: 1 Speeding Up Ray Tracing Images from Virtual Light Field Project  ©Slides Anthony Steed 1999 & Mel Slater 2004

16

kD-tree / BSP Tree

Similar to octree, but orthogonal splitting planes are chosen to provide a good search tree

Split based on balancing objectnumbers andminimising volume disparity

Page 17: 1 Speeding Up Ray Tracing Images from Virtual Light Field Project  ©Slides Anthony Steed 1999 & Mel Slater 2004

17

Ray Coherence Methods

Light Buffer Ray Classification Scheme

Page 18: 1 Speeding Up Ray Tracing Images from Virtual Light Field Project  ©Slides Anthony Steed 1999 & Mel Slater 2004

18

Light Buffer

Haines and Greenberg, 1986 Problem with shadow rays is that for

every intersection we trace and additional n rays for each light

r

l0

l1

Page 19: 1 Speeding Up Ray Tracing Images from Virtual Light Field Project  ©Slides Anthony Steed 1999 & Mel Slater 2004

19

Light Buffer

Enclose light in a box. Cells of box faces store objects

Page 20: 1 Speeding Up Ray Tracing Images from Virtual Light Field Project  ©Slides Anthony Steed 1999 & Mel Slater 2004

20

Construction - 2D Analogue

A

B

C1 - <NULL> C2 - A, B, C

C3 - A C4 - <NULL>

C1

C2

C3

C4

C

Page 21: 1 Speeding Up Ray Tracing Images from Virtual Light Field Project  ©Slides Anthony Steed 1999 & Mel Slater 2004

21

Ray Classification

Arvo and Kirk, 1987 Group together similar rays (rather than

similar objects) Similar rays should intersect the same

groups of objects Very elegant method

Page 22: 1 Speeding Up Ray Tracing Images from Virtual Light Field Project  ©Slides Anthony Steed 1999 & Mel Slater 2004

22

Ray Classification - Rays are Points

Every ray is represented as a point in 5D space (R5) (x,y,z,u,v) where (u,v) is the directional component, and (x,y,z) is the origin

(x,y,z)

(u,v)-Y

+X

This ray is (x,y,z) inside boxin direction (u,v)

on +X plane There are 6 planes-X,+X,-Y,+Y,-Z,+Z

Page 23: 1 Speeding Up Ray Tracing Images from Virtual Light Field Project  ©Slides Anthony Steed 1999 & Mel Slater 2004

23

Ray Classification – 5 Tasks

E is the subset of R5 containing every possible ray in the scene

E1, E2, …, En is a partition of E• formed as a 32-tree

– The 5D hypercube can be split along each of its axis to form 32 children, and so on…

For each Ei there will be a Ci - a set of objects intersected by at least one of the ray s in Ei

For any ray find the Ei to which it belongs Then intersect it with the objects in Ci (see details in the book – the important aspect to

undrestand is the idea of ray classification – similar rays will intersect similar groups of objects!).

Page 24: 1 Speeding Up Ray Tracing Images from Virtual Light Field Project  ©Slides Anthony Steed 1999 & Mel Slater 2004

24

Virtual Light Field Approach

Very recent development For a fixed ‘uniformly distributed’ set of rays,

find for each ray all of its intersections with objects in the environment

Each ray maintains a list of objects it intersects (and where along the ray)

Given any arbitrary ray that emerges in ray tracing, find the closest ray in the ray set, and use the rays that this intersects as a candidate set of objects.

Several complications – but the idea is clear.

Page 25: 1 Speeding Up Ray Tracing Images from Virtual Light Field Project  ©Slides Anthony Steed 1999 & Mel Slater 2004

25

Summary

Ray intersection is computationally expensive and we need to reduce it

Methods used fall into 3 classes• Bound the objects• Partition the object space• Partition the ray space

Ray tracing can be tremendously speeded up by appropriate use of modern hardware (see papers of Ward et al, and also UCL’s Virtual Light Field project www.cs.ucl.ac.uk/vlf ).