Paper Summaries • Any takers? Ray Tracing Optimizations Assignments Projects • Checkpoint 1 • Proposals due tonight – All graded – Didn’t get a grade? See me! • Checkpoint 2 – Due Thursday(?) Logistics One more announcement • Job related news • Electronic Arts (EA) is coming to RIT. – Co-op orientation – Looking for a few (actually more than a few) good • Friday, Sept 16 th 12:00 – 1:30pm 70-1400 gaming programmers • Friday, Oct 14 th 1:00 – 2:30pm Eastman Aud. – Career Fair – EA Company Presentation • Tuesday, October 4 th • Wednesday, Sept 28 th • 6-7:30pm • 11am – 4pm • Golisano auditorium • Gordon Field House – Interviews – EA Job offer • Wednesday, October 5 th (Career Center) 1
Plan for today Computer Graphics as Virtual Photography • Small change in plans real camera photo Photographic Photography: scene (captures processing print – Today: light) • Ray tracing optimization • Intro to Material Properties/BRDFs/Illumination processing Models – Thursday: camera Computer 3D synthetic tone • Practical considerations for Illumination Modeling model Graphics: models image reproduction (focuses • Raytracer – Checkpoint 3 simulated lighting) Ray Tracing Ray Tracing - Problems • Integrated aspects of light and object • Object - ray intersection interaction that had formerly been handled by • Computation time separate algorithms: • Ray traced images are point sampled – “Too sharp” (super real) – “wrong image” – Hidden surface removal – Sharp shadows – Sharp Reflection/Refraction – Reflection • Multiple reflections especially are too sharp – Refraction – Aliasing • Doesn’t handle major light transport functions – Shadows – Diffuse interaction – Global specular interaction – Scattering of light Turner Whitted – Caustics Ray Tracing: Intersection Ray Tracing - Object - Ray Intersection • We only talked about ray intersection with spheres • For each ray, intersection test needs to be and planes made for each object • What about? – This could costly if you have many – Boxes objects…consider if object has n polygons, n – Cylinders very large! – Cones – Solutions – Triangles • Bounding Volume – Spline surfaces • Spatial Subdivision – Irregular shapes 2
Ray Tracing - Bounding Volumes Ray Tracing - Bounding Volumes • Place simple objects (i.e., sphere or box) around complex objects – Suitability depends on object being enclosed! • Do initial intersection tests on bounding objects. • If ray intersects bounding volume, then test complex bounded object • Can be nested [Watt/Watt,235] Ray Tracing - Bounding Volumes Ray Tracing - Spatial Subdivision • Motivation – Without spatial subdivision, for each ray, you will need to query all objects/polygons and test for intersection – With spatial subdivision, you know which objects are in each volume so you only test objects that are in the volumes where a ray is traveling. [Watt/Watt,236] Ray Tracing - Octrees Ray Tracing - Spatial Subdivision • Recursively subdivide volume into equal • Subdivide your scene volume into hierarchical regions. regions – Octrees • If subregion is empty or contains a single – BSP Trees object, then stop • Create a tree structure that indicates for each region: • Otherwise, further subdivide. – if the region is empty • Continue until each subregion is empty or – the object present at that particular region contains a single object. • Test ray intersection with region volume 3
Ray Tracing – Oct(quad)trees Ray Tracing - Octrees • Subdivisions represented as a tree [Foley/Van Dam] [Watt/Watt,244] Ray Tracing - Oct(quad)trees Ray Tracing -- Octrees • Quadtree applet • Images from http://njord.umiacs.umd.edu:1601/users/brabec/qu http://www.flipcode.com/tutorials/tut_octrees.shtml adtree/points/pointquad.html Ray Tracing -- Octrees Ray Tracing -- Octrees 4
Ray Tracing - BSP Trees Ray Tracing -- Octrees • Binary Space Partitioning Trees (BSP Shows viewing frustum and which “octants” need to be checked. Trees) – Like Octrees but divides space into a pair of subregions – Subregions need not be equally spaced – Planes separating regions can be placed at object boundaries. Ray Tracing - Spatial Subdivision Ray Tracing - BSP Trees • BSP Trees – Each non-terminal node represents a single • Octrees vs BSP Trees partitioning plane that divides space in two [Watt/Watt,246] [Watt/Watt,247] Ray Tracing - BSP Trees Ray Tracing - Spatial Subdivision • Advantages • BSPTree applet – Efficient means for finding objects within your http://symbolcraft.com/graphics/bsp/index.html space – Compact representation • Disadvantages – Preprocessing required – If scene changes, must rebuild your tree – Not foolproof 5
Parallel Computing Ray Tracing - Spatial Subdivision • Octrees vs BSP trees • What is it? – BSP Trees are generally more balanced than – Solving a problem by dividing it into tasks to Octrees be handled by separate processors – BSP Traversal more efficient • Why use it? – BSP Trees have additional storage overhead as – Performance must store subdivision planes – Goal linear speedup Parallel Hardware Parallel vs. Distributed • SIMD – Same instruction executed in lockstep fashion on different data • MIMD – Different instructions executed Parallel on different data • MIMD-SM • MIMD-DM Distributed RIT Ray Issues in Parallel Computing: Communication Tracing 1991 • More processors means more organization is required (Consider working on a team of 10 people vs. 1000 people) • For performance, each processor must have 975 objects a lot of work to do in comparison with any 3 light sources need to communicate to another processor. 2048 X 2048 pixels • Keep all processors busy (load balancing) Sun 4/490 – 1991 1.5 hours CPU time 6
RIT Ray Tracing Fractals and Ray Tracing • Ray tracing lends itself nicely to parallel programming because the work can easily 1991 be sub-divided – Per pixel calculation, i.e., not dependent on 87,000 objects other pixels 5 light sources – Potentially large calculation time 1024 X 1024 • How to distribute work? Sun 4/490 – 1991 18 hours CPU time Processor 1 Image Space Partitioning Processor 2 Processor 3 Processor 4 Strip = Section of Viewing Plane per Data Parallel strip division Processor Processor 1 Object Space Partitioning Processor 2 Processor 3 Processor 4 Voxel = Section of scene data for processor Data Parallel: Each processor does the rows marked with its color 7
Reinhard’s Parallel Example Object Partitioning Adaptive Partitioning to Load Balance Processor Processor Processor 1 2 3 [Reinhard99 – thesis] Partitioning for Parallel Ray Tracing Partitioning for Ray Tracing • Object Space Partitioning • Image space partitioning is the best choice – May be necessary if very complex scene! • When might we use the others? – Less local processor memory needed for scene data – High delay when passing rays between processors means – Object Space Partitioning: when there is not crossing machines enough local processor memory for the scene • Object Partitioning data – Same as object space (just divided differently) – Object Partitioning: same as above when object • Image Space Partitioning complexity is similar – Each local processor must have complete scene data – Messages are only sent to divide and reassemble, not while doing the work Ray Tracing Optimization • Summary – Object-Ray Intersection [Reinhard98] • Bounding Volume Image space • Spatial Subdivision – Parallel Ray Tracing partitioning won’t work here! – break [Reinhard99 – thesis] 8
Recommend
More recommend