Backward Ray Tracing
Total Page:16
File Type:pdf, Size:1020Kb
Backward Ray Tracing James Arvo Ap ollo Computer Inc Chelmsford MA August Intro duction Ray tracing has b ecome a very p opular metho d for image synthesis due to its un paralleled exibility and its ability the generate images of high quality and realism Simulation of eects such as reection and refraction have b een the hallmarks of ray tracing since its intro duction With the advent of sto chastic ray tracing the range of eects expanded to include motion blur soft shadows depth of eld and b oth blurry reections and translucency A notable omission from the rep ertoire of ray tracing however is diuse reection of indirect light Though several new algorithms have been intro duced which simulate multiple diuse reections of light in p olygonal environments ray tracing continues to neglect these higher order eects and consequently falls short of a truly global mo del of illumination These notes describ e a simple extension to ray tracing which takes a rst step toward alleviating this deciency The problem addressed is that of simulating diuse reection of sp ecularly reected andor refracted ligh t originating from p oint light sources The technique involves one or more passes of backward ray tracing from the light and the construction of illumination maps as a prepro cessing step Background In traditional ray tracing rays are cast from the eye into the environment in order to p erform visible surface calculations Additional rays are spawned at the p oints of intersection for the purp ose of shading This normally requires at least one ray to In Developments in Ray Tracing SIGGRAPH Course Notes Volume August Retyp ed from original manuscript January b e cast from the p ointofintersection toward eachlight source to determine whichof them contribute to the illumination of the surface at that p oint If the ray encounters an intervening ob ject the point is either declared to be in shadow with resp ect to that light source or if the obstruction is translucent the contribution of the light source is attenuated to simulate absorption A problem arises when we attempt to take reection and refraction into account as rays are traced from the p ointofintersection back to the light sources Were we to reect rays from or refract rays through obstructing ob jects as with rays cast from the eye we would nd that virtually none of them stay on course to a light sources and therefore reveal nothing ab out the amountoflightreaching the p oint in question The problem is a dicult one since light deected by reection or refraction can come from many unpredictable directions gure The p ositions of the light sources oer not the faintest clue where to lo ok except in the case of direct unobstructed illumination One p ossible approach to lo cating sources of indirect lightwould b e to carefully sample the entire environment from each point b eing shaded in an attempt to discover those paths which divert lightback toward a light source This would be enormously exp ensive and an alternative is clearly necessary Reflecting object Light Source Eye Point A B Refracting object Figure Ray A directed toward the light sourceisdeected away Ray B nds its way to the light source via a complicated path What proportion of the rays sampling the environment from P make it back to the light Since we need only consider paths which ultimately reach the light source during the shading calculation an obvious plan of attackistoreverse the pro cess and cast rays from the light source into the environment It is this pro cess of ray tracing from the light source which we refer to as backward ray tracing since it is counter to the familiar scenario in which all rays begin at the eye This is the concept at the heart of the algorithm presented here The role of backward ray tracing is conned to shading calculations however and traditional forward ray tracing is still employed to determine visible surfaces sim ulate mirror reections etc In principle the pre pro cessing step describ ed in the next section could completely obviate the need for shading rays which sample the light source for purely diuse reectors but the algorithm to date has been used only as a supplement to a standard shader Illumination as a PrePro cessing Step The idea b ehind the algorithm is quite simple As a prepro cessing step shower the environment with rays emanating from the light sources and assign to each ray some amount of energy As each ray recursively wends its way through multiple reections and refractions a fraction of its energy is dep osited at each surface which p ossesses a comp onent of diuse reection We can neglect rstgeneration rays which hit purely diuse surfaces Finally render the scene using forward ray tracing and a shader which takes the lo cal energy density into account by adding it into the diuse comp onent Generally sp eaking areas in which many illumination rays fall are illuminated more brightly by indirect light than areas in which few fall More preciselytheintensity of the indirect illumination at any p oint is the energy p er unit area and it is this whichwe seek to approximate by considering the energy in a small neighb orho o d surrounding eac h point b eing shaded The algorithm therefore requires multiple passes of ray tracing one pass from each light source and a nal pass from the eye point The missing ingredientin what has b een discussed thus far is how to communicate the resulting distribution of dep osited energy computed during the illumination backward phase to the shader used during the rendering forward phase ie how the forward and backward rays meet in the middle Illumination Maps The key to recording and retrieving the information generated during the illumination phase lies in the construction of an il lumination map for each surface in the scene which is illuminated by sp ecularly reected andor refracted light An illumination map is very similar to a texture map except that it carries brightness information instead of displacement or normal vector p erturbation information An illumination map consists of a rectangular array of data points scalar values for pure white light or RGB triples for handing colored light imp osed on a x square which in turn is in onetoone corresp ondence with a surface of an ob ject via a parametrization function T u v x y z The inverse of this mapping provides the means of journaling information ab out where illumination rays hit the surface and how much energy they dep osit Before the illumination phase b egins all data points of all illumination maps are initialized to zero When a ray hits a surface with an asso ciated illumination map which need only be true if the surface is a diuse reector during the illumination pass the uv co ordinates of the p ointofintersection are computed and a p ortion of the rays energy is contributed to the illumination map at that p oint This is done by bilinearly partitioning the contribution among the four surrounding data p oints in the illumination map and incrementing their current values gure At the completion of the illumination phase every data p ointofan illumination map contains a record of nearby hits close hits weighing more heavily than far away hits A direct hit on a data point results in all the energy b eing contributed to that p oint alone Ray generated during illumination phase Energy dissipated via -1 diffuse reflection. T (x,y,z) v Partually Diffuse Surface Data values recording V accumulated energy. U u Illumination Map Figure When an il lumination ray hits a partial ly diuse surface some of its energy is split among the four surrounding data points in the il lumination map At this stage the illumination map contains only energy information To de termine intensity we must divide the energy value at each data point by the are it represents in world co ordinates This area can be approximated using the par tial derivatives of the surface parametrization function T u v Hence the intensity asso ciated with a data p ointinthe illumination map is given by E u v Intensityu v T u v T u v u v where u v corresp onds to one of the data points and E u v is its accumulated energy after the illumination phase After dividing each data p oint by its corresp onding area the illumination map represents intensity and is ready for use by the shader During the rendering phase the intensity of indirect light falling on surface points b eing shaded can be determined by bilinearly interp olating into the asso ciated illumination map The value obtained in this w ay provides information ab out global illumination which is normally unavailable through ray tracing yet the shader can treat it as though it were just another source of diuse light Chromatic Ab erration The p osition of the fo cal p ointofalenschanges slightly with the wavelength of the light passing through it This causes an eect usually undesirable for real lenses called chromatic ab erration which is slight diusion or color separation of the re fracted light A simple metho d of approximating this phenomenon is to compute red green and blue values in the illumination maps in separate illumination phases In each of the three passes the refractive index of materials in the environment is altered blue pass should be the highest and the slightly The refractive index during the red pass the lowest Pitfalls This metho d can pro duce go o d results if one is careful to sidestep several lurking pitfalls Illumination rays must b e many times as dense as the grid p oints in the illumi nation map in areas of interest