VO Rendering SS 2010

VO Rendering SS 2010

31.05.2010 Overview VO Rendering ! " Pixar RenderMan / REYES SS 2010 ! " Highly complex software system used for a large portion of today's industrial CG work ! " Software shaders ! " Technology behind complex object Unit 9: Pixar RenderMan appearance with simple basic geometry Sources: State of the Art in Graphics RenderMan Naming Confusion What is Renderman? RenderMan – The Product (PRMan) ! " Pixar Photorealistic RenderMan (PRMan) Maya Houdini Soft Image ! " Evolved gradually since 1982 / 84 from the Lucasfilm Renderer ! " Basically a sophisticated scanline renderer Render Man ! " Currently at release 14.0 Interface ! " Indirect illumination / GI ! " Hair & fur optimizations ! " Parallel network rendering PRMan Air RenderDC Aqsis ! " On demand raytracing 1 31.05.2010 PRMan Features - Hair PRMan Features – Motion Blur REYES REYES Assumptions and Goals 1 ! " “Render everything you ! " High possible model complexity ever saw” ! " Diverse types of primitives ! " REYES = software ! " Esp. data amplification primitives, such as architecture fractals, procedural models etc. ! " PRMan implements the REYES architecture ! " Shading complexity ! " Complexity of real scenes comes from surface appearance as much as from geometry ! " Programmable shaders a necessity REYES Assumptions and Goals 2 REYES Algorithm: Design Principles ! " Minimal ray tracing MODEL ! " Natural coordinates ! ! " Approximation of non-local effects through read model ! " Vectorisation ! other means (e.g. shadow maps) " bound ! " Common representation: ! N Micropolygons ! " Speed on screen? " cull N ! Y ! " Locality ! " Important for animations: 2h movie in 1 year - split # diceable? ! Y ! " Linearity < 3 min per frame! TEXTURES " shade ! ! " Large models ! " Image quality sample ! ! " Backdoor ! " Anti-aliasing and proper pixel filtering is BACK DOOR " visibility ! " Efficient texture maps considered to be essential ! filter ! PICTURE 2 31.05.2010 Geometric Primitive Routines Geometric Primitive Routines MODEL ! " Bound MODEL ! " Diceable test ! ! read model ! " Computes bounding box read model ! " Examines micropolygon ! information ! size & number bound " bound ! ! N ! " Culling N ! " Split on screen? " cull on screen? " cull ! " Primitives which do not N ! Y ! " Subdivision into other intersect the visible region split # diceable? geometric primitives are discarded without ! " Dice being diced or split ! " Perform the actual split ! " Each part is tested again into micropolygons Micropolygons Hiding ! " All primitives are diced into micropolygons MODEL ! " Backdoor feature intended to ! incorporate raytracing ! " The entire shading process operates on this read model ! ! " Sampling single monochrome type of primitive " bound ! N ! " Micropolygons are the ! " Roughly half a pixel across on screen? " cull Nyquist limit for their pixels N ! Y ! " MP generation operates in eye space split # diceable? ! Y ! " Jittered samples trade ! " Subdivision is always done in the primitive's TEXTURES " shade aliasing artifacts for noise ! (u,v) space, never in screen space sample ! " Sampling can be ! influenced BACK DOOR " visibility ! ! " Reconstruction filter functions are user ! PICTURE choice: RiFilter Complete Algorithm REYES Advantages ! " Can handle arbitrary number of primitives ! " Basically a batch renderer for individual primitives ! " No inversions – projections of pixels onto textures ! " Computations can easily be vectorised (e.g. shading) ! " No clipping calculations ! " Frequently no texture filtering is needed 3 31.05.2010 REYES Disadvantages RenderMan Interface ! " No natural way to dice polygons ! " Interface between rendering and modelling ! " Shading before sampling causes problems for ! " Powerful set of primitive surface types motion blur ! " Quadric surfaces ! " Dicing is difficult for some types of primitives ! " Polygons like e.g. blobs ! " Parametric surfaces ! " No coherency is exploited for large uniform ! " Hierarchical modeling, geometry objects – everything is diced into ! " Constructive solid geometry micropolygons ! " Camera model (orthographic, perspective) ! " No GI information of any kind is computed ! " Generalized shading model Using the RM Interface RM Program Structure ! " Two basic options exist: ! " Consistent naming of API calls (Ri...) ! " Use of RM function calls from a high-level ! " All function calls bracketed between one pair language (e.g. C) implementation of the RM of RiBegin and RiEnd API ! " Feeding archived RM function calls from a ! " One global graphics state is maintained within RenderMan Interface Bytestream (RIB) to a this bracket compliant renderer (hand generated, output ! " All API calls modify this state from modelling program) ! " API calls are frequently varargs, and have to ! " The actual renderers are usually non- interactive be terminated with RI_NULL ! " Most calls deal with surface properties ! " Separate preview renderers are used during the design phase RIB File API Calls vs. RIB ! " Sequence of requests to the renderer ! " No loops, branches, ... ! " Hierarchical attributes/transformations ! " Geometry, lights and materials are specified inside a WorldBegin/WorldEnd block ! " Normally RIB file contains just one frame's worth of data 4 31.05.2010 Shape vs. Shading 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 plain geometry vs. shaded geometry Shape vs. Shading Example Shading Pipeline ! " Only two square polygons ! " Three major types of shaders ! " Transformed by shading ! " Emission at the light source ! " Interaction of the light with the surface ! " Atmospheric effects between the surface and the viewpoint Types of Shaders Shader Language Var Types ! " RenderMan Interface ! " Floats supports ! " Colours ! " Light source shaders ! " Surface shaders ! " Multiple colour models can be used, RGB ! " Volume shaders default ! " Displacement shaders ! " Points ! " Imager shaders ! " Strings ! " Each shader type has a specific set of variables ! " Uniform vs. Varying variables and result types ! " Uniform vars are constant everywhere over the area under consideration 5 31.05.2010 Surface Shader Surface Shader Environment ! " Determines the colour ! " Expected results: incident ray colour and of light reflecting from a opacity point on a surface in a particular direction ! " Does not have to be physically plausible! Surface Shader Vars Example: Surface Shader #1 surface metal (! ! " Some of these float Ka = 1,! float Ks = 1,! input variables can roughness = .25)! {! point Nf = faceforward(normalize(N),I);! be modified, e.g. Oi = Os;! Ci = Os * Cs * (Ka * ambient() +! Ks * specular(Nf, -I, roughness));! the shading normal }! ! " Most – such as the geometric normal – are fixed Example: Surface Shader #2 Bubbles from Finding Nemo surface txtplastic(! float Ka = 1;! float Kd = .5;! float Ks = .5;! float roughness = .1;! color specularcolor = 1;! string mapname = ““)! {! point Nf = faceforward(N,I);! if (mapname != ““)! Ci = color texture(mapname);! else! Ci = Cs;! Oi = Os;! Ci = Os * (Ci * (Ka * ambient() + Kd * diffuse(Nf)) +! specularcolor * Ks * specular(Nf, -I, roughness));! }! 6 31.05.2010 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 ! " (Not really supported until very recently) 7 31.05.2010 Volume Shader Example Volumetric Shader in Open Season © 2006 Sony Pictures Imageworks Displacement Shaders Displacement Shader Geometry ! " 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 Vars Displacement Shader Example #1 ! " Full gamut of surface environment variables is accessible 8 31.05.2010 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(N);! N = 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 31.05.2010 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

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    12 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us