RenderMan Interface Specification

Last updated

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.

Contents

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

For a renderer to call itself "RenderMan-compliant", it must implement at least the following capabilities:

Optional advanced capabilities

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

Further reading

See also

Related Research Articles

<span class="mw-page-title-main">Rendering (computer graphics)</span> Process of generating an image from a model

Rendering or image synthesis is the process of generating a photorealistic or non-photorealistic image from a 2D or 3D model by means of a computer program. The resulting image is referred to as the render. Multiple models can be defined in a scene file containing objects in a strictly defined language or data structure. The scene file contains geometry, viewpoint, textures, lighting, and shading information describing the virtual scene. The data contained in the scene file is then passed to a rendering program to be processed and output to a digital image or raster graphics image file. The term "rendering" is analogous to the concept of an artist's impression of a scene. The term "rendering" is also used to describe the process of calculating effects in a video editing program to produce the final video output.

<span class="mw-page-title-main">OpenGL</span> Cross-platform graphics API

OpenGL 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 hardware-accelerated rendering.

Direct3D is a graphics application programming interface (API) for Microsoft Windows. Part of DirectX, Direct3D is used to render three-dimensional graphics in applications where performance is important, such as games. Direct3D uses hardware acceleration if it is available on the graphics card, allowing for hardware acceleration of the entire 3D rendering pipeline or even only partial acceleration. Direct3D exposes the advanced graphics capabilities of 3D graphics hardware, including Z-buffering, W-buffering, stencil buffering, spatial anti-aliasing, alpha blending, color blending, mipmapping, texture blending, clipping, culling, atmospheric effects, perspective-correct texture mapping, programmable HLSL shaders and effects. Integration with other DirectX technologies enables Direct3D to deliver such features as video mapping, hardware 3D rendering in 2D overlay planes, and even sprites, providing the use of 2D and 3D graphics in interactive media ties.

Autodesk 3ds Max, formerly 3D Studio and 3D Studio Max, is a professional 3D computer graphics program for making 3D animations, models, games and images. It is developed and produced by Autodesk Media and Entertainment. It has modeling capabilities and a flexible plugin architecture and must be used on the Microsoft Windows platform. It is frequently used by video game developers, many TV commercial studios, and architectural visualization studios. It is also used for movie effects and movie pre-visualization. 3ds Max features shaders, dynamic simulation, particle systems, radiosity, normal map creation and rendering, global illumination, a customizable user interface, and its own scripting language.

<span class="mw-page-title-main">Houdini (software)</span> 3D animation software

Houdini is a 3D animation software application developed by Toronto-based SideFX, who adapted it from the PRISMS suite of procedural generation software tools.

<span class="mw-page-title-main">Shader</span> Type of program in a graphical processing unit (GPU)

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 specialized functions in computer graphics special effects and video post-processing, as well as general-purpose computing on graphics processing units.

Pixar RenderMan is proprietary photorealistic 3D rendering software produced by Pixar Animation Studios. Pixar uses RenderMan to render their in-house 3D animated movie productions and it is also available as a commercial product licensed to third parties. In 2015, a free non-commercial version of RenderMan became available.

<span class="mw-page-title-main">Reyes rendering</span> Computer software architecture in 3D computer graphics

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 is now Pixar. It was first used in 1982 to render images for the Genesis effect sequence in the movie Star Trek II: The Wrath of Khan. Pixar's RenderMan was an implementation of the Reyes algorithm, It has been deprecated as of 2016 and removed as of RenderMan 21. According to the original paper describing the algorithm, the Reyes image rendering system is "An architecture for fast high-quality rendering of complex images." Reyes was proposed as a collection of algorithms and data processing systems. However, the terms "algorithm" and "architecture" have come to be used synonymously in this context and are used interchangeably in this article.

A shading language is a graphics programming language adapted to programming shader effects. Shading languages usually consist of special data types like "vector", "matrix", "color" and "normal".

<span class="mw-page-title-main">Software rendering</span> Generating images by computer software

Software rendering is the process of generating an image from a model by means of computer software. In the context of computer graphics rendering, software rendering refers to a rendering process that is not dependent upon graphics hardware ASICs, such as a graphics card. The rendering takes place entirely in the CPU. Rendering everything with the (general-purpose) CPU has the main advantage that it is not restricted to the (limited) capabilities of graphics hardware, but the disadvantage is that more transistors are needed to obtain the same speed.

<span class="mw-page-title-main">Micropolygon</span> Computer graphics polygon very small relative to the image being rendered

In 3D computer graphics, a micropolygon is a polygon that is very small relative to the image being rendered. Commonly, the size of a micropolygon is close to or even less than the area of a pixel. Micropolygons allow a renderer to create a highly detailed image.

<span class="mw-page-title-main">3D rendering</span> Process of converting 3D scenes into 2D images

3D rendering is the 3D computer graphics process of converting 3D models into 2D images on a computer. 3D renders may include photorealistic effects or non-photorealistic styles.

3Delight, currently known as 3DelightNSI, is 3D computer graphics software that runs on Microsoft Windows, macOS and Linux. Developed by Illumination Research, it is both a photorealistic and NPR path tracing offline renderer based on its NSI API scene description and on OSL for shading. It has been used to render full CGI animation and VFX for numerous feature films. It comes with supported, open source plug-in integrations for several DCC applications, such as Maya, Houdini, Cinema4D, Katana, OpenUSD Hydra, and a democratic free license that allows for commercial use. It also provides a fully distributed cloud rendering service called 3Delight Cloud.

The name RenderMan can cause confusion because it has been used to refer to different things developed by Pixar Animation Studios:

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

<span class="mw-page-title-main">JrMan</span>

jrMan renderer is an open-source version of the Reyes rendering algorithm used by Pixar's PhotoRealistic RenderMan, implemented in Java by Gerardo Horvilleur, Jorge Vargas, Elmer Garduno and Alessandro Falappa.

<span class="mw-page-title-main">Modo (software)</span> Software

Modo is a polygon and subdivision surface modeling, sculpting, 3D painting, animation and rendering package developed by Luxology, LLC, which is now merged with and known as Foundry. The program incorporates features such as n-gons and edge weighting, and runs on Microsoft Windows, Linux and macOS platforms.

<span class="mw-page-title-main">Displacement mapping</span> Computer graphics technique

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 displaced, often along the local surface normal, according to the value the texture function evaluates to at each point on the surface. It gives surfaces a great sense of depth and detail, permitting in particular self-occlusion, self-shadowing and silhouettes; on the other hand, it is the most costly of this class of techniques owing to the large amount of additional geometry.

Arnold is a computer program for rendering three-dimensional, computer-generated scenes using unbiased, physically-based, Monte Carlo path tracing techniques. Created in Spain by Marcos Fajardo and later co-developed by his company Solid Angle SL and Sony Pictures Imageworks, Arnold is one of the most widely used photorealistic rendering systems in computer graphics worldwide, particularly in animation and VFX for film and TV. Notable feature films that have used Arnold include Monster House, Cloudy with a Chance of Meatballs, Alice in Wonderland, Thor, Captain America, X-Men: First Class, The Avengers, Space Pirate Captain Harlock, Elysium, Pacific Rim, Gravity, Guardians of the Galaxy, Star Wars: The Force Awakens, Arrival and Blade Runner 2049. Notable television series include Game of Thrones, Westworld, Trollhunters, LOVE DEATH + ROBOTS, Jelly Jamm and The Mandalorian.

This is a glossary of terms relating to computer graphics.

References

  1. "RenderMan - Developers Corner - RI Spec". Archived from the original on 2009-05-16. Retrieved 2009-06-12.