RenderMan Interface Specification
Encyclopedia
The RenderMan Interface Specification, or RISpec in short, is an open API
Application programming interface
An application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...

 developed by Pixar Animation Studios
Pixar
Pixar Animation Studios, pronounced , is an American computer animation film studio based in Emeryville, California. The studio has earned 26 Academy Awards, seven Golden Globes, and three Grammy Awards, among many other awards and acknowledgments. Its films have made over $6.3 billion worldwide...

 to describe three-dimensional scenes and turn them into digital photorealistic
Photorealism
Photorealism is the genre of painting based on using the camera and photographs to gather information and then from this information creating a painting that appears photographic...

 images. It includes the RenderMan Shading Language
RenderMan Shading Language
Renderman Shading Language is a component of the RenderMan Interface Specification, and is used to define shaders. The language syntax is C-like....

.

As Pixar's technical specification for a standard communications protocol
Communications protocol
A communications protocol is a system of digital message formats and rules for exchanging those messages in or between computing systems and in telecommunications...

 (or interface
Interface (computer science)
In the field of computer science, an interface is a tool and concept that refers to a point of interaction between components, and is applicable at the level of both hardware and software...

) between modeling programs and rendering programs capable of producing photorealistic-quality images, RISpec is a similar concept to PostScript
PostScript
PostScript is a dynamically typed concatenative programming language created by John Warnock and Charles Geschke in 1982. It is best known for its use as a page description language in the electronic and desktop publishing areas. Adobe PostScript 3 is also the worldwide printing and imaging...

 but for describing 3D scene
Scene
- Arts and media :* Scene , an element of a larger fictional work such as a play* Scene , a part of action in a single location in a TV or movie, composed of a series of shots* Scene , a BBC drama anthology for teenagers...

s 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
Rendering (computer graphics)
Rendering is the process of generating an image from a model , by means of computer programs. A scene file contains objects in a strictly defined language or data structure; it would contain geometry, viewpoint, texture, lighting, and shading information as a description of the virtual scene...

 algorithm
Algorithm
In mathematics and computer science, an algorithm is an effective method expressed as a finite list of well-defined instructions for calculating a function. Algorithms are used for calculation, data processing, and automated reasoning...

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 proof
The phrase future proofing describes the exclusive process of trying to anticipate future developments, so that action can be taken to minimize possible negative consequences, and to seize opportunities. For more on the process and practitioners, see Futures studies.-Data storage:Electronically...

 to encompass advances in technology for a significant number of years. The current revision is 3.2.1, released in November 2005.

RenderMan Interface Specification

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
Shading language
A shading language is a special programming language adapted to map on shader programming. Those kind of languages usually have special data types like color and normal...

 (SL).

The RenderMan shading language
RenderMan Shading Language
Renderman Shading Language is a component of the RenderMan Interface Specification, and is used to define shaders. The language syntax is C-like....

 allows material definitions of surface
Surface
In mathematics, specifically in topology, a surface is a two-dimensional topological manifold. The most familiar examples are those that arise as the boundaries of solid objects in ordinary three-dimensional Euclidean space R3 — for example, the surface of a ball...

s to be described not only by adjusting a small set of parameters, but in an arbitrarily complex fashion by using a C
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....

-like programming language to write shading
Shading
Shading refers to depicting depth perception in 3D models or illustrations by varying levels of darkness.-Drawing:Shading is a process used in drawing for depicting levels of darkness on paper by applying media more densely or with a darker shade for darker areas, and less densely or with a lighter...

 procedures commonly known as procedural textures and shader
Shader
In the field of computer graphics, a shader is a computer program that is used primarily to calculate rendering effects on graphics hardware with a high degree of flexibility...

s. Lighting, and displacements on the surface are also programmable using the SL
SL
- Geography :* Saint Lucia, a Caribbean island* Sri Lanka, in South Asia* Sierra Leone, in West Africa- Computing :* SL , a class of computational complexity* .sl, the country code top-level domain for Sierra Leone...

 language. The shading language allows each statement to be executed in a SIMD
SIMD
Single instruction, multiple data , is a class of parallel computers in Flynn's taxonomy. It describes computers with multiple processing elements that perform the same operation on multiple data simultaneously...

 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
OpenGL is a standard specification defining a cross-language, cross-platform API for writing applications that produce 2D and 3D computer graphics. The interface consists of over 250 different function calls which can be used to draw complex three-dimensional scenes from simple primitives. OpenGL...

, 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, in order 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
    Orthographic projection
    Orthographic projection is a means of representing a three-dimensional object in two dimensions. It is a form of parallel projection, where all the projection lines are orthogonal to the projection plane, resulting in every plane of the scene appearing in affine transformation on the viewing surface...

     and perspective viewing transformations.
  • Depth-based hidden-surface
    Hidden surface determination
    In 3D computer graphics, hidden surface determination is the process used to determine which surfaces and parts of surfaces are not visible from a certain viewpoint...

     elimination.
  • Pixel filtering
    Signal reconstruction
    In signal processing, reconstruction usually means the determination of an original continuous signal from a sequence of equally spaced samples.This article takes a generalized abstract mathematical approach to signal sampling and reconstruction...

     and anti-aliasing
    Anti-aliasing
    In digital signal processing, spatial anti-aliasing is the technique of minimizing the distortion artifacts known as aliasing when representing a high-resolution image at a lower resolution...

    .
  • Gamma correction
    Gamma correction
    Gamma correction, gamma nonlinearity, gamma encoding, or often simply gamma, is the name of a nonlinear operation used to code and decode luminance or tristimulus values in video or still image systems...

     and dithering before quantization
    Quantization (image processing)
    Quantization, involved in image processing, is a lossy compression technique achieved by compressing a range of values to a single quantum value. When the number of discrete symbols in a given stream is reduced, the stream becomes more compressible. For example, reducing the number of colors...

    .
  • 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
    Geometric primitive
    The term geometric primitive in computer graphics and CAD systems is used in various senses, with the common meaning of the simplest geometric objects that the system can handle . Sometimes the subroutines that draw the corresponding objects are called "geometric primitives" as well...

    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
    Shading language
    A shading language is a special programming language adapted to map on shader programming. Those kind of languages usually have special data types like color and normal...

    .

Optional advanced capabilities

Additionally, the renderer may implement any of the following optional capabilities:
  • Area light sources
  • Depth of field
    Depth of field
    In optics, particularly as it relates to film and photography, depth of field is the distance between the nearest and farthest objects in a scene that appear acceptably sharp in an image...

  • Displacement mapping
    Displacement mapping
    Displacement mapping is an alternative computer graphics technique in contrast to bump mapping, normal mapping, 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...

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

  • Global illumination
    Global illumination
    Global illumination is a general name for a group of algorithms used in 3D computer graphics that are meant to add more realistic lighting to 3D scenes...

  • Level of detail
    Level of detail
    In computer graphics, accounting for level of detail involves decreasing the complexity of a 3D object representation as it moves away from the viewer or according other metrics such as object importance, eye-space speed or position....

  • Motion blur
    Motion blur
    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. It results when the image being recorded changes during the recording of a single frame, either due to rapid movement or long exposure.- Photography :When a camera...

  • Special camera projections
  • Spectral colors
  • Ray tracing
  • Solid modeling
    Solid modeling
    Solid modeling is a consistent set of principles for mathematical and computer modeling of three dimensional solids. Solid modeling is distinguished from related areas of Geometric modeling and Computer graphics by its emphasis on physical fidelity...

  • Volume shading

Exporters

  • For 3D Studio Max
    3D Studio Max
    Autodesk 3ds Max, formerly 3D Studio MAX, is for making 3D animations. It was developed and produced by Autodesk Media and Entertainment. It has modeling capabilities, a flexible plugin architecture and can be used on the Microsoft Windows platform. It's frequently used by video game developers, TV...

    : PaxRendus by Archonus (discontinued)
  • For Blender
    Blender (software)
    Blender is a free and open-source 3D computer graphics software product used for creating animated films, visual effects, interactive 3D applications or video games. The current release version is 2.60, and was released on October 19, 2011...

    : Mosaic (open source
    Open source
    The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...

    )
  • For Houdini
    Houdini (software)
    Houdini is a high-end 3D animation package developed by Side Effects Software which is headquartered in Toronto, Canada. It is a rewrite of the PRISMS ecosystem of standalone tools. Its chief distinction from other packages is that it has been designed as a purely procedural environment...

    : built-in support. However, all third party renderer support (including RenderMan) is disabled when using Apprentice or Apprentice HD licensing options.

  • For Lightwave
    LightWave
    LightWave 3D is a high end computer graphics program developed by NewTek. The latest release of LightWave runs on Windows and Mac OS X.- Overview:...

    :

  • For Maya
    Maya (software)
    Autodesk Maya , commonly shortened to Maya, is 3D computer graphics software that runs on Microsoft Windows, Mac OS and Linux, originally developed by Alias Systems Corporation and currently owned and developed by Autodesk, Inc. It is used to create interactive 3D applications, including video...

    :
    • 3Delight for Maya
    • Liquid (open source
      Open source
      The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...

      )
    • MayaMan by AnimalLogic
    • RenderMan for Maya by Pixar

  • For Softimage XSI
    Softimage XSI
    Autodesk Softimage, or simply Softimage is a 3D computer graphics application, owned by Autodesk, for producing 3D computer graphics, 3D modeling, and computer animation...

    :
    • 3Delight for XSI
    • Affogato by Rising Sun Pictures
      Rising Sun Pictures
      Rising Sun Pictures is an Australian-based visual effects company. It was founded in 1995 in Adelaide, South Australia, and is named after the Rising Sun Inn in Kensington.-Credits:...

       (open source
      Open source
      The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...

      )
    • XSIMan by Graphic Primitives

Tools

  • RenderMan Studio
  • RIBKit (open source
    Open source
    The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...

    , various RenderMan tools, e.g. a visual shader building tool called 'SLer')
  • RIBShrink and RIBDepends (tools that come with 3Delight
    3Delight
    3Delight is a proprietary, photorealistic, RenderMan-compliant offline renderer.It is developed by DNA Research, or DNA in short, a subsidiary of Taarna Studios.-Features:...

    . Shrink RIBs to take less diskspace and move RIBs with dependencies to a new location and/or localize dependencies)
  • ShaderMan.Next (open source
    Open source
    The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...

    , free shader building tool. A rewrite of ShaderMan)

Language bindings

  • Python Computer Graphics Kit for Python
    Python (programming language)
    Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...

  • RubyMan for Ruby
    Ruby (programming language)
    Ruby is a dynamic, reflective, general-purpose object-oriented programming language that combines syntax inspired by Perl with Smalltalk-like features. Ruby originated in Japan during the mid-1990s and was first developed and designed by Yukihiro "Matz" Matsumoto...

  • G&RT for Lua

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK