RenderMan Interface Specification
   HOME

TheInfoList



OR:

The RenderMan Interface Specification, or RISpec in short, is an open
API An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how ...
developed by
Pixar Animation Studios Pixar Animation Studios (commonly known as Pixar () and stylized as P I X A R) is an American computer animation studio known for its critically and commercially successful computer animated feature films. It is based in Emeryville, Californ ...
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 be ...
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 kind of variation of a physical quantity. The protocol defines the rules, syntax, semantics and synchr ...
(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'' * '' Int ...
) 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 in the electronic publishing and desktop publishing realm. It is a dynamically typed, concatenative programming language. It was created at Adobe Systems by John Warnock, Charles Geschke, Doug Br ...
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 rigorous instructions, typically used to solve a class of specific Computational problem, problems or to perform a computation. Algorithms are used as specificat ...
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 is the process of anticipating the future and developing methods of minimizing the effects of shocks and stresses of future events. Future-proofing is used in industries such as electronics, medical industry, industrial desig ...
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 (characterizing surfaces, volumes, and objects). Such language forms usually consist of special data types, like "vector", "matrix", "color" and " normal". ...
. 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 spec ...
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 processing in Flynn's taxonomy. SIMD can be internal (part of the hardware design) and it can be directly accessible through an instruction set architecture (ISA), but it should ...
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 cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics. The API is typically used to interact with a graphics processing unit (GPU), to achieve hardwa ...
(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 graphi ...
. *
Gamma correction Gamma correction or gamma is a nonlinear operation used to encode and decode luminance or tristimulus values in video or still image systems. Gamma correction is, in the simplest cases, defined by the following power-law expression: : V_\text = ...
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, geometric primitive (or prim) is the simplest (i.e. 'atomic' or irreducible) geometric shape that the system can handle (draw, store). Sometimes the subroutines that ...
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 (characterizing surfaces, volumes, and objects). Such language forms usually consist of special data types, like "vector", "matrix", "color" and " normal". ...
.


Optional advanced capabilities

Additionally, the renderer may implement any of the following optional capabilities: *
Area light sources Area is the quantity that expresses the extent of a region on the plane or on a curved 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 s ...
*
Depth of field The depth of field (DOF) is the distance between the nearest and the furthest objects that are in acceptably sharp focus in an image captured with a camera. Factors affecting depth of field For cameras that can only focus on one object dist ...
*
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 Computer graphics deals with generating images with the aid of computers. Today, computer graphics is a core technology in digital photography, film, video games, cell phone and computer displays, and many specialized a ...
*
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 to 3D scenes. Such algorithms take into account not only the light that comes directly from ...
* 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 lo ...
* Special camera projections *
Spectral colors A spectral color is a color that is evoked by ''monochromatic light'', i.e. either a single wavelength of light in the visible spectrum, or by a relatively narrow band of wavelengths (e.g. lasers). Every wavelength of visible light is percei ...
* 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 from related areas of geometric modeling and computer graphi ...
* 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 i ...


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