Reyes rendering

Last updated
Aqsis Reyes render of the Utah teapot with a displacement shader Aqsis - Utah teapot displacement shader.png
Aqsis Reyes render of the Utah teapot with a displacement shader

Reyes rendering is a computer software architecture used in 3D computer graphics to render photo-realistic images. It was developed in the mid-1980s by Loren Carpenter and Robert L. Cook at Lucasfilm's Computer Graphics Research Group, which is now Pixar. [1] It was first used in 1982 to render images for the Genesis effect sequence in the movie Star Trek II: The Wrath of Khan . Pixar's RenderMan was an implementation of the Reyes algorithm, It has been deprecated as of 2016 and removed as of RenderMan 21. [2] 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 in this context and are used interchangeably in this article.[ citation needed ]

Contents

Name

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. According to Robert L. Cook, Reyes is written with only the first letter capitalized, as it is in the 1987 Cook/Carpenter/Catmull SIGGRAPH paper.

Architecture

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.

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. Although many micropolygons are necessary to approximate curved surfaces accurately, they can be processed with simple, parallelizable operations. 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.

Next, a shader system assigns a color and opacity to each vertex of a micropolygon. Most Reyes renderers allow users to supply arbitrary lighting and texturing functions written in a shading language. Micropolygons are processed in large grids which allow computations to be vectorized.

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 .

Pipeline

The basic Reyes pipeline has the following steps:

  1. Bound. Calculate the bounding volume of each geometric primitive.
  2. Split. Split large primitives into smaller, diceable primitives.
  3. Dice. Convert the primitive into a grid of micropolygons, each approximately the size of a pixel.
  4. Shade. Calculate lighting and shading at each vertex of the micropolygon grid.
  5. Bust the grid into individual micropolygons, each of which is bounded and checked for visibility.
  6. Hide. Sample the micropolygons, producing the final 2D image.

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.

Reyes renderers

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:

Related Research Articles

<span class="mw-page-title-main">Rendering (computer graphics)</span> Process of generating an image from a model

Rendering or image synthesis is the process of generating a photorealistic or non-photorealistic image from a 2D or 3D model by means of a computer program. The resulting image is referred to as the render. Multiple models can be defined in a scene file containing objects in a strictly defined language or data structure. The scene file contains geometry, viewpoint, textures, lighting, and shading information describing the virtual scene. The data contained in the scene file is then passed to a rendering program to be processed and output to a digital image or raster graphics image file. The term "rendering" is analogous to the concept of an artist's impression of a scene. The term "rendering" is also used to describe the process of calculating effects in a video editing program to produce the final video output.

<span class="mw-page-title-main">Scanline rendering</span> 3D computer graphics image rendering method

Scanline rendering is an algorithm for visible surface determination, in 3D computer graphics, that works on a row-by-row basis rather than a polygon-by-polygon or pixel-by-pixel basis. All of the polygons to be rendered are first sorted by the top y coordinate at which they first appear, then each row or scan line of the image is computed using the intersection of a scanline with the polygons on the front of the sorted list, while the sorted list is updated to discard no-longer-visible polygons as the active scan line is advanced down the picture.

<span class="mw-page-title-main">Rasterisation</span> Conversion of a vector-graphics image to a raster image

In computer graphics, rasterisation or rasterization is the task of taking an image described in a vector graphics format (shapes) and converting it into a raster image. The rasterized image may then be displayed on a computer display, video display or printer, or stored in a bitmap file format. Rasterization may refer to the technique of drawing 3D models, or to the conversion of 2D rendering primitives, such as polygons and line segments, into a rasterized format.

The RenderMan Interface Specification, or RISpec in short, is an open API developed by Pixar Animation Studios to describe three-dimensional scenes and turn them into digital photorealistic images. It includes the RenderMan Shading Language.

<span class="mw-page-title-main">Texture mapping</span> Method of defining surface detail on a computer-generated graphic or 3D model

Texture mapping is a method for mapping a texture on a computer-generated graphic. Texture here can be high frequency detail, surface texture, or color.

<span class="mw-page-title-main">Ray casting</span> Methodological basis for 3D CAD/CAM solid modeling and image rendering

Ray casting is the methodological basis for 3D CAD/CAM solid modeling and image rendering. It is essentially the same as ray tracing for computer graphics where virtual light rays are "cast" or "traced" on their path from the focal point of a camera through each pixel in the camera sensor to determine what is visible along the ray in the 3D scene. The term "Ray Casting" was introduced by Scott Roth while at the General Motors Research Labs from 1978–1980. His paper, "Ray Casting for Modeling Solids", describes modeled solid objects by combining primitive solids, such as blocks and cylinders, using the set operators union (+), intersection (&), and difference (-). The general idea of using these binary operators for solid modeling is largely due to Voelcker and Requicha's geometric modelling group at the University of Rochester. See solid modeling for a broad overview of solid modeling methods. This figure on the right shows a U-Joint modeled from cylinders and blocks in a binary tree using Roth's ray casting system in 1979.

<span class="mw-page-title-main">Volume rendering</span> Representing a 3D-modeled object or dataset as a 2D projection

In scientific visualization and computer graphics, volume rendering is a set of techniques used to display a 2D projection of a 3D discretely sampled data set, typically a 3D scalar field.

<span class="mw-page-title-main">Houdini (software)</span> 3D animation software

Houdini is a 3D animation software application developed by Toronto-based SideFX, who adapted it from the PRISMS suite of procedural generation software tools.

<span class="mw-page-title-main">Shader</span> Type of program in a graphical processing unit (GPU)

In computer graphics, a shader is a computer program that calculates the appropriate levels of light, darkness, and color during the rendering of a 3D scene—a process known as shading. Shaders have evolved to perform a variety of specialized functions in computer graphics special effects and video post-processing, as well as general-purpose computing on graphics processing units.

Pixar RenderMan is proprietary photorealistic 3D rendering software produced by Pixar Animation Studios. Pixar uses RenderMan to render their in-house 3D animated movie productions and it is also available as a commercial product licensed to third parties. In 2015, a free non-commercial version of RenderMan became available.

<span class="mw-page-title-main">Reflection mapping</span>

In computer graphics, reflection mapping or environment mapping is an efficient image-based lighting technique for approximating the appearance of a reflective surface by means of a precomputed texture. The texture is used to store the image of the distant environment surrounding the rendered object.

<span class="mw-page-title-main">Micropolygon</span> Computer graphics polygon very small relative to the image being rendered

In 3D computer graphics, a micropolygon is a polygon that is very small relative to the image being rendered. Commonly, the size of a micropolygon is close to or even less than the area of a pixel. Micropolygons allow a renderer to create a highly detailed image.

<span class="mw-page-title-main">Loren Carpenter</span> American computer graphics researcher

Loren C. Carpenter is a computer graphics researcher and developer.

In computer graphics, per-pixel lighting refers to any technique for lighting an image or scene that calculates illumination for each pixel on a rendered image. This is in contrast to other popular methods of lighting such as vertex lighting, which calculates illumination at each vertex of a 3D model and then interpolates the resulting values over the model's faces to calculate the final per-pixel color values.

3Delight, currently known as 3DelightNSI, is 3D computer graphics software that runs on Microsoft Windows, macOS and Linux. Developed by Illumination Research, it is both a photorealistic and NPR path tracing offline renderer based on its NSI API scene description and on OSL for shading. It has been used to render full CGI animation and VFX for numerous feature films. It comes with supported, open source plug-in integrations for several DCC applications, such as Maya, Houdini, Cinema4D, Katana, OpenUSD Hydra, and a democratic free license that allows for commercial use. It also provides a fully distributed cloud rendering service called 3Delight Cloud.

Tiled rendering is the process of subdividing a computer graphics image by a regular grid in optical space and rendering each section of the grid, or tile, separately. The advantage to this design is that the amount of memory and bandwidth is reduced compared to immediate mode rendering systems that draw the entire frame at once. This has made tile rendering systems particularly common for low-power handheld device use. Tiled rendering is sometimes known as a "sort middle" architecture, because it performs the sorting of the geometry in the middle of the graphics pipeline instead of near the end.

<span class="mw-page-title-main">3D computer graphics</span> Graphics that use a three-dimensional representation of geometric data

3D computer graphics, sometimes called CGI, 3-D-CGI or three-dimensional computer graphics, are graphics that use a three-dimensional representation of geometric data that is stored in the computer for the purposes of performing calculations and rendering digital images, usually 2D images but sometimes 3D images. The resulting images may be stored for viewing later or displayed in real time.

<span class="mw-page-title-main">Computer graphics</span> Graphics created using computers

Computer graphics deals with by generating images and art with the aid of computers. Today, computer graphics is a core technology in digital photography, film, video games, digital art, cell phone and computer displays, and many specialized applications. A great deal of specialized hardware and software has been developed, with the displays of most devices being driven by computer graphics hardware. It is a vast and recently developed area of computer science. The phrase was coined in 1960 by computer graphics researchers Verne Hudson and William Fetter of Boeing. It is often abbreviated as CG, or typically in the context of film as computer generated imagery (CGI). The non-artistic aspects of computer graphics are the subject of computer science research.

<span class="mw-page-title-main">Displacement mapping</span> Computer graphics technique

Displacement mapping is an alternative computer graphics technique in contrast to bump, normal, and parallax mapping, using a texture or height map to cause an effect where the actual geometric position of points over the textured surface are displaced, often along the local surface normal, according to the value the texture function evaluates to at each point on the surface. It gives surfaces a great sense of depth and detail, permitting in particular self-occlusion, self-shadowing and silhouettes; on the other hand, it is the most costly of this class of techniques owing to the large amount of additional geometry.

This is a glossary of terms relating to computer graphics.

References

  1. RenderMan@20: Ed Catmull and Dana Batali Reflect On Pixar's Killer App"
  2. "Pixar ships RenderMan 21 | CG Channel". 2016-07-20. Retrieved 2021-03-11.
  3. "Pixar ships RenderMan 21 | CG Channel". www.cgchannel.com. Retrieved 2016-07-22.