Real-Time Shadows. Last Time? Schedule. Questions? Today. Why are Shadows Important?

Similar documents
Real-Time Shadows. MIT EECS 6.837, Durand and Cutler

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

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

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

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

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

Texture Mapping II. Light maps Environment Maps Projective Textures Bump Maps Displacement Maps Solid Textures Mipmaps Shadows 1. 7.

Real-Time Shadows. Computer Graphics. MIT EECS Durand 1

Shadows. Real-Time Hard Shadows. Collected by Ronen Gvili. Most slides were taken from : Fredu Durand Stefan Brabec

Shadows. Shadows. Spatial relationship between objects. Shadows as depth cue. Spatial relationship between objects

Shadows. Shadows. Thanks to: Frédo Durand and Seth Teller MIT. Realism Depth cue

Shadows. Shadows. Spatial relationship between objects. Shadows as depth cue. Spatial relationship between objects

Computer Graphics Shadow Algorithms

Computergrafik. Matthias Zwicker. Herbst 2010

Shadow Rendering EDA101 Advanced Shading and Rendering

6.837 Introduction to Computer Graphics Quiz 2 Thursday November 20, :40-4pm One hand-written sheet of notes allowed

Shadows in the graphics pipeline

Advanced Shading I: Shadow Rasterization Techniques

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

Shadows. COMP 575/770 Spring 2013

Computer Graphics 10 - Shadows

Shadow Algorithms. CSE 781 Winter Han-Wei Shen

Computer Graphics. Shadows

Lecture 17: Shadows. Projects. Why Shadows? Shadows. Using the Shadow Map. Shadow Maps. Proposals due today. I will mail out comments

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

Acknowledgement: Images and many slides from presentations by Mark J. Kilgard and other Nvidia folks, from slides on developer.nvidia.

The Traditional Graphics Pipeline

The Traditional Graphics Pipeline

What for? Shadows tell us about the relative locations. Vienna University of Technology 2

Overview. A real-time shadow approach for an Augmented Reality application using shadow volumes. Augmented Reality.

Robust Stencil Shadow Volumes. CEDEC 2001 Tokyo, Japan

Volume Shadows Tutorial Nuclear / the Lab

The Traditional Graphics Pipeline

Rasterization Overview

Computing Visibility. Backface Culling for General Visibility. One More Trick with Planes. BSP Trees Ray Casting Depth Buffering Quiz

Models and Architectures. Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico

CSE528 Computer Graphics: Theory, Algorithms, and Applications

Introduction to Computer Graphics with WebGL

EECS 487: Interactive Computer Graphics

graphics pipeline computer graphics graphics pipeline 2009 fabio pellacini 1

Illumination and Geometry Techniques. Karljohan Lundin Palmerius

Movie: For The Birds. Announcements. Ray Tracing 1. Programming 2 Recap. Programming 3 Info Test data for part 1 (Lines) is available

graphics pipeline computer graphics graphics pipeline 2009 fabio pellacini 1

Models and Architectures

Computer Graphics (CS 543) Lecture 10: Soft Shadows (Maps and Volumes), Normal and Bump Mapping

Pipeline Operations. CS 4620 Lecture 10

Graphics Hardware and Display Devices

Shadow Techniques. Sim Dietrich NVIDIA Corporation

CS4620/5620: Lecture 14 Pipeline

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

Intro to Ray-Tracing & Ray-Surface Acceleration

Shadow Mapping. Marc Stamminger, University of Erlangen-Nuremberg

Recall: Indexing into Cube Map

Rendering Algorithms: Real-time indirect illumination. Spring 2010 Matthias Zwicker

Shadow Volume History (1) Shadow Volumes. Shadow Volume History (2) Shadow Volume History (3) Shadow Volume Basics. Shadow Volume History (4)

Soft shadows. Steve Marschner Cornell University CS 569 Spring 2008, 21 February

Problem Set 4 Part 1 CMSC 427 Distributed: Thursday, November 1, 2007 Due: Tuesday, November 20, 2007

Advanced Shading and Texturing

CSE4030 Introduction to Computer Graphics

CS 354R: Computer Game Technology

Gaël Guennebaud Loïc Barthe, Mathias Paulin IRIT UPS CNRS TOULOUSE FRANCE Gaël Guennebaud Cyprus June 2006

Fondamenti di Grafica 3D The Rasterization Pipeline.

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

The Graphics Pipeline

From Vertices to Fragments: Rasterization. Reading Assignment: Chapter 7. Special memory where pixel colors are stored.

Local vs. Global Illumination & Radiosity

Computer Graphics Introduction. Taku Komura

Creating soft shadows

3D Rasterization II COS 426

Computer Graphics I Lecture 11

Visibility. Tom Funkhouser COS 526, Fall Slides mostly by Frédo Durand

FRUSTUM-TRACED RASTER SHADOWS: REVISITING IRREGULAR Z-BUFFERS

In- Class Exercises for Shadow Algorithms

Topics and things to know about them:

TSBK03 Screen-Space Ambient Occlusion

3D Polygon Rendering. Many applications use rendering of 3D polygons with direct illumination

Last Time? Ray Casting. Administrivia: Lab & Office Hours. Notes on Assignments. Ray Casting. Overview of Today

03 RENDERING PART TWO

Computer Graphics 1. Chapter 7 (June 17th, 2010, 2-4pm): Shading and rendering. LMU München Medieninformatik Andreas Butz Computergraphik 1 SS2010

Pipeline Operations. CS 4620 Lecture Steve Marschner. Cornell CS4620 Spring 2018 Lecture 11

INFOGR Computer Graphics. J. Bikker - April-July Lecture 10: Ground Truth. Welcome!

Real-Time Shadows. André Offringa Timo Laman

Optimized Stencil Shadow Volumes. Cass Everitt & Mark J. Kilgard

Topic #1: Rasterization (Scan Conversion)

CS451Real-time Rendering Pipeline

TDA362/DIT223 Computer Graphics EXAM (Same exam for both CTH- and GU students)

Getting fancy with texture mapping (Part 2) CS559 Spring Apr 2017

Shadows in Computer Graphics. by Björn Kühl im/ve University of Hamburg, Germany

Level of Details in Computer Rendering

Rendering Part I (Basics & Ray tracing) Lecture 25 December 1, 2015

The Rendering Equation & Monte Carlo Ray Tracing

DEFERRED RENDERING STEFAN MÜLLER ARISONA, ETH ZURICH SMA/

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

CS 464 Review. Review of Computer Graphics for Final Exam

Rasterization. MIT EECS Frédo Durand and Barb Cutler. MIT EECS 6.837, Cutler and Durand 1

CHAPTER 1 Graphics Systems and Models 3

Advanced Lighting Techniques Due: Monday November 2 at 10pm

Procedural modeling and shadow mapping. Computer Graphics CSE 167 Lecture 15

Enabling immersive gaming experiences Intro to Ray Tracing

Pipeline Operations. CS 4620 Lecture 14

Transcription:

Last Time? Real-Time Shadows The graphics pipeline Clipping & rasterization of polygons Visibility the depth buffer (z-buffer) Schedule Questions? Quiz 2: Thursday November 2 th, in class (two weeks from Thursday) Project Presentations (to staff): December 1 st -5 th (~ 4 weeks) Project Report due: Tuesday December 9 th (5 weeks from today) Today Why are Shadows Important? Shadows & Soft Shadows in Ray Tracing Planar Shadows Shadow Maps Shadow Volumes Why are Shadows Important? Depth cue Scene Lighting Realism Contact points

Shadows as a Depth Cue For Intuition about Scene Lighting Position of the light (e.g. sundial) Hard shadows vs. soft shadows Colored lights Directional light vs. point light Shadows as the Origin of Painting Shadows and Art Only in Western pictures (here Caravaggio) Today Why are Shadows Important? Shadows & Soft Shadows in Ray Tracing Planar Shadows Shadow Maps Shadow Volumes Shadows One shadow ray per intersection per point light source no shadow rays one shadow ray

Soft Shadows Caused by extended light sources Umbra source completely occluded Penumbra Source partially occluded Fully lit Soft Shadows Multiple shadow rays to sample area light source one shadow ray lots of shadow rays Shadows in Ray Tracing Shoot ray from visible point to light source If blocked, discard light contribution Optimization? Stop after first intersection (don t worry about tmin) Coherence: remember the previous occluder, and test that object first Traditional Ray Tracing Ray Tracing + Soft Shadows Questions?

Today Why are Shadows Important? Shadows & Soft Shadows in Ray Tracing Planar Shadows Shadow Maps Shadow Volumes Cast Shadows on Planar Surfaces Draw the object primitives a second time, projected to the ground plane Limitations of Planar Shadows Does not produce self-shadows, shadows cast on other objects, shadows on curved surfaces, etc. Today Why are Shadows Important? Shadows & Soft Shadows in Ray Tracing Planar Shadows Shadow Maps Texture Mapping Shadow View Duality Shadow Volumes Texture Mapping Don't have to represent everything with geometry Texture Mapping Like wallpapering or gift-wrapping with stretchy paper Curved surfaces require extra stretching or cutting More on this in a couple weeks...

Shadow/View Duality A point is lit if it is visible from the light source Fake Shadows using Projective Textures Separate obstacle and receiver Compute b/w image of obstacle from light Use image as projective texture for each receiver Shadow computation similar to view computation Image from light source BW image of obstacle Final image Figure from Moller & Haines Real Time Rendering Shadow maps In Renderman (High-end production software) Shadow Mapping Texture mapping with depth information 2 passes through the pipeline Compute shadow map (depth from light source) Render final image (check shadow map to see if points are in shadow) Figure from Foley et al. Computer Graphics Principles and Practice Shadow Map Look Up Shadow Maps We have a 3D point (x,y,z) WS How do we look up the depth from the shadow map? Use the 4x4 perspective projection matrix from the light source to get (x',y',z') LS ShadowMap(x',y') < z'? (x',y',z') LS (x,y,z) WS Can be done in hardware Using hardware texture mapping Texture coordinates u,v,w generated using 4x4 matrix Modern hardware permits tests on texture values Foley et al. Computer Graphics Principles and Practice

Limitations of Shadow Maps 1. Field of View 2. Bias (Epsilon) 3. Aliasing 1. Field of View Problem What if point to shadow is outside field of view of shadow map? Use cubical shadow map Use only spot lights! 2. The Bias (Epsilon) Nightmare For a point visible from the light source ShadowMap(x,y ) z 2. Bias (Epsilon) for Shadow Maps ShadowMap(x,y ) + bias < z Choosing a good bias value can be very tricky How can we avoid erroneous self-shadowing? Add bias (epsilon) Correct image Not enough bias Way too much bias 3. Shadow Map Aliasing Under-sampling of the shadow map Reprojection aliasing especially bad when the camera & light are pointing towards each other Shadow Map Filtering Should we filter the depth? (weighted average of neighboring depth values) No... filtering depth is not meaningful

Percentage Closer Filtering Instead filter the result of the test (weighted average of comparison results) But makes the bias issue more tricky Percentage Closer Filtering 5x5 samples Nice antialiased shadow Using a bigger filter produces fake soft shadows Setting bias is tricky Projective Texturing + Shadow Map Shadows in Production Often use shadow maps Ray casting as fallback in case of robustness issues Light s View Depth/Shadow Map Eye s View Images from Cass Everitt et al., Hardware Shadow Mapping NVIDIA SDK White Paper Questions? Today Why are Shadows Important? Shadows & Soft Shadows in Ray Tracing Planar Shadows Shadow Maps Shadow Volumes The Stencil Buffer

Shadow Volumes Explicitly represent the volume of space in shadow For each polygon Pyramid with point light as apex Include polygon to cap Shadow test similar to clipping Shadow Volumes If a point is inside a shadow volume cast by a particular light, the point does not receive any illumination from that light Naive implementation: #polygons * #lights Shadow Volumes Stencil Buffer Shoot a ray from the eye to the visible point Increment/decrement a counter each time we intersect a shadow volume polygon (check z buffer) If the counter, the point is in shadow -1 Tag pixels in one rendering pass to control their update in subsequent rendering passes "For all pixels in the frame buffer" "For all tagged pixels in the frame buffer" Used for real-time mirrors (& other reflective surfaces), shadows & more! from NVIDIA's stencil buffer tutorial (http://developer.nvidia.com) Stencil Buffer Shadow Volumes w/ the Stencil Buffer Can specify different rendering operations for each of the following stencil tests: stencil test fails stencil test passes & depth test fails stencil test passes & depth test passes Initialize stencil buffer to Draw scene with ambient light only Turn off frame buffer & z-buffer updates Draw front-facing shadow polygons If z-pass increment counter Draw back-facing shadow polygons If z-pass decrement counter Turn on frame buffer updates image from NVIDIA's stencil buffer tutorial (http://developer.nvidia.com) Turn on lighting and redraw pixels with counter = +2

If the Eye is in Shadow... 1. Test Eye with Respect to Volumes... then a counter of does not necessarily mean lit 3 Possible Solutions: 1. Explicitly test eye point with respect to all shadow volumes -1 Adjust initial counter value Expensive 2. Clip the shadow volumes to the view frustum 3. "Z-Fail" shadow volumes -1 2. Clip the Shadow Volumes 3. "Z-Fail" Shadow Volumes Clip the shadow volumes to the view frustum and include these new polygons Messy CSG Start at infinity... Draw front-facing shadow polygons If z-fail, decrement counter Draw back-facing shadow polygons If z-fail, increment counter... 3. "Z-Fail" Shadow Volumes Optimizing Shadow Volumes Use silhouette edges only (edge where a back-facing & front-facing polygon meet) Introduces problems with far clipping plane Solved by clamping the depth during clipping L A

Limitations of Shadow Volumes Questions? Introduces a lot of new geometry Expensive to rasterize long skinny triangles Limited precision of stencil buffer (counters) for a really complex scene/object, the counter can overflow Objects must be watertight to use silhouette trick Rasterization of polygons sharing an edge must not overlap & must not have gap Next Time: Global Illumination: Radiosity