Introduction to RenderMan CSCD 470 Slide 1 3/24/09 The RenderMan - - PowerPoint PPT Presentation

introduction to renderman
SMART_READER_LITE
LIVE PREVIEW

Introduction to RenderMan CSCD 470 Slide 1 3/24/09 The RenderMan - - PowerPoint PPT Presentation

Introduction to RenderMan CSCD 470 Slide 1 3/24/09 The RenderMan Interface A scene description API RenderMan is intended to be an Interface description NOT a specific program The RenderMan Interface specification: originally intended to


slide-1
SLIDE 1

Slide 1 CSCD 470 3/24/09

Introduction to RenderMan

slide-2
SLIDE 2

Slide 2 CSCD 470 3/24/09

The RenderMan Interface – A scene description API

RenderMan is intended to be an Interface description NOT a specific program The RenderMan Interface specification:

  • riginally intended to become an industry

standard for graphics communication

  • pen to anyone to implement.

Pixar's implementation of the RenderMan Interface is prman (photorealistic renderman) $3500 per license

slide-3
SLIDE 3

Slide 3 CSCD 470 3/24/09

The RenderMan Interface – Other API Implementations

Other RenderMan Implementations

Aqsis – open source implementation – may not contain ray-tracing yet. RenderDotC – multi platform $600 - $3000 per seat for full version – free version is crippled by resolution Pixie

slide-4
SLIDE 4

Slide 4 CSCD 470 3/24/09

The RenderMan Interface – Pixar History

History

Pixar started as the CG department of Lucasfilm (Ed Catmul, Alvy Ray Smith, Tom Duff, Ralph Guggenheim, David DiFrancesco. Spun off as a company (Pixar) in 1983 – bought by Steve Jobs in 1986. The Reyes architecture – the algorithm design description for the original implementation of prman. - stands for “Render everything you ever saw” or for Pt. Reyes

  • seashore. Created by Loren Carpenter, Rob

Cook and Pat Hanrahan.

slide-5
SLIDE 5

Slide 5 CSCD 470 3/24/09

The RenderMan Interface – Pixar History

History Refs:

The Reyes Rendering Architecture., Cook, Carpenter, Catmull, Computer Graphics: 21, 1987 99-102. (from Siggraph 1987). A Language for Shading and Lighting

  • Calculations. Computer Graphics: 24, 1990.

(from Siggraph 1990: Basis for RenderMan Shaders.)

slide-6
SLIDE 6

Slide 6 CSCD 470 3/24/09

The RenderMan Interface – Pixar History

Two language bindings – for basic interface:

  • 1. for C programs – e.g.:

RiAttributeBegin(); RiTranslate(0.0, 14.0, -8.3); RiSurface(“plastic”, RI_NULL); RiSphere(1.0, -1.0, 1.0, 360.0, RI_NULL); RiAttributeEnd();

  • 2. a metafile format called RenderMan

Interface Bytestream or RIB.

AttributeBegin Translate 0.0 14.0 -8.3 Surface “plastic” Sphere 1 -1 1 360 AttributeEnd

slide-7
SLIDE 7

Slide 7 CSCD 470 3/24/09

The RenderMan Interface – C vs. RIB

Early in RenderMan usage the C interface was stressed so books like “RenderMan Companion” do not deal with RIB at all. Later usage almost exclusively dealt with RIB since its somewhat simpler syntax made it easier to have modelers generate RIB directly.

Note: when terms like “RIB funtionality” get used we are really saying “RenderMan Interface functionality.”

RIB files can be generated by hand, by program or (most common modern usage) by high level modeling programs (plugins for Maya or Max or directly by Blender).

slide-8
SLIDE 8

Slide 8 CSCD 470 3/24/09

The RenderMan Interface – RIB Generation and Usage

RIB files (RenderMan Interface programs) are a high level scene description that says what is to be rendered but not how. That is left to separate shader programs. The RenderMan Interface contains many commands for high level graphics primitives: cubic patches, NURBs, and many others. RIB files are generally self-contained except for shader programs and files to be used for the various kinds of maps.

Exception: the ReadArchive command can be used to read and parse an external RIB file.

slide-9
SLIDE 9

Slide 9 CSCD 470 3/24/09

Forward References

RIB allows no forward references of any kind Similar to immediate mode graphics packages (e.g. OpenGL) since when a primitive is mentioned it is drawn immediately

So all attributes (e.g. material properties) must be specified before the primitive is rendered. This includes lights as well as materials.

Order of operations:

define parameters of the image to be produced define parameters of the virtual camera. define lights and other global attributes define primitive specific primitive attributes draw primitive

slide-10
SLIDE 10

Slide 10 CSCD 470 3/24/09

Hierarchical Graphics State

Graphics State:

database containing attributes of primitives manipulated as a stack attributes at the top of the stack when a primitive is created describe that primitive attributes can be changed or new primitives created at any time entire graphics state can be saved and later retrieved (most push, pop operations are implicit not explicit as with glPush, glPop.

slide-11
SLIDE 11

Slide 11 CSCD 470 3/24/09

RenderMan Extensiblity: Parameter Lists

Parameter List:

  • nly the most basic parameters to a RM

function call are predefined remainder of parameters are specified as name-value pairs names are strings and values are typically arrays of data many commands have predefined parameter lists – if a name-value pair is not given for a parameter in one function call, pre-defined defaults are used users can define their own name-value pairs which extends the model's descriptive power.

slide-12
SLIDE 12

Slide 12 CSCD 470 3/24/09

The RenderMan Interface – RenderMan Shader Language

RenderMan Shader Language allows renderers to write their own specifications for how to render for use in the Reyes algorithm. Based on a simplified version of C – relatively simple language that allows full specification

  • f how shading should be done.

Renderer Basics: Left handed coordinate system Z into the screen