Reyes rendering is a computer software architecture used in 3D computer graphics to render photo-realistic images. 3D computer graphics (in contrast to 2D computer graphics) are graphics that use a three-dimensional representation of geometric data that is stored in the computer Rendering is the process of generating an image from a model, by means of computer programs It was developed in the mid-1980s by Lucasfilm's Computer Graphics Research Group, which is now Pixar. Lucasfilm Limited' is an American Film production company founded by George Lucas in 1971, based in San Francisco California Pixar Animation Studios is a CGI animation production company based in Emeryville California. It was first used in 1982 to render images for the Genesis effect sequence in the movie Star Trek II: The Wrath Of Khan. Star Trek II The Wrath of Khan is the second feature film based on the Star Trek Science fiction Television series, following Pixar's PhotoRealistic RenderMan is one implementation of the Reyes algorithm. PhotoRealistic RenderMan, or PRMan for short is a proprietary photorealistic RenderMan -compliant renderer According to the original paper describing the algorithm the Reyes image rendering system is "An architecture . . . for fast high-quality rendering of complex images. " Reyes was proposed as a collection of algorithms and data processing systems. However the terms "algorithm" and "architecture" have come to be used synonymously and are used interchangeably in this article.
Reyes is an acronym for Renders Everything You Ever Saw (the name is also a pun on Point Reyes, California, near where Lucasfilm was located) and is suggestive of processes connected with optical imaging systems. Point Reyes is a prominent cape on the Pacific coast of northern California.
The architecture was designed with a number of goals in mind:
Reyes efficiently achieves several effects that were deemed necessary for film-quality rendering: smooth curved surfaces, surface texturing, motion blur, and depth of field. Motion blur is the apparent streaking of rapidly moving objects in a still image or a sequence of images such as a movie or Animation. In Optics, particularly as it relates to Film and Photography, the depth of field (DOF is the portion of a scene that appears sharp in the image
Reyes renders curved surfaces, such as those represented by parametric patches, by dividing them into micropolygons, small quadrilaterals each less than one pixel in size. In 3D computer graphics, a micropolygon (or µ-polygon is a Polygon that is very small relative to the image being rendered Although many micropolygons are necessary to approximate curved surfaces accurately, they can be processed with simple, parallelizable operations. Parallel computing is a form of computation in which many instructions are carried out simultaneously operating on the principle that large problems can often A Reyes renderer tessellates high-level primitives into micropolygons on demand, dividing each primitive only as finely as necessary to appear smooth in the final image. A tessellation or tiling of the plane is a collection of Plane figures that fills the plane with no overlaps and no gaps
Next, a shader system assigns a color and opacity to each micropolygon. Most Reyes renderers allow users to supply arbitrary lighting and texturing functions written in a shading language. A shading language is a special Programming language adapted to easily map on Shader programming Micropolygons are processed in large grids which allow computations to be vectorized. A vector processor, or array processor, is a CPU design where the instruction set includes operations that can perform mathematical operations on multiple data
Shaded micropolygons are sampled in screen space to produce the output image. Reyes employs an innovative hidden-surface algorithm or hider which performs the necessary integrations for motion blur and depth of field without requiring more geometry or shading samples than an unblurred render would need. The hider accumulates micropolygon colors at each pixel across time and lens position using a Monte Carlo method called stochastic sampling. Monte Carlo methods are a class of Computational Algorithms that rely on repeated Random sampling to compute their results
The basic Reyes pipeline has the following steps:
In this design, the renderer must store the entire frame buffer in memory since the final image cannot be output until all primitives have been processed. A common memory optimization introduces a step called bucketing prior to the dicing step. The output image is divided into a coarse grid of "buckets," each typically 16 by 16 pixels in size. The objects are then split roughly along the bucket boundaries and placed into buckets based on their location. Each bucket is diced and drawn individually, and the data from the previous bucket is discarded before the next bucket is processed. In this way only a frame buffer for the current bucket and the high-level descriptions of all geometric primitives must be maintained in memory. For typical scenes, this leads to a significant reduction in memory usage compared to the unmodified Reyes algorithm.
The following renderers use the Reyes algorithm in one way or the other or at least allow users to select it to produce their images: