SCREEN-SPACE FAR-FIELD AMBIENT OCCLUSION. Ville Timonen

Similar documents
Shadows. COMP 575/770 Spring 2013

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

Screen Space Ambient Occlusion. Daniel Kvarfordt & Benjamin Lillandt

Point based global illumination is now a standard tool for film quality renderers. Since it started out as a real time technique it is only natural

VAO++: Practical Volumetric Ambient Occlusion for Games

Screen Space Ambient Occlusion TSBK03: Advanced Game Programming

Shadows in the graphics pipeline

Screen-Space Far-Field Ambient Obscurance

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

Advanced Computer Graphics CS 563: Screen Space GI Techniques: Real Time

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

Simpler Soft Shadow Mapping Lee Salzman September 20, 2007

S U N G - E U I YO O N, K A I S T R E N D E R I N G F R E E LY A VA I L A B L E O N T H E I N T E R N E T

Shadow Techniques. Sim Dietrich NVIDIA Corporation

V-Ray 2.0 Tutorial. Choosing a view: Digital Media II Fall 2015

Enhancing Traditional Rasterization Graphics with Ray Tracing. March 2015

COMP30019 Graphics and Interaction Ray Tracing

Multiview Reconstruction

Ambien Occlusion. Lighting: Ambient Light Sources. Lighting: Ambient Light Sources. Summary

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

Hidden Surface Removal

BCC Sphere Transition

Dynamic Ambient Occlusion and Indirect Lighting. Michael Bunnell NVIDIA Corporation

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

Dominic Filion, Senior Engineer Blizzard Entertainment. Rob McNaughton, Lead Technical Artist Blizzard Entertainment

Let s start with occluding contours (or interior and exterior silhouettes), and look at image-space algorithms. A very simple technique is to render

Rendering Grass Terrains in Real-Time with Dynamic Lighting. Kévin Boulanger, Sumanta Pattanaik, Kadi Bouatouch August 1st 2006

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

Image Precision Silhouette Edges

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

Practical Techniques for Ray Tracing in Games. Gareth Morgan (Imagination Technologies) Aras Pranckevičius (Unity Technologies) March, 2014

03 RENDERING PART TWO

OpenGl Pipeline. triangles, lines, points, images. Per-vertex ops. Primitive assembly. Texturing. Rasterization. Per-fragment ops.

Volume-based Ambient Occlusion with Voxel Fragmentation

Computer Graphics. Shadows

Advanced Shading I: Shadow Rasterization Techniques

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

Volumetric Scene Reconstruction from Multiple Views

Advanced Computer Graphics CS 563: Making Imperfect Shadow Maps View Adaptive. Frederik Clinck lie

Global Illumination CS334. Daniel G. Aliaga Department of Computer Science Purdue University

Programming projects. Assignment 1: Basic ray tracer. Assignment 1: Basic ray tracer. Assignment 1: Basic ray tracer. Assignment 1: Basic ray tracer

View-Dependent Selective Refinement for Fast Rendering

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

Parallelization. Memory coherency helps when distributing rays to various threads/processors

Computer Graphics. Lecture 9 Hidden Surface Removal. Taku Komura

Deferred Rendering Due: Wednesday November 15 at 10pm

Many rendering scenarios, such as battle scenes or urban environments, require rendering of large numbers of autonomous characters.

Advanced Ray Tracing

Computer Graphics 10 - Shadows

All the Polygons You Can Eat. Doug Rogers Developer Relations

Sentinel Figure 1 Sentinel operating in a retail store

EECS 487: Interactive Computer Graphics

Two basic types: image-precision and object-precision. Image-precision For each pixel, determine which object is visable Requires np operations

INTRODUCTION TO COMPUTER GRAPHICS. It looks like a matrix Sort of. Viewing III. Projection in Practice. Bin Sheng 10/11/ / 52

Triangle Rasterization

LIGHTING - 1. Note. Lights. Ambient occlusion

Universiteit Leiden Computer Science

Multiple View Geometry

Shadow Algorithms. CSE 781 Winter Han-Wei Shen

Rasterization Overview

Adaptive Point Cloud Rendering

The Traditional Graphics Pipeline

The Traditional Graphics Pipeline

COMPUTING SCIENCE. Real-Time Ambient Occlusion on the Playstation3. Dominic Goulding, Richard Smith, Lee Clark, Gary Ushaw and Graham Morgan

Spatial Data Structures

Shading, lighting, & BRDF Theory. Cliff Lindsay, PHD

Texture Mapping. Michael Kazhdan ( /467) HB Ch. 14.8,14.9 FvDFH Ch. 16.3, , 16.6

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

Texture. Texture Mapping. Texture Mapping. CS 475 / CS 675 Computer Graphics. Lecture 11 : Texture

CS 475 / CS 675 Computer Graphics. Lecture 11 : Texture

Ray-Tracing. Misha Kazhdan

The Traditional Graphics Pipeline

Assignment 6: Ray Tracing

Real-Time Voxelization for Global Illumination

Enhancing Traditional Rasterization Graphics with Ray Tracing. October 2015

CSE 167: Introduction to Computer Graphics Lecture #4: Vertex Transformation

2D rendering takes a photo of the 2D scene with a virtual camera that selects an axis aligned rectangle from the scene. The photograph is placed into

TSBK03 Screen-Space Ambient Occlusion

Direct Rendering of Trimmed NURBS Surfaces

Practical Shadows. Outline

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

Designing a Site with Avigilon Self-Learning Video Analytics 1

INTRODUCTION TO COMPUTER GRAPHICS. cs123. It looks like a matrix Sort of. Viewing III. Projection in Practice 1 / 52

cse 252c Fall 2004 Project Report: A Model of Perpendicular Texture for Determining Surface Geometry

Chapter 5- Setting Up a World

About Phoenix FD PLUGIN FOR 3DS MAX AND MAYA. SIMULATING AND RENDERING BOTH LIQUIDS AND FIRE/SMOKE. USED IN MOVIES, GAMES AND COMMERCIALS.

Ambient Occlusion Pass

Hidden surface removal. Computer Graphics

Volume Rendering. Computer Animation and Visualisation Lecture 9. Taku Komura. Institute for Perception, Action & Behaviour School of Informatics

LOD and Occlusion Christian Miller CS Fall 2011

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

COMP30019 Graphics and Interaction Scan Converting Polygons and Lines

Computer Graphics. Lecture 14 Bump-mapping, Global Illumination (1)

Software Occlusion Culling

Occluder Simplification using Planar Sections

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

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

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

Interpolation using scanline algorithm

Table of Contents. Questions or problems?

Transcription:

SCREEN-SPACE FAR-FIELD AMBIENT OCCLUSION Ville Timonen

CONTENTS 1. Ambient Occlusion 2. Screen-Space Ambient Occlusion 3. Previous methods 4. Our method 5. Results 2

1 AMBIENT OCCLUSION Components of Light Direct light + Indirect light = Global lighting 3

1 AMBIENT OCCLUSION Components of Light Physically no need to treat different light sources differently However different approximations/algorithms suitable for each type Ambient occlusion (AO) approximates lighting from uniformly lit surroundings Complements direct lighting from local light sources (lamps, etc)

D 1 AMBIENT OCCLUSION Components of Light Direct (sun) +AO (indirect) 5

1 AMBIENT OCCLUSION Components of Light Direct +AO D 6

1 AMBIENT OCCLUSION Want to produce this: 7

1 AMBIENT OCCLUSION Want to produce this: 8

1 AMBIENT OCCLUSION Want to produce this: 9

1 AMBIENT OCCLUSION Want to produce this: 10

1 AMBIENT OCCLUSION Definition of AO Screen consists of 1-2M points (e.g. 1920x1080, FullHD) For each point, determine whether there is surrounding occluders Skylight

1 AMBIENT OCCLUSION Definition of AO In addition to on/off visibility (skylight), the surrounding geometry also reflects light (otherwise indoor scenes would be pitch black) Add a falloff term F that tapers off as a function of distance F(0) = 1, F(inf) = 0 Now need to know distance to occluder, D 12

CONTENTS 1. Ambient Occlusion 2. Screen-Space Ambient Occlusion 3. Previous methods 4. Our method 5. Results 13

2 SCREEN-SPACE AMBIENT OCCLUSION Used in real-time graphics (computer games) Fast but uses incomplete geometry of the scene: a depth buffer Depth buffer (aka Z buffer) is a free by-product of a rendering pipeline Used to determine visibility Distance value (camera -> geometry) for each screen pixel 14

2 SCREEN-SPACE AMBIENT OCCLUSION Example depth buffer (dark = far, light = near)

2 SCREEN-SPACE AMBIENT OCCLUSION Example depth buffer (dark = far, light = near)

2 SCREEN-SPACE AMBIENT OCCLUSION Example depth buffer (dark = far, light = near)

2 SCREEN-SPACE AMBIENT OCCLUSION Depth to Height Flip the depth buffer around and it becomes a height field We don t know what s behind the first layer For now, let s assume it represents solid geometry Can be linearly interpolated

CONTENTS 1. Ambient Occlusion 2. Screen-Space Ambient Occlusion 3. Previous methods 4. Our method 5. Results 19

3 PREVIOUS METHODS 2D integral to K x 1D Instead of evaluating the 2D integral, decompose it into multiple (K) 1D integrals Here K=8 I.e. from each receiver point (screen pixel), occluders are searched in K azimuthal directions

3 PREVIOUS METHODS Marching along one of the K directions Take steps (Sn) of constant length along the direction Keep track of horizon angle

3 PREVIOUS METHODS Marching along one of the K directions When the horizon (from P to Sn) exceeds the previous max, the new point (Sn) is visible to P S1 not visible

3 PREVIOUS METHODS Marching along one of the K directions When the horizon (from P to Sn) exceeds the previous max, the new point (Sn) is visible to P S2 visible

3 PREVIOUS METHODS Marching along one of the K directions When the horizon (from P to Sn) exceeds the previous max, the new point (Sn) is visible to P S3 visible

3 PREVIOUS METHODS Marching along one of the K directions Integrate occlusion along the horizon angle piece-wise From a visible point to the next (tangent at P -> S0 -> S2 -> S3) Rinse and repeat for each K and for each pixel

3 PREVIOUS METHODS Marching along one of the K directions Let hn be a vector from P to (a visible) Sn (we call this a horizon vector) Integrate occlusion along the horizon vectors piece-wise

3 PREVIOUS METHODS The problem Falloff defined in world space: AO effect can span arbitrary lengths on screen Often need many steps per direction before contribution has fallen enough to be cut Cannot afford to take hundreds of samples per direction What to do?

3 PREVIOUS METHODS Want this Takes 2 seconds/frame, way too slow

3 PREVIOUS METHODS Sparser sampling farther from receiver Now it s fast enough, but some pixels hit occluders, some miss..

3 PREVIOUS METHODS MIPMAP Got rid of the blockiness, but...

3 PREVIOUS METHODS MIPMAP MIPMAP No longer artefacts, but systematic underocclusion reference Error black = 20% white = 0%

CONTENTS 1. Ambient Occlusion 2. Screen-Space Ambient Occlusion 3. Previous methods 4. Our method 5. Results 32

4 OUR METHOD Teaser our method reference Same number of samples as in MIPMAP, but significantly closer to truth Error black = 20% white = 0%

4 OUR METHOD Otherwise the same except the data used for sampling... MIPMAPs flatten the geometry Instead, we would like to retain is the silhouette of the geometry as seen from any receiver point Silhouette is formed by local maxima of the height field Let s start with that...

4 OUR METHOD We generate an intermediate geometry proxy Traverse the height field in parallel lines, a step at a time Every B0 steps (here B0=3) we write out the highest value on the line

4 OUR METHOD We generate an intermediate geometry proxy Recall that we split the 2D integral into K 1D integrals Each of these should represent the entire sector (2*PI/K) So instead of sampling the maximum heights along one line, want to take average maximum height along the sector s width

4 OUR METHOD We generate an intermediate geometry proxy Calculate running sums of the maximum heights Getting the average becomes (A[i1]-A[i0])/(i1-i0)

4 OUR METHOD Multi-view Maximum heights represent silhouette only when the receiver is horizontal to the caster In addition, we can project maximum height along multiple viewing directions (left)

4 OUR METHOD Multi-view This has an alternative interpretation: Intersections of the projections describe a convex hull of the geometry (right) Edges of the convex hull can be used as the endpoints (Sn) of the horizon vectors (hn)

4 OUR METHOD Multi-view Of particular interest is the case of 2 viewing directions The convex hull is reduced to a single point Can be used directly as the horizon vector end point Sn

4 OUR METHOD Level of detail We generate multiple resolutions of the projections Differ in the range the max is taken over of Combined by maxing higher resolutions Used when sampling farther from the receiver

CONTENTS 1. Ambient Occlusion 2. Screen-Space Ambient Occlusion 3. Previous methods 4. Our method 5. Results 42

5 RESULTS Our method Reference

5 RESULTS

5 RESULTS Roughly as fast as the MIPMAP method