REYES (computer graphics)

from Wikipedia, the free encyclopedia

The REYES architecture is an image synthesis - algorithm , which in the 3D computer graphics is used to photo-realistic to calculate images. It was developed in the mid-1980s by the Lucasfilms Computer Graphics Research Group, now known as Pixar .

For the first time REYES was used for the movie Star Trek II: The Wrath of Khan to compute images of the Genesis effect sequence. Pixar's PhotoRealistic RenderMan (PRMan for short) is an implementation of the REYES algorithm. According to the original publication describing the algorithm, the REYES image synthesis system is: "An architecture ... for the fast, high-quality synthesis of complex images." REYES was proposed as a collection of algorithms and data processing methods . The terms algorithm and architecture but in this article as synonyms used and are (in this case) are interchangeable.

REYES is the backronym for Renders Everything You Ever Saw (roughly translated: Calculates everything you've ever seen ), and the name is also an allusion to Point Reyes , California , near which Lucasfilm is based, and an allusion to that Processes that are connected with optical, imaging systems ( REYES is spoken like the English word rays , which means light rays or in optics, as singular ray , the visual ray).

The architecture was designed with a number of conditions in mind:

  • Geometric Complexity / Diversity : In order to create visually complex and rich images, the user of an image synthesis system must have the freedom to model a large number of complex, geometric structures or to create them using procedural models, such as fractals or particle systems.
  • Complex shaders : Much of the visual complexity of a scene is created by the way the light interacts with the surface of solids. Generally in the field of computer graphics this is achieved through textures . Textures can be tables of colored pixels that describe surface displacement , surface transparency, or surface reflectivity. REYES allows the user to incorporate procedural shaders, whereby surface structure and visual interaction (of the objects in a scene) is achieved through the use of a computer program that implements procedural algorithms instead of looking up a simple table (such as a texture) . Much of this algorithm aims to minimize the time it takes the main processor to request texture data from data stores .
  • Minimal ray tracing : When REYES was designed, the computing power and storage capacity of the computer systems were less powerful. This meant that ray tracing a photorealistic scene could take tens to hundreds of hours per frame. Algorithms like REYES, which as a rule do not use ray tracing, therefore run much faster and still have an almost photo-realistic result.
  • Speed : The calculation of a two-hour film with 24 frames per second is possible with an average calculation time of three minutes per single frame within a year.
  • Image quality : Artifacts in the image caused by the image synthesis algorithm used are unacceptable.
  • Flexibility : The architecture should be flexible enough to allow the integration of new technologies without a complete re-implementation of the algorithm.

REYES efficiently fulfills several tasks for effects that are necessary for the calculation in cinema film quality: smooth, curved surfaces, surface texturing , motion blur and depth of field .

REYES calculates curved surfaces, such as those described by parametric patches, by dividing the patches into micropolygons; these are small squares, each smaller than the size of a pixel . Although many micropolygons are required to accurately approximate a curved surface, they can be processed with simple, parallelizable operations . A REYES renderer tesslates the higher order primitives if necessary and divides each primitive only so finely that it looks accurate in the final image.

A shader then assigns color and transparency to each micropolygon. Most REYES renderer allow the user to any lighting - and texturing - features add even written in a shader language that is specifically designed for the needs of the processing of data from the image synthesis. The processing of the micropolygons is done in such a way that the calculation of the data can be vectorized .

Shaded micropolygons are mapped onto the image plane to produce the output image. REYES uses an innovative algorithm for the visibility problem , English hider called, which performs the necessary integration of motion and depth of field without the need for more geometry or shader calls as the calculation would need a sharp image. The hider collects all the colors of the micro-polygons in a pixel over time and lens position by a Monte Carlo algorithm , the Stochastic Sampling is called.

The basic REYES graphics pipeline is based on the following steps:

  1. Bound : Calculation of the bounding volume of each individual geometric primitive.
  2. Split : Divide large primitives into smaller ones that can be broken down into micropolygons.
  3. Dice : Convert the primitives into a grid of micropolygons, each micropolygon the approximate size of a pixel.
  4. Shade : Calculate the lighting and shading and each vertex of the micropolygon grid.
  5. Bust : Break down the micropolygon grid into individual micropolygons, calculate a bounding volume for each and check whether it is not covered by other micropolygons (based on the principle, a miniature version of the graphics pipeline ).
  6. Hide : Scan the micropolygons and create the final 2D image.

With this design, the renderer has to provide the entire image memory in main memory , since the final image cannot be output until all primitives have been processed. To optimize memory, another step, called bucketing , is added before the dice step . For this purpose, the output image is divided into a grid of individual rectangles, called a bucket , each typically 16 × 16 pixels in size. The objects are then roughly divided along the boundaries of the buckets and then assigned to the respective bucket according to their location . Each bucket goes through the dice and the rest of the graphics pipeline, and data from the previous bucket that is no longer needed is discarded before the next one is calculated. In this way, only the image memory for the bucket in process and memory for the higher-order scene description need to be provided for all geometric primitives. This leads to a considerable reduction in the memory consumption for an average scene compared to the unchanged REYES algorithm.

REYES renderer

The following renderers use the REYES algorithm one way or another, or at least allow the user to use it as a default:

literature

Web links