Using RenderMan for ray tracing and global illumination in complex scenes

Similar documents
INTRODUCTION TO RENDERING TECHNIQUES

A Short Introduction to Computer Graphics

The RADIANCE Lighting Simulation and Rendering System

Computer Graphics Global Illumination (2): Monte-Carlo Ray Tracing and Photon Mapping. Lecture 15 Taku Komura

An introduction to Global Illumination. Tomas Akenine-Möller Department of Computer Engineering Chalmers University of Technology

Two hours UNIVERSITY OF MANCHESTER SCHOOL OF COMPUTER SCIENCE. M.Sc. in Advanced Computer Science. Friday 18 th January 2008.

PHOTON mapping is a practical approach for computing global illumination within complex

Dhiren Bhatia Carnegie Mellon University

Introduction to Computer Graphics

CSE168 Computer Graphics II, Rendering. Spring 2006 Matthias Zwicker

CUBE-MAP DATA STRUCTURE FOR INTERACTIVE GLOBAL ILLUMINATION COMPUTATION IN DYNAMIC DIFFUSE ENVIRONMENTS

Hardware design for ray tracing

Multiresolution Radiosity Caching for Efficient Preview and Final Quality Global Illumination in Movies

PATH TRACING: A NON-BIASED SOLUTION TO THE RENDERING EQUATION

Water Flow in. Alex Vlachos, Valve July 28, 2010

Recent Advances and Future Trends in Graphics Hardware. Michael Doggett Architect November 23, 2005

CS 431/636 Advanced Rendering Techniques"

Introduction to Computer Graphics. Reading: Angel ch.1 or Hill Ch1.

Course Overview. CSCI 480 Computer Graphics Lecture 1. Administrative Issues Modeling Animation Rendering OpenGL Programming [Angel Ch.

Using Photorealistic RenderMan for High-Quality Direct Volume Rendering

Specular reflection. Dielectrics and Distribution in Ray Tracing. Snell s Law. Ray tracing dielectrics

path tracing computer graphics path tracing 2009 fabio pellacini 1

Monte Carlo Path Tracing

Lezione 4: Grafica 3D*(II)

CS130 - Intro to computer graphics. Dr. Victor B. Zordan vbz@cs.ucr.edu Objectives

COMP175: Computer Graphics. Lecture 1 Introduction and Display Technologies

Monte Carlo Path Tracing

Computer Animation: Art, Science and Criticism

Fundamentals of Computer Graphics

SkillsUSA 2014 Contest Projects 3-D Visualization and Animation

CAD and Creativity. Contents

REAL-TIME IMAGE BASED LIGHTING FOR OUTDOOR AUGMENTED REALITY UNDER DYNAMICALLY CHANGING ILLUMINATION CONDITIONS

Point-Based Approximate Color Bleeding

Image Processing and Computer Graphics. Rendering Pipeline. Matthias Teschner. Computer Science Department University of Freiburg

Advanced Rendering for Engineering & Styling

COMP Visualization. Lecture 15 Animation

Our One-Year 3D Animation Program is a comprehensive training in 3D using Alias

Advanced Computer Graphics. Rendering Equation. Matthias Teschner. Computer Science Department University of Freiburg

A Ray Tracing Solution for Diffuse Interreflection

Lecture Notes, CEng 477

Computer Applications in Textile Engineering. Computer Applications in Textile Engineering

Monash University Clayton s School of Information Technology CSE3313 Computer Graphics Sample Exam Questions 2007

Outdoor beam tracing over undulating terrain

Path Tracing. Michael Doggett Department of Computer Science Lund university Michael Doggett

Chapter 10. Bidirectional Path Tracing

Consolidated Visualization of Enormous 3D Scan Point Clouds with Scanopy

Thea Omni Light. Thea Spot Light. Light setup & Optimization

Introduction Week 1, Lecture 1

Instructor. Goals. Image Synthesis Examples. Applications. Computer Graphics. Why Study 3D Computer Graphics?

Model Repair. Leif Kobbelt RWTH Aachen University )NPUT $ATA 2EMOVAL OF TOPOLOGICAL AND GEOMETRICAL ERRORS !NALYSIS OF SURFACE QUALITY

PRODUCT LIFECYCLE MANAGEMENT COMPETENCY CENTRE RENDERING. PLMCC, JSS Academy of Technical Education, Noida Rendering 1 of 16

Computers in Film Making

SUPER RESOLUTION FROM MULTIPLE LOW RESOLUTION IMAGES

Computer Graphics. Introduction. Computer graphics. What is computer graphics? Yung-Yu Chuang

Customer Success Story

GPU Architecture. Michael Doggett ATI

Acceleration Methods for Ray Tracing based Global Illumination

So, you want to make a photo-realistic rendering of the Earth from orbit, eh? And you want it to look just like what astronauts see from the shuttle

Fundamentals of Computer Animation

How To Teach Computer Graphics

Data Locality in Parallel Rendering

Rendering Area Sources D.A. Forsyth

Introduction to. With Slides from Dongho Kim and Karen Liu. School of Computer Soongsil University Animation. Computer Animation

Modern Graphics Engine Design. Sim Dietrich NVIDIA Corporation

Contents Rendering Reference

MicroStation Visualization V8i (SELECTseries 1) Luxology Update 1

1. INTRODUCTION Graphics 2

WAVELENGTH OF LIGHT - DIFFRACTION GRATING

Approval Sheet. Interactive Illumination Using Large Sets of Point Lights

3D Computer Games History and Technology

Interactive Level-Set Deformation On the GPU

Introduction to Computer Graphics. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012

Motivation. Motivation

Dynamic Resolution Rendering

A Theoretical Framework for Physically Based Rendering

Image Synthesis. Transparency. computer graphics & visualization

A Distributed Render Farm System for Animation Production

Optimizing AAA Games for Mobile Platforms

CS 371 Project 5: Midterm Meta-Specification

Graphical displays are generally of two types: vector displays and raster displays. Vector displays

Any source of light can be described in terms of four unique and independently respective properties:

Photon Mapping Made Easy

Making natural looking Volumetric Clouds In Blender 2.48a

Teaching Introductory Computer Graphics Via Ray Tracing

ABS 731 Lighting Design & Technology. Spring 2006

Adding Animation With Cinema 4D XL

Computer Graphics. Anders Hast

Development and Evaluation of Point Cloud Compression for the Point Cloud Library

A technical overview of the Fuel3D system.

Scan-Line Fill. Scan-Line Algorithm. Sort by scan line Fill each span vertex order generated by vertex list

Perfect Load Balancing for Demand-Driven Parallel Ray Tracing

Parallel Simplification of Large Meshes on PC Clusters

Computer Graphics. Introduction. Aleksandra Pizurica. Ghent University

Path Tracing Overview

Computer Animation of Extensive Air Showers Interacting with the Milagro Water Cherenkov Detector

Basic Manual Control of a DSLR Camera

Optical Design Tools for Backlight Displays

mental ray Production Shader Library

The Flat Shape Everything around us is shaped

Transcription:

Using RenderMan for ray tracing and global illumination in complex scenes Per Christensen Pixar Animation Studios DTU, June 2005

Overview Pixar and Pixar movies RenderMan Recent research: ray tracing and global illumination

Pixar Founded in 1986 ~700 employees: artists, programmers, Headquarter in Emeryville (California) Small group in Seattle (Washington)

Pixar movies Toy Story A Bugs Life Toy Story 2 Monsters, Inc. Finding Nemo The Incredibles Cars (2006)

Cars challenges Animation: cars that move, talk, think Rendering: geometric complexity reflections

Making a Pixar movie Story development Layout, timing Modeling Animation, simulation Shading, lighting Rendering

Making a Pixar movie Story development Layout, timing Modeling Animation, simulation Shading, lighting Rendering!!

Typical scene at Pixar 100s of lights 1,000s of textures too many to fit in mem! 10,000s of objects 100,000,000s of polygons too many to fit! Programmable shading

Rendering requirements Render at hi-res (~2000 pixels) Motion blur Depth of field No spatial or temporal aliasing (staircase effects, crawlies, popping, )

RenderMan Used to render all Pixar movies (CG) Used by most other movie studios, too, for special effects: The Abyss, Terminator 2, Jurassic Park,, Lord of The Rings, Harry Potter, Star Wars

RenderMan Very robust and flexible Can handle very complex scenes Industry standard C and C++ Based on scanline rendering, but now extended with ray tracing and global illumination

Scanline rendering Split each object into surface patches Tessellation: divide each patch into many tiny micropolygons ( quads ) Compute a color for each micropolygon

Scanline rendering

Scanline rendering Advantages: Fast One image tile at a time: only needs small fraction of objects+textures Can deal with very complex scenes Limitations: Shadow maps (limited resolution) Reflection maps (no interreflections)

Recent research & development We extended RenderMan with: Ray tracing Global illumination

What is ray tracing? Recursive algorithm to compute color of a pixel [Whitted 1980] light eye objects

Ray tracing effects self interreflection soft shadow mirror reflection sharp shadow

Ray tracing Advantages: Fine shadow details Interreflections Disadvantage: rays fly all over the scene Needs all objects+textures all the time Can not deal with very complex scenes

Goal: best of both Ray tracing Very complex scenes (as scanline)

Main question Some rays fly all over Some rays require high geometric / texture precision But not all rays fly all over and require high precision! Which rays require which precision?

Ray differentials to the rescue Keep track of differences between neighbor rays Trace rays; each ray represents a beam [Igehy 1999]

Ray differentials and ray beam ray neighbor rays ray beam Narrow ray : ray beam cross-section is small Wide ray : ray beam cross-section is large

Ray differentials: use Ray differentials tell us: Required tessellation rate of geometry Quad sizes ~ ray beam cross-section Required texture resolution Pixel sizes ~ ray beam projected onto surface

Multi-resolution geometry cache Split objects into patches (as usual) Tessellate each patch on demand Use ray width to determine which tessellation to use: 1 quad 4x4 quads 16x16 quads

Multi-resolution geometry cache Store tessellation in coarse, medium, or fine sub-cache Result: can render scenes 100 x larger than cache size!

Example: parking lot 15 cars; 240M quads; 80M rays

Parking lot: cache stats 1 billion geometry cache lookups No cache: run time > 4 days Single-resolution cache: hit rate 97.7% run time: 11 hours Multi-resolution cache: hit rate 99.9% run time: 6 hours

Example: 94 dragons displacements sharp shadows textures mirror reflection

94 dragons: cache stats 18 million geometry cache lookups 3MB multi-res. cache performs well less than 1/200 of the fully tessellated scene Single-res. vs. multi-res. geometry cache: 1MB multi-res. cache beats 100MB single-res. cache (#recomputed vertices)

What is global illumination? Light is reflected everywhere: All objects are illuminated by each other (not just by light sources) Hard problem: infinitely many equations infinitely many unknowns Active area of research

What is global illumination? direct illumination direct illumination + ray tracing direct illumination + ray tracing + global illumination

Global illumination Goals: Film-quality global illumination Very complex scenes

Global illumination methods Finite element methods radiosity Monte Carlo simulation distribution ray tracing path tracing bi-directional path tracing photon mapping

Global illumination methods Our chosen method: Extend the photon mapping method Use a brick map representation of photon information

The photon mapping method Original photon map [Jensen 1996] 3 steps: emit, trace, store photons sort photon map (kd-tree) render light objects

Photon maps 76,000 photons 3.4 million photons

The photon mapping method Very general and flexible: all types of reflection all types of geometry Relatively fast But: cannot deal with more photons than memory!

The brick map Tiled, 3D MIP map representation of surface and volume data: Adaptive octree with a brick in each node A brick is a 3D generalization of a tile; each brick has 8^3 voxels

Brick map example Sparse brick map for surface data: Level 0 Level 1 Level 2

Brick map example #2 Dense brick map for volume data: Level 0 Level 1 Level 2

The brick map Can be used for general data; surface or volume Here we use it for illumination on surfaces

Test scene: direct illumination 118 million quads (render time: 6 min)

Global illumination using brick maps Step 1: Emit + trace photons as usual, but write to photon map files Collection of photon maps: photon atlas

Photon atlas 52 million photons (0.1%)

Photon tracing Photon tracing: 29 minutes Stored 52 million photons in 41 photon map files (2.2 GB)

Global illumination using brick maps Step 2: Estimate irradiance at photon locations Construct a brick map from each photon map Collection of irradiance brick maps: irradiance atlas

Irradiance brick map for car 960 bricks (69 MB) Level 0 Level 1 Level 2 Level 3

Irradiance brick map for building 31,700 bricks (190 MB) Level 0 Level 1 Level 2 Level 3

Irradiance atlas 253,000 bricks (2.4 GB): 200x brick cache capacity

Generating the irradiance atlas Estimating irradiance at all photon positions (using nearest 50 photons): 18 minutes Computing irradiance brick maps: 25 min.

Irradiance times diffuse color

Global illumination using brick maps Step 3: Render using final gather At final gather hit points: look up in irradiance atlas Read bricks from file on demand Store in brick cache (10MB, LRU replacem.)

Rendering: final image 77 million rays; 3.8 hours

More information Book: Advanced RenderMan Ray differentials and multiresolution geometry caching for distribution ray tracing in complex scenes, Eurographics 2003 An irradiance atlas for global illumination in complex production scenes, Eurographics Symposium on Rendering 2004

Conclusion (part 1) Use multi-resolution geometry cache Use multi-resolution texture cache Use ray differentials to select resolution

Conclusion (part 2) Introduced the brick map, a tiled 3D MIP map format for general data Improved the photon map method with efficient representation + caching of global illumination data Result: Can now render ray tracing and global illumination in production scenes same complexity as scanline!

Acknowledgments Thanks to: RenderMan team Andreas Baerentzen and Bent Larsen for inviting me You for listening

Questions?