High-Performance Rendering of Realistic Cumulus Clouds Using Pre-Computed Lighting. Egor Yusov

Similar documents
Making natural looking Volumetric Clouds In Blender 2.48a

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

A Short Introduction to Computer Graphics

INTRODUCTION TO RENDERING TECHNIQUES

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

Dynamic Resolution Rendering

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

Image Synthesis. Transparency. computer graphics & visualization

BCC Multi Stripe Wipe

ACE: After Effects CC

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

The Future Of Animation Is Games

Real-time Visual Tracker by Stream Processing

Optimizing AAA Games for Mobile Platforms

Introduction to Computer Graphics

Image Synthesis. Fur Rendering. computer graphics & visualization

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

Shader Model 3.0. Ashu Rege. NVIDIA Developer Technology Group

Welcome to the slides. When you see a bullet point, press the arrow key to move forward in the presentation. Some slides have videos and some have

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

Basic 3D reconstruction in Imaris 7.6.1

Modern Graphics Engine Design. Sim Dietrich NVIDIA Corporation

Sparse Fluid Simulation in DirectX. Alex Dunn Dev. Tech. NVIDIA

NATSRL Seed Project Summer Final Report. January 2007

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

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

Data Visualization Study at Earth Simulator Center

Real-Time Cloud Rendering for Games

Computer-Generated Photorealistic Hair

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

Volume Rendering on Mobile Devices. Mika Pesonen

Lezione 4: Grafica 3D*(II)

GPU Architecture. Michael Doggett ATI

The STC for Event Analysis: Scalability Issues

DATA VISUALIZATION OF THE GRAPHICS PIPELINE: TRACKING STATE WITH THE STATEVIEWER

Deferred Shading & Screen Space Effects

Rendering Microgeometry with Volumetric Precomputed Radiance Transfer

GPU Christmas Tree Rendering. Evan Hart

How To Draw In Autocad

GPU Point List Generation through Histogram Pyramids

Working with the BCC Clouds Generator

1. INTRODUCTION Graphics 2

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

Real-Time Realistic Rendering. Michael Doggett Docent Department of Computer Science Lund university

Questions and Answers

ACE: After Effects CS6

My Materials. In this tutorial, we ll examine the material settings for some simple common materials used in modeling.

IN previous chapters we assumed that all lighting interactions occurred at surfaces. In particular,

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

Real-Time Cloud Rendering

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

Technical What s New. Autodesk Alias Product Line

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

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

Remote Sensing of Clouds from Polarization

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

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

Direct Volume Rendering Elvins

System requirements for Autodesk Building Design Suite 2017

New Features in TerraPhoto. Arttu Soininen Software developer Terrasolid Ltd

CAUSTICS are complex patterns of shimmering

Files Used in this Tutorial

Silverlight for Windows Embedded Graphics and Rendering Pipeline 1

IT 386: 3D Modeling and Animation. Review Sheet. Notes from Professor Nersesian s IT 386: 3D Modeling and Animation course

MeshLab and Arc3D: Photo-Reconstruction and Processing of 3D meshes

Getting Started with iray in 3ds Max 2014

Character Animation from 2D Pictures and 3D Motion Data ALEXANDER HORNUNG, ELLEN DEKKERS, and LEIF KOBBELT RWTH-Aachen University

Volumetric Path Tracing

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

Using Photorealistic RenderMan for High-Quality Direct Volume Rendering

Examples. Pac-Man, Frogger, Tempest, Joust,

GPGPU Computing. Yong Cao

3D Interactive Information Visualization: Guidelines from experience and analysis of applications

Illuminating With HDRI

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

Introduction to GPGPU. Tiziano Diamanti

BUILDING TELEPRESENCE SYSTEMS: Translating Science Fiction Ideas into Reality

COMP175: Computer Graphics. Lecture 1 Introduction and Display Technologies

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

GPU Shading and Rendering: Introduction & Graphics Hardware

MyGraphicsLab ADOBE ILLUSTRATOR CC COURSE FOR GRAPHIC DESIGN & ILLUSTRATION Curriculum Mapping to ACA Objectives

VIRTUAL TRIAL ROOM USING AUGMENTED REALITY

3D Computer Games History and Technology

Advanced Visual Effects with Direct3D

Data Centric Interactive Visualization of Very Large Data

An Introduction to Twomey Effect

Autodesk Revit 2016 Product Line System Requirements and Recommendations

2: Introducing image synthesis. Some orientation how did we get here? Graphics system architecture Overview of OpenGL / GLU / GLUT

Image Based Rendering With Stable Frame Rates

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

NVIDIA GeForce GTX 580 GPU Datasheet

Contents Rendering Reference

Revision problem. Chapter 18 problem 37 page 612. Suppose you point a pinhole camera at a 15m tall tree that is 75m away.

Virtual try-on applications have become popular in recent

Adobe Certified Expert Program

2 Absorbing Solar Energy

Path Tracing Overview

3D Animation Graphic Designer

animation animation shape specification as a function of time

NVPRO-PIPELINE A RESEARCH RENDERING PIPELINE MARKUS TAVENRATH MATAVENRATH@NVIDIA.COM SENIOR DEVELOPER TECHNOLOGY ENGINEER, NVIDIA

Transcription:

High-Performance Rendering of Realistic Cumulus Clouds Using Pre-Computed Lighting Egor Yusov

Introduction Clouds are integral part of outdoor scenes Rendering good-looking and fast clouds is challenging 2

Existing methods Billboards [Dobashi et al. 2000, Harris & Lastra 2001, Harris 2003, Wang 2004] Volume rendering (Slicing) [Schpok et al. 2003, Kniss et al. 2004, Miyazaki et al. 2004, Riley et al. 2004] Precomputed solutions [Sloan et al. 2002, Bouthors et al. 2006, Bouthors et al. 2008, Ament et al. 2013] 3

Our method Attempts to combine flexibility of the particle-based approaches with the quality of pre-computed techniques Key ideas: Use volumetric particles representing the actual 3D-shapes Use physically-based lighting Pre-compute lighting and other quantities to avoid expensive ray-marching or slicing at run time Perform volume-aware blending instead of alpha blending 4

Algorithm overview Initial step modeling clouds with spherical particles 5

Algorithm overview Add pre-computed cloud density and transparency 6

Algorithm overview Add pre-computed light scattering 7

Algorithm overview Add light occlusion 8

Algorithm overview Add volume-aware blending (enabled by Pixel Sync) 9

Algorithm overview Add light scattering 10

Scattering physics 11

Scattering physics Optical depth integral Light gets attenuated while it travels through the cloud No absorption => only out-scattering attenuates the light L L In Optical depth is the amount of scattering matter on the way of light: T(A B) = A B β P ds Transmittance is the fraction of light survived outscattering: L = e T(A B) L In B A 12

Scattering physics Single-scattering integral: L In = p θ C L P is the light intensity at point P O e T P C β P L P ds β P is the scattering coefficient at point P C e T P C P θ O T P C is the optical thickness of the media between points P and C p θ is the phase function 13

Scattering physics Light is also attenuated in the cloud before it reaches the scattering point: L P = L e T A P L is the light intensity outside the cloud C A T A P e P θ O Let s now look at our integral: P C β P ds A P β P ds e T P C L In = p θ C O e T P C β P L e T A P ds 14

Scattering physics Multiple scattering L = p θ e T P C β P LJ P ds C O C P J P J P = Ω L (ω)p θ dω Ω is the whole set of directions 15

Pre-computed lighting The main idea is to Precompute physically-based lighting for simple shapes Construct clouds from these simple shapes The term Particle will now refer to these basic shapes (not individual tiny droplets) 16

Pre-computing optical depth Typical way to evaluate optical depth is ray marching Impractical to do in real-time For a known density distribution, the integral can be evaluated once and stored in a look-up table for all possible viewpoints and directions No ray marching at run-time Fast evaluation for the price of memory T(A B) = A B β P ds 17

Pre-computing optical depth Parameterization We need to describe all start points on the sphere and all directions Two angles describe start point on the sphere Two angles describe view direction 4D look-up table is required T(A B) = Ray Direction A B β P ds Start Point 18

Pre-computing optical depth Integration Integration is performed by stepping along the ray and numerically computing optical thickness Cloud density at each step is determined through 3D noise 4D look-up table is implemented as 3D texture For look-up, manual filtering across 4 th coordinate is necessary T(A B) = A B β P ds Start Point 19

Pre-computing optical depth 3D Noise generation Radial falloff+3d noise Thresholding Pyroclastic style 20

Pre-computing optical depth 21

Pre-computing scattering Let s consider spherically symmetrical particle Any start point on the sphere can be described by a single angle L = C O e T P C β P L p θ dω ds Ω View direction is described by two angles Thus 3 parameters are necessary to describe any start point and view direction -> 3D look-up table 22

Pre-computing scattering Intermediate 4D table is used to store radiance for every point in the sphere For each scattering order: 1. Compute J P for every point and direction inside the sphere by integrating previous order scattering J P P J n = Ω L n 1 (ω)p θ dω 2. Compute current order inscattering by numerical integration of J n : O L n = e T P C β P J n P ds C 3. Add current scattering order to the total look-up table 23

Pre-computing scattering Pre-computed scattering for different light orientations 24

Pre-computing scattering Combining pre-computed lighting and pre-computed cloud density 25

Pre-computing scattering 26

Computing light occlusion 27

Computing light occlusion Tiling The scene is rasterized from the light over the tile grid One tile is one pixel Each particle is assigned to the tile Screen-size buffer is used to store index of the first particle in the list Append buffer is used to store the lists elements Pixel Shader Ordering is used to preserve original particle order (sorted from the light) 28

Computing light occlusion Traversing lists Processing is done by the compute shader Each particle finds a tile it belongs to The shader then goes through the list of the tile and computes opacity of particles on the light path The loop is terminated as soon as current particle is reached Or if total transparency reaches threshold (0.01) 29

Computing light occlusion 30

Volume-aware blending Blending volumetric particles If particles do not overlap, blending is trivial How can we correctly blend overlapping particles? 31

Volume-aware blending Blending volumetric particles Suppose we have two overlapping particles with color and density C 0, ρ 0 and C 1, ρ 1 Back: Front: T Back = e ρ 1 d b β C Back = C 1 1 T Back T Front = e ρ 0 d f β C Front = C 0 1 T Front C 0, ρ 0 C 1, ρ 1 d f di d b Intersection: T Isec = e (ρ 0+ρ 1 ) d i β C Isec = C 0ρ 0 +C 1 ρ 1 1 T ρ 0 +ρ Isec 1 Front Isec Back 32

Volume-aware blending Blending volumetric particles Final color and transparency: C 0, ρ 0 C 1, ρ 1 T Final = T Front T Isec T Back C Final = C Front +C Isec T Front +C Back T Front T Isec 1 T Final Division by 1 T Final because we do not want alpha pre-multiplied color 33

Volume-aware blending Blending volumetric particles - Implementation UAV Back buffer 34

Volume-aware blending DirectX does not impose any ordering on the execution of pixel shader Ordering happens later at the output merger stage If two threads read and modify the same memory, result is unpredictable Thread 1 Work Read Modify Write Time Thread 2 Work Read Modify Write Memory 35

Volume-aware blending Pixel Shader Ordering assures that Read-modify-write operations are protected, i.e. no thread can read the memory before other thread finishes writing to it All memory access operations happen in the same order in which primitives were submitted for rendering Thread 1 Work Read Modify Write Time Thread 2 Work Read Modify Write Memory 36

Volume-aware blending No Pixel Sync Conventional Alpha Blending 37

Volume-aware blending Pixel Sync Volume-Aware Blending 38

Particle generation Cell grid Organized as a number of concentric rings centered around the camera Particles in each next ring have twice the size of the inner ring Each cell contains several layers of particles Density and size of particles in each cell are determined by the noise texture 39

Particle generation Animation: Clouds are animated by changing particle size and transparency 40

Results Demo available at https://software.intel.com/en-us/blogs/2014/03/31/cloud-rendering-sample 41

40 35 30 25 20 15 10 5 Performance Intel Iris Pro 5200 (47 W), 1280x720 Time, ms 136 2 x 4 x 4 104 2 x 4 x 2 184 2 x 4 x 4 0 low quality medium qual high quality Particle rendering Atm. Scattering Other Total 42

18 16 14 12 10 8 6 4 2 Performance Nvidia GeForce GTX 680 (195 W), 1920x1080 Time, ms 136 2 x 4 x 4 104 2 x 4 x 2 184 2 x 4 x 4 0 low quality medium qual high quality Particle rendering Atm. Scattering Other Total 43

Questions? Thank You 44