Monte Carlo Techniques for Rendering

Similar documents
Lecture 3: Rendering Equation

Lecture 5: Rendering Equation Chapter 2 in Advanced GI

10/29/2010. Rendering techniques. Global Illumination. Local Illumination methods. Today : Global Illumination Modules and Methods

Lecture 7: Monte Carlo Rendering. MC Advantages

Introduction to Medical Imaging. Cone-Beam CT. Introduction. Available cone-beam reconstruction methods: Our discussion:

Computer Graphics. - Shading - Hendrik Lensch. Computer Graphics WS07/08 Light Transport

Topological Characteristic of Wireless Network

= dv 3V (r + a 1) 3 r 3 f(r) = 1. = ( (r + r 2

Illumination methods for optical wear detection

ISyE 4256 Industrial Robotic Applications

A modal estimation based multitype sensor placement method

IP Network Design by Modified Branch Exchange Method

Goal. Rendering Complex Scenes on Mobile Terminals or on the web. Rendering on Mobile Terminals. Rendering on Mobile Terminals. Walking through images

Segmentation of Casting Defects in X-Ray Images Based on Fractal Dimension

An Unsupervised Segmentation Framework For Texture Image Queries

Image Enhancement in the Spatial Domain. Spatial Domain

Multi-azimuth Prestack Time Migration for General Anisotropic, Weakly Heterogeneous Media - Field Data Examples

Analysis of uniform illumination system with imperfect Lambertian LEDs

Historical perspective of laser beam shaping

Topic -3 Image Enhancement

17/5/2009. Introduction

CSE 165: 3D User Interaction

Environment Mapping. Overview

4.2. Co-terminal and Related Angles. Investigate

Prof. Feng Liu. Fall /17/2016

Extended Perspective Shadow Maps (XPSM) Vladislav Gusev, ,

Lecture # 04. Image Enhancement in Spatial Domain

2. PROPELLER GEOMETRY

RANDOM IRREGULAR BLOCK-HIERARCHICAL NETWORKS: ALGORITHMS FOR COMPUTATION OF MAIN PROPERTIES

A Novel Automatic White Balance Method For Digital Still Cameras

Lecture 27: Voronoi Diagrams

DISTRIBUTION MIXTURES

ADDING REALISM TO SOURCE CHARACTERIZATION USING A GENETIC ALGORITHM

Journal of World s Electrical Engineering and Technology J. World. Elect. Eng. Tech. 1(1): 12-16, 2012

Erasure-Coding Based Routing for Opportunistic Networks

Concomitants of Upper Record Statistics for Bivariate Pseudo Weibull Distribution

Assignment 3: Path tracing

Shape Matching / Object Recognition

Class 21. N -body Techniques, Part 4

Adaptation of TDMA Parameters Based on Network Conditions

A Memory Efficient Array Architecture for Real-Time Motion Estimation

A New Finite Word-length Optimization Method Design for LDPC Decoder

A Two-stage and Parameter-free Binarization Method for Degraded Document Images

Output Primitives. Ellipse Drawing

Dr. A.B.M. Toufique Hasan. Lecture-13

Scaling Location-based Services with Dynamically Composed Location Index

DEVELOPMENT OF A PROCEDURE FOR VERTICAL STRUCTURE ANALYSIS AND 3D-SINGLE TREE EXTRACTION WITHIN FORESTS BASED ON LIDAR POINT CLOUD

Controlled Information Maximization for SOM Knowledge Induced Learning

MapReduce Optimizations and Algorithms 2015 Professor Sasu Tarkoma

vaiation than the fome. Howeve, these methods also beak down as shadowing becomes vey signicant. As we will see, the pesented algoithm based on the il

ANNOUNCEMENT. LECTURE 25 Spherical Refracting Surfaces

Electric Field of charged hollow and solid Spheres

(a, b) x y r. For this problem, is a point in the - coordinate plane and is a positive number.

The Rendering Equation Philip Dutré. Course 4. State of the Art in Monte Carlo Global Illumination Sunday, Full Day, 8:30 am - 5:30 pm

Any modern computer system will incorporate (at least) two levels of storage:

Color Correction Using 3D Multiview Geometry

Heterogeneous Isotropic BRDFs. Homogeneous BRDF. Spatially Varying BRDF. Approaches - Sampling. Approaches - Illumination

Conservation Law of Centrifugal Force and Mechanism of Energy Transfer Caused in Turbomachinery

Extensive games with imperfect information

Satellite Image Analysis

The Internet Ecosystem and Evolution

THE THETA BLOCKCHAIN

Physical simulation for animation

Keith Dalbey, PhD. Sandia National Labs, Dept 1441 Optimization & Uncertainty Quantification

Positioning of a robot based on binocular vision for hand / foot fusion Long Han

Strictly as per the compliance and regulations of:

Embeddings into Crossed Cubes

Elliptic Generation Systems

Optical Flow for Large Motion Using Gradient Technique

Finding point-pairs. Find Closest Point from Dense Cloud

Efficient protection of many-to-one. communications

Path Tracing part 2. Steve Rotenberg CSE168: Rendering Algorithms UCSD, Spring 2017

Separability and Topology Control of Quasi Unit Disk Graphs

A New and Efficient 2D Collision Detection Method Based on Contact Theory Xiaolong CHENG, Jun XIAO a, Ying WANG, Qinghai MIAO, Jian XUE

Number of Paths and Neighbours Effect on Multipath Routing in Mobile Ad Hoc Networks

UCLA Papers. Title. Permalink. Authors. Publication Date. Localized Edge Detection in Sensor Fields.

Research Article. Regularization Rotational motion image Blur Restoration

Mobility Pattern Recognition in Mobile Ad-Hoc Networks

Point-Biserial Correlation Analysis of Fuzzy Attributes

Topic 4 Root Finding

Numerical studies on Feldkamp-type and Katsevich-type algorithms for cone-beam scanning along nonstandard spirals

The Java Virtual Machine. Compiler construction The structure of a frame. JVM stacks. Lecture 2

Module 6 STILL IMAGE COMPRESSION STANDARDS

Outdoor Light Scattering Sample Update

Motion Estimation. Yao Wang Tandon School of Engineering, New York University

Augmented Reality. Integrating Computer Graphics with Computer Vision Mihran Tuceryan. August 16, 1998 ICPR 98 1

Fast quality-guided flood-fill phase unwrapping algorithm for three-dimensional fringe pattern profilometry

IP Multicast Simulation in OPNET

PROBABILITY-BASED OPTIMAL PATH PLANNING FOR TWO-WHEELED MOBILE ROBOTS

Also available at ISSN (printed edn.), ISSN (electronic edn.) ARS MATHEMATICA CONTEMPORANEA 3 (2010)

Three-Dimensional Aerodynamic Design Optimization of a Turbine Blade by Using an Adjoint Method

Interference-Aware Multicast for Wireless Multihop Networks

A NOVEL VOLUME CT WITH X-RAY ON A TROUGH-LIKE SURFACE AND POINT DETECTORS ON CIRCLE-PLUS-ARC CURVE

Siggraph Precomputed Radiance Transfer: Theory and Practice

CALCULUS III Surface Integrals. Paul Dawkins

Gravitational Shift for Beginners

Complete Solution to Potential and E-Field of a sphere of radius R and a charge density ρ[r] = CC r 2 and r n

GTOC 9, Multiple Space Debris Rendezvous Trajectory Design in the J2 environment

DYNAMIC STORAGE ALLOCATION. Hanan Samet

Topic 7 Random Variables and Distribution Functions

Transcription:

Monte Calo Techniques fo Rendeing CS 517 Fall 2002 Compute Science Conell Univesity Announcements No ectue on Thusday Instead, attend Steven Gotle, Havad Upson Hall B17, 4:15-5:15 (efeshments ealie) Geomety Images, econstuction of 3D Geomety Inteesting talk by Jim Gay 2:30-3:30, Wednesday, 255 Olin Hall Can Databases Help Science? Theefoe, Office hous this week by appointment

MC Advantages Convegence ate of O( ) Simple Sampling Point evaluation Can use black boes 1 N Geneal Woks fo high dimensions Deals with discontinuities, cazy functions, Octee Popeties Font to back tavesal Poblem: Same object in multiple cells Could epeatedly intesect Use mailboes

Intesection Acceleation Intesect ay with oot: p oot.intesect(ay) If no intesection, done Find p in tee (node j oot.find(p)) Test ay against elements in node j If intesection found, done Else find eit point (q) fom node j, p q, goto 2 Rendeing Equation ( Θ) ( Θ) + e Ω f ( Ψ Θ) ( Ψ) cos( Ψ, n ) dω function to integate ove all incoming diections ove the hemisphee aound Ψ Value we want + e f Ω cos

How to compute? ( Θ)? Check fo e ( Θ) Now add ( Θ)? Ω f ( Ψ Θ) ( Ψ) cos( Ψ, n ) dω Ψ Monte Calo! How to compute? Geneate andom diections on hemisphee Ω, using pdf p(ψ) ( Θ) Ω f ( Ψ Θ) ( Ψ) cos( Ψ, n ) dω Ψ ( Θ) 1 N f ( Ψ Θ) ( Ψ ) cos( Ψ, n ) N i i 1 p( Ψi ) i i

How to compute? evaluate ( Ψ i )? Radiance is invaiant along staight paths vp(, Ψ i ) fist visible point ( Ψ i ) (vp(, Ψ i ) Ψ i ) Russian Roulette Integal I 1 1 f ( ) P f ( ) d Pd 0 0 P 0 f ( y / P) dy P f ( y / P) P f () Estimato I oulette f ( i ) P 0 if if i P, > P. i 0 P 1 Vaiance σ > σ oulette

Russian Roulette Pick some absoption pobability α pobability 1-α that ay will bounce estimated adiance becomes / (1-α) E.g. α 0.9 only 1 chance in 10 that ay is eflected estimated adiance of that ay is multiplied by 10 instead of shooting 10 ays, we shoot only 1, but count the contibution of this one 10 times Stochastic Ray Tacing Paametes? # stating ays pe piel # andom ays fo each suface point (banching facto) Banching facto 1: path tacing

Algoithm so fa... Shoot # viewing ays though each piel Shoot # indiect ays, sampled ove hemisphee Teminate ecusion using Russian Roulette Algoithm?

Algoithm e 0? Algoithm in?

Algoithm in? Algoithm?

Algoithm e 0? Algoithm in?

Algoithm? Algoithm e 1.234?

Algoithm Path Tacing

Pefomance/Eo Want bette quality with smalle numbe of samples Fewe samples/bette pefomance Well-distibuted samples Statified sampling Faste convegence Impotance sampling: net-event estimation Statified Sampling Samples could be abitaily close Split Integal in subpats I f ( ) d + K+ f ( ) d Estimato I X1 stat 1 N X N f ( ) N i i 1 p( i ) f () 0 1 Vaiance: σ stat σ sec

Numeical eample Statified Sampling 9 shadow ays not statified 9 shadow ays statified

Statified Sampling 36 shadow ays not statified 36 shadow ays statified Statified Sampling 100 shadow ays not statified 100 shadow ays statified

2 Dimensions N 2 samples Poblem fo highe dimensions Sample points can still be abitaily close to each othe Highe Dimensions Statified gid sampling: N d samples N-ooks sampling: N samples

N-Rooks Sampling - 9 ays not statified statified N-Rooks N-Rooks Sampling - 36 ays not statified statified N-Rooks

Othe types of Sampling How does it elate to Regula Sampling Random sampling Regula sampling Typically impotance sample then statify Quasi Monte Calo Use of low discepancy sequences (these ae not andom numbes)

Quasi Monte Calo Quasi Monte Calo Conveges as fast as statified sampling Does not equie knowledge about how many samples will be used Using QMC diections evenly spaced no matte how many samples ae used Samples popely statified-> bette than pue MC

Pefomance/Eo Want bette quality with smalle numbe of samples Fewe samples/bette pefomance Well-distibuted samples Statified sampling Faste convegence Impotance sampling: net-event estimation Sample hemisphee Path Tacing 1 sample/piel 16 samples/piel 256 samples/piel Impotance Sampling: compute diect illumination sepaately!

Diect Illumination Paths of length 1 only, between eceive and light souce Diect ighting Global Illumination

Net Event Estimation ( Θ) ( Θ) + e Ω f ( Ψ Θ) ( Ψ) cos( Ψ, n ) dω Ψ Radiance fom light souces + adiance fom othe sufaces + e f Ω cos Net Event Estimation ( Θ) + + e diect indiect e + Ω f cos + Ω f cos So sample diect and indiect with sepaate MC integation

Algoithm? Algoithm e 0?

Algoithm?? 0 i d e?? 0 i d e Algoithm??? 2.345 0 i d e? 2.345 0 i d e

Algoithm Algoithm a vaiant of path tacing

Compaison Without N.E.E. With N.E.E. 16 samples/piel Rays pe piel 1 sample/ piel 4 samples/ piel 16 samples/ piel 256 samples/ piel

Diect Illumination ( Θ) f (, Ψ Θ) ( y Ψ) G(, y) A souce da y cos( n, Θ)cos( n G(, y) y 2 y, Ψ) Vis(, y) y n y Ψ Vis(,y)? Ψ n Θ Θ hemisphee integation aea integation y Ψ n diect Rendeing Equation ( Θ) Ω f ( Ψ Θ) ( Ψ) cosθ dω y vp(, Ψ) Ψ Ψ da y ( Ψ) ( vp(, Ψ) Ψ) dω Ψ da cosθ y dω Ψ y 2 y

Rendeing Equation: visible sufaces diect ( Θ) diect ( Θ) Ω Coodinate tansfom f ( Ψ Θ) ( Ψ) cosθ dω f ( Ψ Θ) ( y Ψ) all y lights on V (, y)cosθ y vp(, Ψ) Integation domain suface points y on lights Ψ cosθ y 2 y da y Geneating diect paths Pick suface points y i on light souce Evaluate diect illumination integal y θ y Vis(,y)? y ( Θ) 1 N f (...) (...) G(, y ) N i 1 p( yi ) i Θ θ

Applied to diect illumination p( y) 1 Aea souce cosθ cosθ y E( ) Aeasoucesouce Vis(, y) 2 y Moe points... 1 shadow ay 9 shadow ays E( ) Aea souce N souce N i 1 cosθ cosθ yi Vis(, y 2 i ) y i

Even moe points... 36 shadow ays 100 shadow ays E( ) Aea souce N souce N i 1 cosθ cosθ yi Vis(, y 2 i ) y i Paametes How many paths ( shadow-ays )? Total? Pe light souce? (~intensity, impotance, ) How to distibute paths within light souce? Distance fom point Unifom

Diect paths Diffeent path geneatos poduce diffeent estimatos and diffeent eo chaacteistics Diect illumination geneal algoithm: compute_adiance (point, diection) est_ad 0; fo (i0; i<n; i++) p geneate_path; est_ad + enegy_tansfe(p) / pobability(p); est_ad est_ad / n; etun(est_ad); Diect Paths: Using Aea Fom 1 path / souce 9 paths / souce 36 paths / souce

Altenative diect paths Shoot paths at andom ove hemisphee; check if they hit light souce paths not used efficiently noise in image might wok if light souce occupies lage potion on hemisphee Altenative diect paths 1 paths / point 16 paths / point 256 paths / point

Altenative diect paths Pick andom point on andom suface; check if on light souce and visible to taget point paths not used efficiently noise in image might wok fo lage suface light souces Diect path geneatos ight souce sampling - e non-zeo - 1 visibility tem in estimato Hemisphee sampling - e can be 0 - no visibility in estimato Suface sampling - e can be 0-1 visibility tem in estimato

Stochastic Ray Tacing Sample aea of light souce fo diect tem Sample hemisphee with andom ays fo indiect tem Optimizations: Statified sampling Impotance sampling Combine multiple pobability density functions into a single PDF Hemisphee integation Ψ n Θ ( Θ) 1 N f (...) (...) G(, y ) N i 1 p( yi ) i

Sampling stategies Unifom sampling ove the hemisphee ( Θ) Ω ( Ψ) f ( Ψ Θ) cos( Ψ, n ) dω Ψ p( Θ) 1/(2π ) Sampling stategies Sampling accoding to the cosine facto ( Θ) Ω ( Ψ) f ( Ψ Θ) cos( Ψ, n ) dω Ψ p( Θ) cosθ /π

Sampling stategies Sampling accoding to the BRDF ( Θ) Ω ( Ψ) f ( Ψ Θ) cos( Ψ, n ) dω Ψ p( Θ) ~ f ( Θ Ψ) Sampling stategies Sampling accoding to the BRDF times the cosine ( Θ) Ω ( Ψ) f ( Ψ Θ) cos( Ψ, n ) dω Ψ p( Θ) ~ f ( Θ Ψ) cosθ

Multi-Impotance-Sampling ( Θ) Radiance Ω f ( Ψ Θ) ( Ψ) cos( Ψ, n BRDF Iadiance ) dω Ψ Compaison With impotance sampling (bdf on sphee) Without impotance sampling (bdf on sphee)

Stochastic Ray Tacing Sample aea of light souce fo diect tem Sample hemisphee with andom ays fo indiect tem Optimizations: Statified sampling Impotance sampling Combine multiple pobability density functions into a single PDF Indiect Illumination Paths of length > 1 Many diffeent path geneatos possible Efficiency dependent on: BRDFs along the path Visibility function...

Indiect paths - suface sampling Simple geneato (path length 2): select point on light souce select andom point on sufaces pe path: 2 visibility checks Indiect paths - suface sampling Indiect illumination (path length 2): ( Θ) ( y Ψ1 ) f ( z, Ψ1 Ψ2 ) G( z, y) f ( z, Ψ2 Θ Asouce A ) G( y, ) da da z y ( Θ) 1 N N i 1 ( yi Ψ1 i ) f ( zi, Ψ1 i Ψ2i ) G( zi, yi ) f ( zi, Ψ2i Θ) G( yi, ) p ( y ) p ( z ) y i z i 2 visibility values (which might be 0) cause noise

Indiect paths - souce shooting Shoot ay fom light souce, find hit location Connect hit point to eceive pe path: 1 ay intesection 1 visibility check Indiect paths - eceive gatheing Shoot ay fom eceive point, find hit location Connect hit point to andom point on light souce pe path: 1 ay intesection 1 visibility check

Indiect paths Suface sampling - 2 visibility tems; can be 0 Souce shooting - 1 visibility tem - 1 ay intesection Receive gatheing - 1 visibility tem - 1 ay intesection Moe vaiants... Shoot ay fom eceive point, find hit location Shoot ay fom hit point, check if on light souce pe path: 2 ay intesections e might be zeo

Indiect paths Same pinciples apply to paths of length > 2 geneate multiple suface points geneate multiple bounces fom light souces and connect to eceive geneate multiple bounces fom eceive and connect to light souces Estimato and noise chaacteistics change with path geneato Geneal algoithm: Indiect paths compute_adiance (point, diection) est_ad 0; fo (i0; i<n; i++) p geneate_indiect_path; est_ad + enegy_tansfe(p) / pobability(p); est_ad est_ad / n; etun(est_ad);