! Pixar RenderMan / REYES. ! Software shaders. ! Pixar Photorealistic RenderMan (PRMan) ! Basically a sophisticated scanline renderer

Similar documents
VU Rendering SS Unit 9: Renderman

REYES REYES REYES. Goals of REYES. REYES Design Principles

Shading Languages. Seminar Computer Graphics. Markus Kummerer

Lecture 12: Advanced Rendering

Lecture 13: Reyes Architecture and Implementation. Kayvon Fatahalian CMU : Graphics and Imaging Architectures (Fall 2011)

Real-Time Reyes Programmable Pipelines and Research Challenges

Rendering. Converting a 3D scene to a 2D image. Camera. Light. Rendering. View Plane

Computer Graphics I Lecture 11

Programmable Shaders. December 25, RenderMan & Its Shading Language

Other Rendering Techniques CSE 872 Fall Intro You have seen Scanline converter (+z-buffer) Painter s algorithm Radiosity CSE 872 Fall

CHAPTER 1 Graphics Systems and Models 3

Real-Time Shadows. Last Time? Textures can Alias. Schedule. Questions? Quiz 1: Tuesday October 26 th, in class (1 week from today!

Irradiance Caching in Pixar s RenderMan

CG Surfaces: Materials, Shading, and Texturing

Sung-Eui Yoon ( 윤성의 )

Illumination and Geometry Techniques. Karljohan Lundin Palmerius

Ray Tracing. CS334 Fall Daniel G. Aliaga Department of Computer Science Purdue University

Topic 12: Texture Mapping. Motivation Sources of texture Texture coordinates Bump mapping, mip-mapping & env mapping

Rendering and Radiosity. Introduction to Design Media Lecture 4 John Lee

Interactive Computer Graphics A TOP-DOWN APPROACH WITH SHADER-BASED OPENGL

Computer Graphics. Si Lu. Fall uter_graphics.htm 11/22/2017

Topic 11: Texture Mapping 11/13/2017. Texture sources: Solid textures. Texture sources: Synthesized

Topic 11: Texture Mapping 10/21/2015. Photographs. Solid textures. Procedural

Wednesday, 26 January 2005, 14:OO - 17:OO h.

Shadows in the graphics pipeline

CS230 : Computer Graphics Lecture 4. Tamar Shinar Computer Science & Engineering UC Riverside

Local Illumination. CMPT 361 Introduction to Computer Graphics Torsten Möller. Machiraju/Zhang/Möller

Computer Graphics. Lecture 02 Graphics Pipeline. Edirlei Soares de Lima.

Lighting. To do. Course Outline. This Lecture. Continue to work on ray programming assignment Start thinking about final project

03 RENDERING PART TWO

There are many kinds of surface shaders, from those that affect basic surface color, to ones that apply bitmap textures and displacement.

Photorealistic 3D Rendering for VW in Mobile Devices

Advanced Maya Texturing and Lighting

CMSC427 Advanced shading getting global illumination by local methods. Credit: slides Prof. Zwicker

Rasterization Overview

CEng 477 Introduction to Computer Graphics Fall 2007

CIS 581 Interactive Computer Graphics

Advanced Maya e Texturing. and Lighting. Second Edition WILEY PUBLISHING, INC.

Computer Graphics Introduction. Taku Komura

Chapter 11 Global Illumination. Part 1 Ray Tracing. Reading: Angel s Interactive Computer Graphics (6 th ed.) Sections 11.1, 11.2, 11.

EF432. Introduction to spagetti and meatballs

Ray Tracing III. Wen-Chieh (Steve) Lin National Chiao-Tung University

CS 428: Fall Introduction to. Realism (overview) Andrew Nealen, Rutgers, /11/2009 1

CSE528 Computer Graphics: Theory, Algorithms, and Applications

Introduction to Computer Graphics. Knowledge basic concepts 2D and 3D computer graphics

The Design of RenderMan

TSBK03 Screen-Space Ambient Occlusion

graphics pipeline computer graphics graphics pipeline 2009 fabio pellacini 1

Topic 0. Introduction: What Is Computer Graphics? CSC 418/2504: Computer Graphics EF432. Today s Topics. What is Computer Graphics?

graphics pipeline computer graphics graphics pipeline 2009 fabio pellacini 1

CS451Real-time Rendering Pipeline

Real-Time Shadows. Last Time? Today. Why are Shadows Important? Shadows as a Depth Cue. For Intuition about Scene Lighting

Identifying those parts of a scene that are visible from a chosen viewing position, and only process (scan convert) those parts

For Intuition about Scene Lighting. Today. Limitations of Planar Shadows. Cast Shadows on Planar Surfaces. Shadow/View Duality.

Ray Tracing. Cornell CS4620/5620 Fall 2012 Lecture Kavita Bala 1 (with previous instructors James/Marschner)

Computer Graphics (CS 543) Lecture 13b Ray Tracing (Part 1) Prof Emmanuel Agu. Computer Science Dept. Worcester Polytechnic Institute (WPI)

Last Time. Reading for Today: Graphics Pipeline. Clipping. Rasterization

Last Time. Why are Shadows Important? Today. Graphics Pipeline. Clipping. Rasterization. Why are Shadows Important?

Overview. Hierarchy. Level of detail hierarchy Texture maps Procedural shading and texturing Texture synthesis and noise.

Visible-Surface Detection Methods. Chapter? Intro. to Computer Graphics Spring 2008, Y. G. Shin

Today. Anti-aliasing Surface Parametrization Soft Shadows Global Illumination. Exercise 2. Path Tracing Radiosity

Rendering & Compositing

Ray tracing. Computer Graphics COMP 770 (236) Spring Instructor: Brandon Lloyd 3/19/07 1

Render methods, Compositing, Post-process and NPR in NX Render

Ray Tracer System Design & lrt Overview. cs348b Matt Pharr

Advanced Distant Light for DAZ Studio

CSE 167: Introduction to Computer Graphics Lecture #6: Lights. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2014

0. Introduction: What is Computer Graphics? 1. Basics of scan conversion (line drawing) 2. Representing 2D curves

Computer Graphics. Rendering. by Brian Wyvill University of Calgary. cpsc/enel P 1

OpenGL and RenderMan Rendering Architectures

Topics and things to know about them:

Raytracing CS148 AS3. Due :59pm PDT

EF432. Introduction to spagetti and meatballs

Level of Details in Computer Rendering

Shadow Rendering EDA101 Advanced Shading and Rendering

COM337 COMPUTER GRAPHICS Other Topics

Me Again! Peter Chapman. if it s important / time-sensitive

CS 354R: Computer Game Technology

Efficient Image-Based Methods for Rendering Soft Shadows. Hard vs. Soft Shadows. IBR good for soft shadows. Shadow maps

Page 1. Area-Subdivision Algorithms z-buffer Algorithm List Priority Algorithms BSP (Binary Space Partitioning Tree) Scan-line Algorithms

LIGHTING - 1. Note. Lights. Ambient occlusion

Case Study: The Pixar Story. By Connor Molde Comptuer Games & Interactive Media Year 1

Ray tracing. EECS 487 March 19,

GLOBAL EDITION. Interactive Computer Graphics. A Top-Down Approach with WebGL SEVENTH EDITION. Edward Angel Dave Shreiner

Computer Graphics. Lecture 13. Global Illumination 1: Ray Tracing and Radiosity. Taku Komura

CSE 167: Introduction to Computer Graphics Lecture #7: Lights. Jürgen P. Schulze, Ph.D. University of California, San Diego Spring Quarter 2015

Lets assume each object has a defined colour. Hence our illumination model is looks unrealistic.

The exam begins at 2:40pm and ends at 4:00pm. You must turn your exam in when time is announced or risk not having it accepted.

Visual cues to 3D geometry. Light Reflection and Advanced Shading. Shading. Recognizing materials. size (perspective) occlusion shading

Consider a partially transparent object that is illuminated with two lights, one visible from each side of the object. Start with a ray from the eye

COMP 175: Computer Graphics April 11, 2018

Lecturer Athanasios Nikolaidis

Graphics Hardware and Display Devices

CS 498 VR. Lecture 18-4/4/18. go.illinois.edu/vrlect18

Direct Rendering of Trimmed NURBS Surfaces

CS 488. More Shading and Illumination. Luc RENAMBOT

Chapter 7 - Light, Materials, Appearance

Last Time: Acceleration Data Structures for Ray Tracing. Schedule. Today. Shadows & Light Sources. Shadows

CIS 581 Interactive Computer Graphics (slides based on Dr. Han-Wei Shen s slides) Requirements. Reference Books. Textbook

4.5 VISIBLE SURFACE DETECTION METHODES

Transcription:

Overview VO Rendering SS 2010 Unit 9: Pixar RenderMan Pixar RenderMan / REYES Highly complex software system used for a large portion of today's industrial CG work Software shaders Technology behind complex object appearance with simple basic geometry Sources: State of the Art in Graphics RenderMan aming Confusion What is Renderman? Maya Houdini Soft Image Render Man Interface PRMan Air RenderDC Aqsis RenderMan The Product (PRMan) Pixar Photorealistic RenderMan (PRMan) Evolved gradually since 1982 / 84 from the Lucasfilm Renderer Basically a sophisticated scanline renderer Currently at release 14.0 Indirect illumination / GI Hair & fur optimizations Parallel network rendering On demand raytracing 1

PRMan Features - Hair PRMan Features Motion Blur REYES Render everything you ever saw REYES = software architecture PRMan implements the REYES architecture REYES Assumptions and Goals 1 High possible model complexity Diverse types of primitives Esp. data amplification primitives, such as fractals, procedural models etc. Shading complexity Complexity of real scenes comes from surface appearance as much as from geometry Programmable shaders a necessity REYES Assumptions and Goals 2 Minimal ray tracing Approximation of non-local effects through other means (e.g. shadow maps) Speed Important for animations: 2h movie in 1 year - < 3 min per frame Image quality Anti-aliasing and proper pixel filtering is considered to be essential REYES Algorithm: Design Principles MODEL read model " bound on screen? " cull Y split # diceable? Y TEXTURES " shade sample BACK DOOR " visibility filter PICTURE atural coordinates Vectorisation Common representation: Micropolygons Locality Linearity Large models Backdoor Efficient texture maps 2

Geometric Primitive Routines Geometric Primitive Routines MODEL read model bound on screen? " cull Bound Computes bounding box information Culling Primitives which do not intersect the visible region are discarded without being diced or split Each part is tested again MODEL read model " bound on screen? " cull Y split # diceable? Diceable test Split Dice Examines micropolygon size & number Subdivision into other geometric primitives Perform the actual split into micropolygons Micropolygons All primitives are diced into micropolygons The entire shading process operates on this single monochrome type of primitive Roughly half a pixel across MP generation operates in eye space Subdivision is always done in the primitive's (u,v) space, never in screen space Hiding MODEL read model " bound on screen? Y split # diceable? Y TEXTURES " shade sample BACK DOOR " visibility filter PICTURE " cull Backdoor feature intended to incorporate raytracing Sampling Micropolygons are the yquist limit for their pixels Jittered samples trade aliasing artifacts for noise Sampling can be influenced Reconstruction functions are user choice: RiFilter Complete Algorithm REYES Advantages Can handle arbitrary number of primitives Basically a batch renderer for individual primitives o inversions projections of pixels onto textures Computations can easily be vectorised (e.g. shading) o clipping calculations Frequently no texture filtering is needed 3

REYES Disadvantages o natural way to dice polygons Shading before sampling causes problems for motion blur Dicing is difficult for some types of primitives like e.g. blobs o coherency is exploited for large uniform objects everything is diced into micropolygons o GI information of any kind is computed RenderMan Interface Interface between rendering and modelling Powerful set of primitive surface types Quadric surfaces Polygons Parametric surfaces Hierarchical modeling, geometry Constructive solid geometry Camera model (orthographic, perspective) Generalized shading model Using the RM Interface Two basic options exist: Use of RM function calls from a high-level language (e.g. C) implementation of the RM API Feeding archived RM function calls from a RenderMan Interface Bytestream (RIB) to a compliant renderer (hand generated, output from modelling program) The actual renderers are usually noninteractive Separate preview renderers are used during the design phase RM Program Structure Consistent naming of API calls (Ri...) All function calls bracketed between one pair of RiBegin and RiEnd One global graphics state is maintained within this bracket All API calls modify this state API calls are frequently varargs, and have to be terminated with RI_ULL Most calls deal with surface properties RIB File API Calls vs. RIB Sequence of requests to the renderer o loops, branches,... Hierarchical attributes/transformations Geometry, lights and materials are specified inside a WorldBegin/WorldEnd block ormally RIB file contains just one frame's worth of data 4

Shape vs. Shading Shape Geometric configuration of objects Shading Calculates the appearance of an object in a scene under a set of light sources Result defined by Colors of the surface and the light source(s) Position and orientation of the surface relative to the light Roughness of the surface Shape vs. Shading plain geometry vs. shaded geometry Shape vs. Shading Example Only two square polygons Transformed by shading Shading Pipeline Three major types of shaders Emission at the light source Interaction of the light with the surface Atmospheric effects between the surface and the viewpoint Types of Shaders RenderMan Interface supports Light source shaders Surface shaders Volume shaders Displacement shaders Imager shaders Each shader type has a specific set of variables and result types Shader Language Var Types Floats Colours Multiple colour models can be used, RGB default Points Strings Uniform vs. Varying variables Uniform vars are constant everywhere over the area under consideration 5

Surface Shader Determines the colour of light reflecting from a point on a surface in a particular direction Does not have to be physically plausible Surface Shader Environment Expected results: incident ray colour and opacity Surface Shader Vars Example: Surface Shader #1 Some of these input variables can be modified, e.g. the shading normal Most such as the geometric normal are fixed surface metal ( float Ka = 1, float Ks = 1, roughness =.25) { point f = faceforward(normalize(),i); Oi = Os; Ci = Os * Cs * (Ka * ambient() + Ks * specular(f, -I, roughness)); } Example: Surface Shader #2 Bubbles from Finding emo surface txtplastic( float Ka = 1; float Kd =.5; float Ks =.5; float roughness =.1; color specularcolor = 1; string mapname = ) { point f = faceforward(,i); } if (mapname = ) Ci = color texture(mapname); else Ci = Cs; Oi = Os; Ci = Os * (Ci * (Ka * ambient() + Kd * diffuse(f)) + specularcolor * Ks * specular(f, -I, roughness)); 6

Example: Shading Fish Guts Light Source Shader Calculates the intensity and color of light sent by the light source to a point on a surface Light Source Shader Vars Example: Slideprojector Very similar to surface variable set Describes lightsource, not the surface being illuminated Flexible Lightsource Examples Volume (Atmosphere) Shader Generalizes the idea of atmosphere affecting light passing through space between a surface and the eye (ot really supported until very recently) 7

Volume Shader Example Volumetric Shader in Open Season 2006 Sony Pictures Imageworks Displacement Shaders Distort the geometry of the basic object Difference to bump maps (which would be a surface shader): the silhouette is correct Costly to evaluate Displacement Shader Geometry Displacement Vars Displacement Shader Example #1 Full gamut of surface environment variables is accessible 8

Displacement Shader Example #2 River Raindrops in Ratatouille Displacement pits( float Km = 0.03; string mapname = ) { float magnitude; } if (marks= ) magnitude = float texture(marks); else magnitude = 0; P += -Km * magnitude * normalize(); = calculatenormal(p); Disney / Pixar. WALL-E Trash Shader Transformation Shaders Similar to displacement shaders in that they modify object geometry resp. point coordinates Difference: used at a different, earlier stage of the rendering pipeline Used to transform entire objects Restricted variable set Imager Shaders Imager Variables Used to transform already computed colours to something else Applications: e.g. cartoonish distortions of realistic renderings Only colour information and z-buffer data are provided 9

Combined Example: Bowling Pin Bowling Pins Easter Egg: Bowling Pins in WALL E Shadows: A Sore Point Automatic shadow generation not classic RM Shadow maps (i.e. depth images from the perspective of the light) have to be prepared for each lightsource () Surface shaders have to use this information The simple shaders in the previous examples are not capable of exhibiting shadows Raytracing and GI options in newer RM versions somewhat obsolete this Deep Shadow Maps DSM store representation of the fratcional visibility through a pixel at all possible depths Transmittance function describes light falloff Stored as an array of floating-point pairs Can handle volumetric effects and semitransparent surfaces Reflections: Also A Sore Point Similar to depth images for the lights, reflections have to be pre-computed Reflection maps have artefacts: no multiple inter-reflections Fast (Sort of obsoleted by raytracing on demand) 10

Reflection/Refraction Multipass Rendering Multi-pass rendering Reflection and refraction images are imput for tank shader Each wall has unique pair of reflection and refraction camera Texture is projected Example: Reflection Map 1 st pass 2 nd pass 3 rd pass Final Rendering Ray Tracing On Demand Scanline: fast, can handle complex scenes; shadows and reflections are problematic Ray tracing can not deal with complex scenes Ray differentials First-level rays originate from REYES shading points Luigi CG and RL :-) Implementations Original Pixar renderer (REYES) Micropolygon-based hybrid with raytracing capabilites BMRT Raytracer, has disappeared after legal action was taken against author Pixie Open-source RenderMan Realtime techniques Ongoing research topic 11

Rendering VO Unit 9 The End Thank you for your attention 12