RenderMan

From Free net encyclopedia

(Redirected from Renderman)

Template:Cleanup-date RenderMan is an API developed by Pixar Animation Studios to describe three dimensional scenes and turn them into digital photorealistic images. The full name is the RenderMan Interface Specification.

RenderMan also is the part of the name of a rendering software package developed by PixarTemplate:Ref which implements this API.

RenderMan is often used in creating digital visual effects for the Hollywood blockbuster movies of today such as Star Wars and The Lord of the Rings.

Contents

Terminology

The name RenderMan can cause confusion because it is often used to refer to different things:

  • The RenderMan Interface Specification (RISpec) Template:Ref, including the RenderMan Shading Language: Pixar's technical specification for a standard communications protocol (or interface) between modeling programs and rendering programs capable of producing photorealistic-quality images. This is a similar concept to PostScript 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 algorithms are utilized by the latter. The interface was first published in 1988 and was designed to be sufficiently future proof to encompass advances in technology for a significant number of years.
  • PhotoRealistic RenderMan (PRMan) sold as part of a bundle called RenderMan Pro Server: A RenderMan-compliant rendering software system developed by Pixar based on their own interface specification. PRMan is chiefly a REYES algorithm implementation, although recent versions also include ray tracing and global illumination features. PRMan is used internally at Pixar and also licensed to third parties.
  • RenderMan for Maya: A scaled down version of PRMan that is designed to be completely integrated with the Maya high-end 3D computer graphics software package.

RenderMan Interface Specification

What set the RISpec apart from other standards of the time was that it allowed using high-level geometric primtives, 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 introducting by the RISpec at the time was the specification of a shading language (SL).

The RenderMan shading language allowes material definitionss of surfaces 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 procedures commonly known as procedural textures and shaders. Lighting, and displacements on the surface are also programmable using the SL language. The shading language allows, though does not insist, that each statement can be executed in a SIMD manner. Another thing that sets the 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 one pass.

RenderMan has much in common with 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 and perspective viewing transformations.
  • Depth-based hidden-surface elimination.
  • Pixel filtering and anti-aliasing.
  • Gamma correction and dithering 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 primitives 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.

Optional advanced capabilities

Additionally, the renderer may implenet any of the follwing optional capabilities:

Further reading

  1. Template:NoteRobert L. Cook, Loren Carpenter, and Edwin Catmull. "The Reyes image rendering architecture." Computer Graphics (SIGGRAPH '87 Proceedings), pp. 95–102.
  2. Template:Note Template:Cite web

See also

External links

es:RenderMan fr:RenderMan ja:RenderMan pt:RenderMan sv:RenderMan