For faster navigation, this Iframe is preloading the Wikiwand page for RenderMan Interface Specification.

RenderMan Interface Specification

This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages) This article includes a list of general references, but it lacks sufficient corresponding inline citations. Please help to improve this article by introducing more precise citations. (June 2013) (Learn how and when to remove this message) This article relies excessively on references to primary sources. Please improve this article by adding secondary or tertiary sources. Find sources: "RenderMan Interface Specification" – news · newspapers · books · scholar · JSTOR (June 2013) (Learn how and when to remove this message) (Learn how and when to remove this message)

The RenderMan Interface Specification,[1] 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.

As Pixar's technical specification for a standard communications protocol (or interface) between modeling programs and rendering programs capable of producing photorealistic-quality images, RISpec 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 (version 3.0) and was designed to be sufficiently future proof 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.

The RenderMan shading language allows material definitions 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 shading language. The shading language allows each statement to be executed in a SIMD 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 (developed by the now-defunct Silicon Graphics), 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

[edit]

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.
  • 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

[edit]

Additionally, the renderer may implement any of the following optional capabilities:

Further reading

[edit]
  • Apodaca, Anthony A.; Larry Gritz; Ronen Barzel (1999). Advanced RenderMan: Creating CGI for Motion Pictures. San Francisco: Morgan Kaufmann Publishers. ISBN 1-55860-618-1. OCLC 42621055.
  • Ebert, David S.; F. Kenton Musgrave; Darwyn Peachey; Ken Perlin; Steven Worley (2003). Texturing and modeling: a procedural approach, 3rd ed. Burlington, MA: Morgan Kaufmann Publishers. ISBN 1-55860-848-6. OCLC 52689816.
  • Raghavachary, Saty (2005). Rendering for Beginners: Image synthesis using RenderMan. Burlington, MA: Focal Press. ISBN 0-240-51935-3. OCLC 57670361.
  • Stephenson, Ian (2002). Essential RenderMan Fast. London, New York: Springer. ISBN 1-85233-608-0. OCLC 50494960.
  • Upstill, Steve (1990). The RenderMan Companion: A Programmer's Guide to Realistic Computer Graphics. Reading, Mass: Addison-Wesley. ISBN 0-201-50868-0. OCLC 19741379.
  • Cortes, Rudy; Saty Raghavachary (2007). The RenderMan Shading Language Guide. Course Technology PTR. ISBN 978-1-59863-286-6.

See also

[edit]

References

[edit]
  1. ^ "RenderMan - Developers Corner - RI Spec". Archived from the original on 2009-05-16. Retrieved 2009-06-12.
[edit]
{{bottomLinkPreText}} {{bottomLinkText}}
RenderMan Interface Specification
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?