RenderMan Interface
   HOME

TheInfoList



OR:

The RenderMan Interface Specification, or RISpec in short, is an open
API An application programming interface (API) is a connection between computers or between computer programs. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how to build ...
developed by
Pixar Animation Studios Pixar (), doing business as Pixar Animation Studios, is an American animation studio based in Emeryville, California, known for its critically and commercially successful computer-animated feature films. Pixar is a subsidiary of Walt Disney S ...
to describe three-dimensional scenes and turn them into digital
photorealistic Photorealism is a genre of art that encompasses painting, drawing and other graphic media, in which an artist studies a photograph and then attempts to reproduce the image as realistically as possible in another medium. Although the term can b ...
images. It includes the
RenderMan Shading Language Renderman Shading Language (abbreviated RSL) is a component of the RenderMan Interface Specification, and is used to define shaders. The language syntax is C-like. A shader written in RSL can be used without changes on any RenderMan-compliant rend ...
. As Pixar's technical specification for a standard
communications protocol A communication protocol is a system of rules that allows two or more entities of a communications system to transmit information via any variation of a physical quantity. The protocol defines the rules, syntax, semantics (computer science), sem ...
(or
interface Interface or interfacing may refer to: Academic journals * ''Interface'' (journal), by the Electrochemical Society * '' Interface, Journal of Applied Linguistics'', now merged with ''ITL International Journal of Applied Linguistics'' * '' Inter ...
) between modeling programs and rendering programs capable of producing photorealistic-quality images, RISpec is a similar concept to
PostScript PostScript (PS) is a page description language and dynamically typed, stack-based programming language. It is most commonly used in the electronic publishing and desktop publishing realm, but as a Turing complete programming language, it c ...
but for describing 3D scenes rather than 2D page layouts. Thus, modelling programs which understand the RenderMan Interface protocol can send data to rendering software which implements the RenderMan Interface, without caring what rendering
algorithm In mathematics and computer science, an algorithm () is a finite sequence of Rigour#Mathematics, mathematically rigorous instructions, typically used to solve a class of specific Computational problem, problems or to perform a computation. Algo ...
s are utilized by the latter. The interface was first published in 1988 (version 3.0) and was designed to be sufficiently
future proof Future-proofing (also futureproofing) is the process of anticipating the future and developing methods of risk mitigation, minimizing the effects of shocks and stresses of future events. Future-proofing is used in industries such as infrastruct ...
to encompass advances in technology for a significant number of years. The current revision is 3.2.1, released in November 2005. What set the RISpec apart from other standards of the time was that it allowed using high-level geometric primitives, like quadrics or bicubic patches, to specify geometric primitives implicitly, rather than relying on a modeling application to generate polygons approximating these shapes explicitly beforehand. Another novelty introduced by the RISpec at the time was the specification of a
shading language A shading language is a graphics programming language adapted to programming shader effects. Shading languages usually consist of special data types like "vector", "matrix", "color" and " normal". Offline rendering Shading languages used in of ...
. The
RenderMan shading language Renderman Shading Language (abbreviated RSL) is a component of the RenderMan Interface Specification, and is used to define shaders. The language syntax is C-like. A shader written in RSL can be used without changes on any RenderMan-compliant rend ...
allows material definitions of
surface A surface, as the term is most generally used, is the outermost or uppermost layer of a physical object or space. It is the portion or region of the object that can first be perceived by an observer using the senses of sight and touch, and is ...
s to be described not only by adjusting a small set of parameters, but in an arbitrarily complex fashion by using a C-like programming language to write
shading Shading refers to the depiction of depth perception in 3D models (within the field of 3D computer graphics) or illustrations (in visual art) by varying the level of darkness. Shading tries to approximate local behavior of light on the object's ...
procedures commonly known as
procedural textures In computer graphics, a procedural texture is a texture created using a mathematical description (i.e. an algorithm) rather than directly stored data. The advantage of this approach is low storage cost, unlimited texture resolution and easy textur ...
and
shader 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 s ...
s. Lighting, and displacements on the surface, are also programmable using the shading language. The shading language allows each statement to be executed in a
SIMD Single instruction, multiple data (SIMD) is a type of parallel computer, parallel processing in Flynn's taxonomy. SIMD describes computers with multiple processing elements that perform the same operation on multiple data points simultaneousl ...
manner, but does not insist on it. Another feature that sets renderers based on the RISpec apart from many other renderers is the ability to output arbitrary variables as an image: surface normals, separate lighting passes and pretty much anything else can be output from the renderer in a single pass. RenderMan has much in common with
OpenGL OpenGL (Open Graphics Library) is a Language-independent specification, cross-language, cross-platform application programming interface (API) for rendering 2D computer graphics, 2D and 3D computer graphics, 3D vector graphics. The API is typic ...
(developed by the now-defunct
Silicon Graphics Silicon Graphics, Inc. (stylized as SiliconGraphics before 1999, later rebranded SGI, historically known as Silicon Graphics Computer Systems or SGCS) was an American high-performance computing manufacturer, producing computer hardware and soft ...
), despite the two APIs being targeted to different sets of users (OpenGL to real-time hardware-assisted rendering and RenderMan to photorealistic off-line rendering). Both APIs take the form of a stack-based state machine with (conceptually) immediate rendering of geometric primitives. It is possible to implement either API in terms of the other.


Required capabilities

For a renderer to call itself "RenderMan-compliant", it must implement at least the following capabilities: *A complete hierarchical graphics state, including the attribute and transformation stacks and the active light list. * Orthographic and perspective viewing transformations. *Depth-based hidden-surface elimination. * Pixel filtering and
spatial anti-aliasing In digital signal processing, spatial anti-aliasing is a technique for minimizing the distortion artifacts (aliasing) when representing a high-resolution image at a lower resolution. Anti-aliasing is used in digital photography, computer graphics ...
. *
Gamma correction Gamma correction or gamma is a Nonlinearity, nonlinear operation used to encode and decode Relative luminance, luminance or CIE 1931 color space#Tristimulus values, tristimulus values in video or still image systems. Gamma correction is, in the s ...
and
dithering Dither is an intentionally applied form of noise used to randomize quantization error, preventing large-scale patterns such as color banding in images. Dither is routinely used in processing of both digital audio and video data, and is often ...
before quantization. *Output of images containing any combination of RGB, A, and Z. The resolutions of these files must be as specified by the user. *All of the
geometric primitive In vector computer graphics, CAD systems, and geographic information systems, a geometric primitive (or prim) is the simplest (i.e. 'atomic' or irreducible) geometric shape that the system can handle (draw, store). Sometimes the subroutines ...
s described in the specification, and provide all of the standard primitive variables applicable to each primitive. *The ability to perform shading calculations through user-programmable shading *The ability to index texture maps, environment maps, and shadow depth maps *The fifteen standard light source, surface, volume, displacement, and imager shaders required by the specification. Any additional shaders, and any deviations from the standard shaders presented in this specification, must be documented by providing the equivalent shader expressed in the RenderMan
shading language A shading language is a graphics programming language adapted to programming shader effects. Shading languages usually consist of special data types like "vector", "matrix", "color" and " normal". Offline rendering Shading languages used in of ...
.


Optional advanced capabilities

Additionally, the renderer may implement any of the following optional capabilities: *
Area light sources Area is the measure of a region's size on a surface. The area of a plane region or ''plane area'' refers to the area of a shape or planar lamina, while ''surface area'' refers to the area of an open surface or the boundary of a three-dimen ...
*
Depth of field The depth of field (DOF) is the distance between the nearest and the farthest objects that are in acceptably sharp focus (optics), focus in an image captured with a camera. See also the closely related depth of focus. Factors affecting depth ...
*
Displacement mapping 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 ...
*
Environment mapping 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 ...
*
Global illumination Global illumination (GI), or indirect illumination, is a group of algorithms used in 3D computer graphics that are meant to add more realistic lighting Lighting or illumination is the deliberate use of light to achieve practical or aest ...
* Level of detail *
Motion blur Motion blur is the apparent streaking of moving objects in a photograph or a sequence of frames, such as a film or animation. It results when the image being recorded changes during the recording of a single exposure, due to rapid movement or l ...
* Special camera projections *
Spectral colors A spectral color is a color that is evoked by monochromatic light, i.e. either a spectral line with a single wavelength or frequency of light in the visible spectrum, or a relatively narrow spectral band (e.g. lasers). Every wave of visible l ...
* Ray tracing *
Solid modeling Solid modeling (or solid modelling) is a consistent set of principles for mathematical and computer modeling of three-dimensional shapes '' (solids)''. Solid modeling is distinguished within the broader related areas of geometric modeling and ...
* Volume shading


Further reading

* * * * * *


See also

*
Reyes rendering 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 ...


References


External links


Pixar’s RI Specs
— the official specs.
RenderMan RepositoryCG References & Tutorials
by Prof. Malcolm Kesson

(notes on shader writing)

by Dominik Susmel

RIB files and shaders from the book {{DEFAULTSORT:Renderman Interface Specification 3D graphics software RenderMan