26.01.2015 Views

The RenderMan Interface - Paul Bourke

The RenderMan Interface - Paul Bourke

The RenderMan Interface - Paul Bourke

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

onto a surface. Texture maps are used in many different ways: direct image mapping<br />

to change the surface’s color, transparency mapping, bump mapping for changing<br />

its normal vector, displacement mapping for modifying position, environment or reflection<br />

mapping for efficiently calculating global illumination, and shadow maps for<br />

simulating the presence of shadows.<br />

<strong>The</strong> <strong>RenderMan</strong> <strong>Interface</strong> is designed so that the information needed to specify a photorealistic<br />

image can be passed to different rendering programs compactly and efficiently. <strong>The</strong><br />

interface itself is designed to drive different hardware devices, software implementations<br />

and rendering algorithms. Many types of rendering systems are accommodated by this interface,<br />

including z-buffer-based, scanline-based, ray tracing, terrain rendering, molecule<br />

or sphere rendering and the Reyes rendering architecture. In order to achieve this, the<br />

interface does not specify how a picture is rendered, but instead specifies what picture is<br />

desired. <strong>The</strong> interface is designed to be used by both batch-oriented and real-time interactive<br />

rendering systems. Real-time rendering is accommodated by ensuring that all the<br />

information needed to draw a particular geometric primitive is available when the primitive<br />

is defined. Both batch and real-time rendering is accommodated by making limited<br />

use of inquiry functions and call-backs.<br />

<strong>The</strong> <strong>RenderMan</strong> <strong>Interface</strong> is meant to be complete, but minimal, in its transfer of scene<br />

descriptions from modeling programs to rendering programs. <strong>The</strong> interface usually provides<br />

only a single way to communicate a parameter; it is expected that the modeling front<br />

end will provide other convenient variations. An example is color coordinate systems –<br />

the <strong>RenderMan</strong> <strong>Interface</strong> supports multiple-component color models because a rendering<br />

program intrinsically computes with an n-component color model. However, the Render-<br />

Man <strong>Interface</strong> does not support all color coordinate systems because there are so many and<br />

because they must normally be immediately converted to the color representation used by<br />

the rendering program. Another example is geometric primitives – the primitives defined<br />

by the <strong>RenderMan</strong> <strong>Interface</strong> are considered to be rendering primitives, not modeling primitives.<br />

<strong>The</strong> primitives were chosen either because special graphics algorithms or hardware<br />

is available to draw those primitives, or because they allow for a compact representation<br />

of a large database. <strong>The</strong> task of converting higher-level modeling primitives to rendering<br />

primitives must be done by the modeling program.<br />

<strong>The</strong> <strong>RenderMan</strong> <strong>Interface</strong> is not designed to be a complete three-dimensional interactive<br />

programming environment. Such an environment would include many capabilities not<br />

addressed in this interface. <strong>The</strong>se include: 1) screen space or two-dimensional primitives<br />

such as annotation text, markers, and 2-D lines and curves, and 2) user-interface issues<br />

such as window systems, input devices, events, selecting, highlighting, and incremental<br />

redisplay.<br />

<strong>The</strong> <strong>RenderMan</strong> <strong>Interface</strong> is a collection of procedures to transfer the description of a scene<br />

to the rendering program. <strong>The</strong>se procedures are described in Part I. A rendering program<br />

takes this input and produces an image. This image can be immediately displayed on a<br />

given display device or saved in an image file. <strong>The</strong> output image may contain color as well<br />

as coverage and depth information for postprocessing. Image files are also used to input<br />

texture maps. This document does not specify a ”standard format” for image files.<br />

<strong>The</strong> <strong>RenderMan</strong> Shading Language is a programming language for extending the predefined<br />

functionality of the <strong>RenderMan</strong> <strong>Interface</strong>. New materials and light sources can be<br />

3

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!