Parallel Ray Tracer Computer Systems Lab Presentation Stuart Maier
Abstract Computer generation of highly realistic images has been a difficult problem. Although there are algorithms that can generate images that look essentially real, they take large amounts of time to render. This project explores ways of distributing that onto multiple computers, in order to speed up the process.
Graphics Background Many different algorithms Most unrealistic Real-life based algorithms developed Ray tracing most important Shoots rays from camera Interact with intersected objects Local illumination
Ray Tracing Rays shoot through screen Rays seek light sources Phong shading Image from Wikipedia.
Phong shading Formula for calculating light
Graphics cont. Photon mapping Two pass algorithm Creates photon map Ray tracing afterwards Biased Still not realistic enough
Graphics cont. Path tracing Rays don't seek light Rays can: Find light Be absorbed Be transmitted Spectral rendering Full spectrum of colors
Spectral Rendering Complete color space RGB part illuminated Many different colors can create the same RGB value Image from Wikipedia.
Parallel Background BOINC Multiple independent clients No interclient communication Clients barely talk with server Splitting data Pixels are divided up among clients
Design Written in C with MPI and OpenGL libraries Currently implements a parallel ray tracer with Phong shading Five components Main Renderer Object Vector XML
Main Runs the entire show Talks with MPI and OpenGL Starts up the renderer Passes off to the Renderer component
Renderer Holds information about the scene Renders the scene Performs the high-level ray calculations
Object Information about objects Calculates ray-object intersections
Vector Generic library Creates 3-D vectors and processes them Used for spatial and color calculations
XML First component called after Main Reads in the scene file Passes off information to Renderer