Dynamic Parallax Occlusion Mapping with Approximate Soft Shadows

Similar documents
INTRODUCTION TO RENDERING TECHNIQUES

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

A Short Introduction to Computer Graphics

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

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

Shader Model 3.0. Ashu Rege. NVIDIA Developer Technology Group

How To Make A Texture Map Work Better On A Computer Graphics Card (Or Mac)

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

Advanced Rendering for Engineering & Styling

Dynamic Resolution Rendering

Deferred Shading & Screen Space Effects

Advances in Real-Time Skin Rendering

Volume visualization I Elvins

Introduction to Computer Graphics

Lecture Notes, CEng 477

OpenGL Performance Tuning

The Evolution of Computer Graphics. SVP, Content & Technology, NVIDIA

3D Computer Games History and Technology

GPU Shading and Rendering: Introduction & Graphics Hardware

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

Optimizing AAA Games for Mobile Platforms

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

Richer Worlds for Next Gen Games: Data Amplification Techniques Survey. Natalya Tatarchuk 3D Application Research Group ATI Research, Inc.

Overview Motivation and applications Challenges. Dynamic Volume Computation and Visualization on the GPU. GPU feature requests Conclusions

GPU Architecture. Michael Doggett ATI

Rendering Microgeometry with Volumetric Precomputed Radiance Transfer

GUI GRAPHICS AND USER INTERFACES. Welcome to GUI! Mechanics. Mihail Gaianu 26/02/2014 1

GPU(Graphics Processing Unit) with a Focus on Nvidia GeForce 6 Series. By: Binesh Tuladhar Clay Smith

Approval Sheet. Interactive Illumination Using Large Sets of Point Lights

Using Photorealistic RenderMan for High-Quality Direct Volume Rendering

Advanced Visual Effects with Direct3D

The Future Of Animation Is Games

1. INTRODUCTION Graphics 2

Silverlight for Windows Embedded Graphics and Rendering Pipeline 1

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

Radeon HD 2900 and Geometry Generation. Michael Doggett

Computer Graphics CS 543 Lecture 12 (Part 1) Curves. Prof Emmanuel Agu. Computer Science Dept. Worcester Polytechnic Institute (WPI)

Computers in Film Making

Autodesk Revit Architecture 2011 Professional Massmodeling Rendering Video Tutorial

CS 4204 Computer Graphics

Consolidated Visualization of Enormous 3D Scan Point Clouds with Scanopy

Image Synthesis. Transparency. computer graphics & visualization

Image Synthesis. Fur Rendering. computer graphics & visualization

Computer Applications in Textile Engineering. Computer Applications in Textile Engineering

Direct Volume Rendering Elvins

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

Optimizing Unity Games for Mobile Platforms. Angelo Theodorou Software Engineer Unite 2013, 28 th -30 th August

Modern Graphics Engine Design. Sim Dietrich NVIDIA Corporation

Hardware design for ray tracing

Outline. srgb DX9, DX10, XBox 360. Tone Mapping. Motion Blur

TEXTURE AND BUMP MAPPING

COMP175: Computer Graphics. Lecture 1 Introduction and Display Technologies

A Prototype For Eye-Gaze Corrected

Abstract. These two vectors define a plane tangent to the surface at that point. Their cross product is Recent work in computer graphics has been

Animation. Persistence of vision: Visual closure:

Introduction GPU Hardware GPU Computing Today GPU Computing Example Outlook Summary. GPU Computing. Numerical Simulation - from Models to Software

Making natural looking Volumetric Clouds In Blender 2.48a

Efficient Storage, Compression and Transmission

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

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

Touchstone -A Fresh Approach to Multimedia for the PC

L20: GPU Architecture and Models

Lezione 4: Grafica 3D*(II)

GPGPU Computing. Yong Cao

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

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

A NEW METHOD OF STORAGE AND VISUALIZATION FOR MASSIVE POINT CLOUD DATASET

NVIDIA IndeX Enabling Interactive and Scalable Visualization for Large Data Marc Nienhaus, NVIDIA IndeX Engineering Manager and Chief Architect

Introduction Computer stuff Pixels Line Drawing. Video Game World 2D 3D Puzzle Characters Camera Time steps

SkillsUSA 2014 Contest Projects 3-D Visualization and Animation

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

GPU-Driven Rendering Pipelines

Introduction to GPGPU. Tiziano Diamanti

Computer Graphics Hardware An Overview

Modelling 3D Avatar for Virtual Try on

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

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

Distributed Area of Interest Management for Large-Scale Immersive Video Conferencing

Motivation. Motivation

Hi everyone, my name is Michał Iwanicki. I m an engine programmer at Naughty Dog and this talk is entitled: Lighting technology of The Last of Us,

Advanced Real-Time Rendering in 3D Graphics and Games

Software Virtual Textures

Optimization for DirectX9 Graphics. Ashu Rege

High Dynamic Range and other Fun Shader Tricks. Simon Green

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

Visualization and Feature Extraction, FLOW Spring School 2016 Prof. Dr. Tino Weinkauf. Flow Visualization. Image-Based Methods (integration-based)

Computer Graphics. Anders Hast

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

Computer-Generated Photorealistic Hair

Radeon GPU Architecture and the Radeon 4800 series. Michael Doggett Graphics Architecture Group June 27, 2008

The 3D rendering pipeline (our version for this class)

VRayPattern also allows to curve geometry on any surface

Enhanced LIC Pencil Filter

How To Understand The Power Of Unity 3D (Pro) And The Power Behind It (Pro/Pro)

Rendering Area Sources D.A. Forsyth

How To Teach Computer Graphics

Volume Rendering on Mobile Devices. Mika Pesonen

Stochastic Billboard Clouds for Interactive Foliage Rendering

Visibility Map for Global Illumination in Point Clouds

Graphics Cards and Graphics Processing Units. Ben Johnstone Russ Martin November 15, 2011

Transcription:

Dynamic Parallax Occlusion Mapping with Approximate Soft Shadows Natalya Tatarchuk 3D Application Research Group ATI Research, Inc.

Outline Problem definition Related work review Parallax occlusion mapping algorithm Results discussion Conclusions

Objective We want to render very detailed surfaces Don t want to pay the price of millions of triangles Vertex transform cost Memory footprint Want to render those detailed surfaces accurately Preserve depth at all angles Dynamic lighting Self occlusion resulting in correct shadowing

Parallax Occlusion Mapping Per-pixel ray tracing of a height field in tangent space Correctly handles complicated viewing phenomena and surface details Displays motion parallax Renders complex geometric surfaces such as displaced text / sharp objects Calculates occlusion and filters visibility samples for soft self-shadowing Uses flexible lighting model Adaptive LOD system to maximize quality and performance

Parallax Occlusion Mapping versus Normal Mapping Scene rendered with Parallax Occlusion Mapping Scene rendered with normal mapping

Approximating Surface Details First there was bump mapping [Blinn78] Rendering detailed and uneven surfaces where normals are perturbed in some pre-determined manner Popularized as normal mapping as a per-pixel technique No self-shadowing of the surface Coarse silhouettes expose the actual geometry being drawn Doesn t take into account geometric surface depth Does not exhibit parallax apparent displacement of the object due to viewpoint change

Selected Related Work Horizon mapping [Max88] Interactive horizon mapping [Sloan00] Parallax mapping [Kaneko01] Parallax mapping with offset limiting [Welsh03] Hardware Accelerated Per-Pixel Displacement Mapping [Hirche04]

Real-Time Relief Mapping [Policarpo05] Similar idea to one presented here Per-pixel ray tracing to arrive at displaced point on the extruded surface Different implementation A combination of a static linear search and a binary search to determine an approximation for ray - height field intersection Linear search finds a point below the extruded surface along the ray Binary search is used to arrive at approximate displaced point on the surface Does not compute the ray-surface intersection, just samples the height field Hard shadows computed for self-occlusion based shading

Binary Search for Surface-Ray Intersection Binary search refers to repeatedly halving the search distance to determine the displaced point The height field is not sorted a priori Requires dependent texture fetches for computation Incurs latency cost for each successive depth level Uses 5 or more levels of dependent texture fetches (therefore only SM 3.0 GPUs), written as SM 2.a

Non-Height-Field Surface Details F. Policarpo, M. M. Oliveira. 2006. Relief Mapping of Non-Height-Field Surface Details, I3D 2006 Earlier presentation Allows representing non-height-field mesostructure details for rendering complex surfaces

Per-Pixel Displacement Mapping with Distance Functions [Donnely05] Also a real-time technique for rendering per-pixel displacement mapped surfaces on the GPU Stores a slab of distances to the height field in a volumetric texture To arrive at the displaced point, walks the volume texture in the direction of the ray Instead of performing a ray-height field intersection Uses dependent texture fetches, amount varies

Per-Pixel Displacement Mapping with Distance Functions [Donnely05] Visible aliasing Not just at grazing angles Only supports precomputed height fields Requires preprocessing to compute volumetric distance map Volumetric texture size is prohibitive The idea of using a distance map to arrive at the extruded surface is very useful

Our Contributions Increased precision of height field ray intersections Dynamic real-time lighting of surfaces with soft shadows due to self-occlusion under varying light conditions Directable level-of-detail control system with smooth transitions between levels Motion parallax simulation with perspective-correct depth

Parallax Occlusion Mapping Introduced in [Browley04] Self-Shadowing, Perspective-Correct Bump Mapping Using Reverse Height Map Tracing Efficiently utilizes programmable GPU pipeline for interactive rendering rates Current algorithm has several significant improvements over the earlier technique

Encoding Displacement Information Tangent-space normal map Height map (displacement values) All computations are done in tangent space, and thus can be applied to arbitrary surfaces

Parallax Displacement View ray Input texture coordinate Polygonal surface t off 1.0 Extruded surface Result of normal mapping Displaced point on surface 0.0

Implementation: Per-Vertex Compute the viewing direction, the light direction in tangent space Can compute the parallax offset vector (as an optimization) Interpolated by the rasterizer

Implementation: Per-Pixel Ray-cast the view ray along the parallax offset vector Ray height field profile intersection as a texture offset Yields the correct displaced point visible from the given view angle Light ray height profile intersection for occlusion computation to determine the visibility coefficient Shading Using any attributes Any lighting model

Height Field Profile Tracing Parallax offset vector View ray Polygonal surface Extruded surface t off δ t 0 1.0 0.0

Linear Search for Surface-Ray Intersection We use just the linear search which requires only regular texture fetches Fast performance Using dynamic flow control, can break out of execution once the intersection is found Linear search alone does not yield good rendering results Requires high precision calculations for surfaceray intersections Otherwise produces visible aliasing artifacts

Comparison of Intersection Search Types and Depth Bias Application Relief Mapping with both binary and linear searches and no depth bias applied: Notice the aliasing artifacts

Comparison of Intersection Search Types and Depth Bias Application Relief Mapping with both binary and linear searches and depth bias applied: Notice the horizon flattening

Comparison of Intersection Search Types and Depth Bias Application Parallax occlusion mapping rendered with just linear search but the high precision height field intersection computation

Height Field Profile Ray Intersection B A Intersections resulted from direct height profile query (piecewise constant approximation) Intersections due to piecewise linear height field approximation

Higher Quality With Dynamic Sampling Rate Sampling-based algorithms are prone to aliasing Solution: Dynamically adjust the sampling rate for ray tracing as a linear function of angle between the geometric normal and the view direction ray n = n + Nˆ Vˆ ts( n n min max min ) Aliasing at grazing angles due to static sampling rate Perspective-correct depth with dynamic sampling rate

Self-Occlusion Shadows View ray Polygonal surface Extruded surface Light ray t off 1.0

Hard Shadows Computation Simply determining whether the current feature is occluded yields hard shadows [Policarpo05]

Soft Shadows Computation We can compute soft shadows by filtering the visibility [Policarpo05] samples during the occlusion computation Don t compute shadows for objects not facing the light source: N L > 0

Penumbral Size Approximation 1.0 h 0 h 1 h 2 h 3 h 4 h 5 h 6 h 7 d r Light vector w s d b Light source Blocker 0.0 The blocker heights h i allow us to compute the blocker-to-receiver ratio w p = w s (d r d b ) / d b w p Surface

Shadows Comparison Example Relief Mapping with Hard Shadows Parallax Occlusion Mapping with Soft Shadows

Illuminating the Surface Use the computed texture coordinate offset to sample desired maps (albedo, normal, detail, etc.) Given those parameters and the visibility information, we can apply any lighting model as desired Phong Compute reflection / refraction Very flexible

Adaptive Level-of-Detail System Compute the current mip map level For furthest LOD levels, render using normal mapping (threshold level) As the surface approaches the viewer, increase the sampling rate as a function of the current mip map level In transition region between the threshold LOD level, blend between the normal mapping and the full parallax occlusion mapping

Results Implemented using DirectX 9.0c shaders (separate implementations in SM 2.0, 2.b and 3.0) RGBα texture: 1024 x 1024, non-contiguous uvs RGBα texture: tiled 128 x 128

Parallax Occlusion Mapping vs. Actual Geometry -1100 polygons with parallax occlusion Frame Rate: mapping (8 to 50 samples used) - 255 fps on ATI - Memory: 79K vertex buffer Radeon hardware 6K index buffer - 235 fps with skinning 13Mb texture (3Dc) (2048 x 2048 maps) Total: < 14 Mb - 1,500,000 polygons with normal Frame Rate: mapping - 32 fps on ATI Radeon - Memory: 31Mb vertex buffer hardware 14Mb index buffer Total: 45 Mb

Demo: ToyShop

Incorporate Dynamic Height Field Rendering with POM Easily supports dynamically rendered height fields Generate height field Compute normals for this height field Apply inverse displacement mapping w/ POM algorithm to that height field Shade using computed normals Examples of dynamic HF generation: Water waves / procedurally generated objects / noise Explosions in objects Bullet holes Approaches that rely on precomputation do not support dynamic height field rendering in real-time Displacement mapping with distance maps Encoding additional vertex data such as curvature

Combine Fluid Dynamics with POM Compute Navier-Stokes simulation for fluid dynamics for a height field Example: Fluid flow in mysterious galaxies from Screen Space ATI X1900 screen saver Fluid dynamics algorithm can be executed entirely on the GPU See ATI technical report on Explicit Early-Z Culling for Efficient Fluid Flow Simulation and Rendering by P. Sander, N. Tatarchuk and J.L. Mitchell for details

Example: Gas Planet Scene Random particles in texture space emit flow density and velocity Flow used to compute height field for parallax occlusion mapping Compute dynamic normals for the flow height field Parallax occlusion mapping used to simulate cloud layer on large planet Height Map Normal Map

Able to Handle Difficult Cases

Conclusions Powerful technique for rendering complex surface details in real time Higher precision height field ray intersection computation Self-shadowing for self-occlusion in real-time LOD rendering technique for textured scenes Produces excellent lighting results Has modest texture memory footprint Comparable to normal mapping Efficiently uses existing pixel pipelines for highly interactive rendering Supports dynamic rendering of height fields and animated objects

Lead Artist Dan Roeger The ToyShop Team Artists Lead Programmer Natalya Tatarchuk David Gosselin Daniel Szecket, Eli Turner, and Abe Wiley Engine / Shader Programming John Isidoro, Dan Ginsburg, Thorsten Scheuermann and Chris Oat Producer Lisa Close Manager Callan McInally

Reference Material www.ati.com/developer Demos, GDC presentations, papers and technical reports, and related materials N. Tatarchuk. 2006. Dynamic Parallax Occlusion Mapping with Approximate Soft Shadows, ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games P. Sander, N. Tatarchuk, J. L. Mitchell. 2004. Explicit Early-Z Culling for Efficient Flow Simulation and Rendering, ATI Research Technical Report, August 2004. ATI ToyShop demo: http://www.ati.com/developer/demos/rx1800.html ATI ScreenSpace screen saver: http://www.ati.com/designpartners/media/screensavers/radeonx1k.html