| OCR Text |
Show 47 To use the points on the unit disk to perturb a ray we need to find two p rpen-dicular vectors normal to the ray. The "maximum" two components (of x, y, or z) of the ray's direction are found first, and then a first perpendicular may be found by setting its "minimum" component to zero, and the others to the 2D perpendicular of the ray (this vector must be normalized). The second perpendicular vector is found by taking the cross product of the first and the original direction vector (this does not need normalizing, since the first two already are). For example, given a unit length direction vector for a ray r, if its minimum component is x, then the first perpendicular pl is: plx = 0 ply= -rz plz = ry \Vhen normalizing pl, only the second two components need be considered, and the square root may be done with table look up, because we know the value to be between zero and one. Similarly, the cross product r x pl is abbreviated because we already know that plx = 0. 4.3.2 Rendering moving surfaces l\1otion blur is a means of removing temporal aliasing from animated sequences. It also provides a unique way of showing the dynamics of a moving system in a single image. Motion blur is complicated because the objects need to be sampled as they move to different positions in space, yet we do not wish to lose the bounding box information developed above - moving a large tree of polygons for each ray would be prohibitively expensive. The solution is to "move" the rays to the objects instead of moving objects to the rays. In order to accomplish this the time for an image is presampled. For example, if we are to use 25 samples for a given pixel (i.e., a 5 x 5 sampling grid ), we would |