Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
RenderMan Interface Specification
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{short description|Open API by Pixar Animation Studios}} {{multiple issues|{{more footnotes|date=June 2013}} {{primary sources|date=June 2013}}}} The '''RenderMan Interface Specification''',<ref>{{cite web |title = RenderMan - Developers Corner - RI Spec |url = http://renderman.pixar.com/products/rispec/ |accessdate = 2009-06-12 |url-status = dead |archiveurl = https://web.archive.org/web/20090516191715/http://renderman.pixar.com/products/rispec/ |archivedate = 2009-05-16 }}</ref> or '''RISpec''' in short, is an open [[Application programming interface|API]] developed by [[Pixar|Pixar Animation Studios]] to describe three-dimensional scenes and turn them into digital [[Photorealism|photorealistic]] images. It includes the [[RenderMan Shading Language]]. As Pixar's technical specification for a standard [[communications protocol]] (or [[interface (computer science)|interface]]) between modeling programs and rendering programs capable of producing photorealistic-quality images, RISpec is a similar concept to [[PostScript]] but for describing 3D [[Rendering (computer graphics)|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 (computer graphics)|rendering]] [[algorithm]]s 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|RenderMan shading language]] allows [[Procedural textures|material definition]]s of [[polyhedral surface|surface]]s to be described not only by adjusting a small set of parameters, but in an arbitrarily complex fashion by using a [[C (programming language)|C]]-like programming language to write [[shading]] procedures commonly known as [[procedural textures]] and [[shader]]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]] 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== 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 projection|Orthographic]] and [[Perspective projection|perspective]] viewing transformations. *Depth-based [[Hidden surface determination|hidden-surface]] elimination. *[[Signal reconstruction|Pixel filtering]] and [[spatial anti-aliasing]]. *[[Gamma correction]] and [[dithering]] before [[Quantization (image processing)|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]]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]]. ==Optional advanced capabilities== Additionally, the renderer may implement any of the following optional capabilities: * [[Area light sources]] * [[Depth of field]] * [[Displacement mapping]] * [[Reflection mapping|Environment mapping]] * [[Global illumination]] * [[Level of detail (computer graphics)|Level of detail]] * [[Motion blur]] * [[Special camera projections]] * [[Spectral colors]] * [[Ray tracing (graphics)|Ray tracing]] * [[Solid modeling]] * [[Volume shading]] ==Further reading== * {{cite book | author-link = Anthony Apodaca | first = Anthony A. | last = Apodaca | author2 = Larry Gritz | author2-link = Larry Gritz | author3 = Ronen Barzel | author3-link = Ronen Barzel | title = Advanced RenderMan: Creating CGI for Motion Pictures | year = 1999 | location = San Francisco | publisher = Morgan Kaufmann Publishers | isbn = 1-55860-618-1 | oclc = 42621055 | url = https://archive.org/details/advancedrenderma00apod_0 }} * {{cite book | author-link = David S. Ebert | first = David S. | last = Ebert |author2=F. Kenton Musgrave |author2-link=F. Kenton Musgrave |author3=Darwyn Peachey |author3-link=Darwyn Peachey |author4=Ken Perlin |author4-link=Ken Perlin |author5=Steven Worley |author5-link=Steven Worley | title = Texturing and modeling: a procedural approach, 3rd ed. | year = 2003 | location = Burlington, MA | publisher = Morgan Kaufmann Publishers | isbn = 1-55860-848-6 | oclc = 52689816 }} * {{cite book | author-link = Saty Raghavachary | first = Saty | last = Raghavachary | title = Rendering for Beginners: Image synthesis using RenderMan | year = 2005 | location = Burlington, MA | publisher = [[Focal Press]] | isbn = 0-240-51935-3 | oclc = 57670361 }} * {{cite book | author-link = Ian Stephenson (programmer)| first = Ian | last = Stephenson | title = Essential RenderMan Fast | year = 2002 | location = London, New York | publisher = Springer | isbn = 1-85233-608-0 | oclc = 50494960 }} * {{cite book | first = Steve | last = Upstill | author-link = Steve Upstill | title = The RenderMan Companion: A Programmer's Guide to Realistic Computer Graphics | year = 1990 | location = Reading, Mass | publisher = [[Addison-Wesley]] | isbn = 0-201-50868-0 | oclc = 19741379 | url = https://archive.org/details/rendermancompani00upst }} * {{cite book | author-link = Rudy Cortes | first = Rudy | last = Cortes |author2=Saty Raghavachary |author2-link=Saty Raghavachary | title = The RenderMan Shading Language Guide | year = 2007 | publisher = Course Technology PTR | isbn = 978-1-59863-286-6 }} ==See also== * [[Reyes rendering]] ==References== {{Reflist}} ==External links== *[http://renderman.pixar.com/view/rispec Pixarβs RI Specs] β the official specs. *[https://web.archive.org/web/20040327030245/http://www.renderman.org/ RenderMan Repository] *[http://www.fundza.com/ CG References & Tutorials] by Prof. Malcolm Kesson *[https://web.archive.org/web/20070320223326/http://accad.osu.edu/~smay/RManNotes/RManNotes.html RenderMan Notes] (notes on shader writing) *[https://web.archive.org/web/20110721102813/http://www.vga.hr/resources/tutorials/3d/rsl/index.htm RenderMan Shader Language] by Dominik Susmel *[https://web.archive.org/web/20110809141400/http://www.smartcg.com/tech/cg/books/RfB/home/index.html Rendering for Beginners] RIB files and shaders from the book {{Renderman software}} {{DEFAULTSORT:Renderman Interface Specification}} [[Category:3D graphics software]] [[Category:RenderMan]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Cite book
(
edit
)
Template:Cite web
(
edit
)
Template:Multiple issues
(
edit
)
Template:Reflist
(
edit
)
Template:Renderman software
(
edit
)
Template:Short description
(
edit
)