introduction to renderman
play

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


  1. Introduction to RenderMan CSCD 470 Slide 1 3/24/09

  2. 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 become an industry standard for graphics communication open to anyone to implement. Pixar's implementation of the RenderMan Interface is prman (photorealistic renderman) $3500 per license CSCD 470 Slide 2 3/24/09

  3. 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 CSCD 470 Slide 3 3/24/09

  4. 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. CSCD 470 Slide 4 3/24/09

  5. 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.) CSCD 470 Slide 5 3/24/09

  6. 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 CSCD 470 AttributeEnd Slide 6 3/24/09

  7. 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). CSCD 470 Slide 7 3/24/09

  8. 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. CSCD 470 Slide 8 3/24/09

  9. 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 CSCD 470 Slide 9 3/24/09

  10. 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. CSCD 470 Slide 10 3/24/09

  11. RenderMan Extensiblity: Parameter Lists Parameter List : only 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. CSCD 470 Slide 11 3/24/09

  12. 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 of how shading should be done. Renderer Basics: Left handed coordinate system Z into the screen CSCD 470 Slide 12 3/24/09

Recommend


More recommend