Real-time Volumetric Lighting in Participating Media

Slides:



Advertisements
Similar presentations
Exploration of advanced lighting and shading techniques
Advertisements

Ray tracing. New Concepts The recursive ray tracing algorithm Generating eye rays Non Real-time rendering.
Exploration of bump, parallax, relief and displacement mapping
Computer graphics & visualization Global Illumination Effects.
Chunhui Yao 1 Bin Wang 1 Bin Chan 2 Junhai Yong 1 Jean-Claude Paul 3,1 1 Tsinghua University, China 2 The University of Hong Kong, China 3 INRIA, France.
Week 10 - Monday.  What did we talk about last time?  Global illumination  Shadows  Projection shadows  Soft shadows.
CLASS 9 ADVANCE RENDERING RAY TRACING RADIOSITY LIGHT FIELD CS770/870.
Efficient Importance Sampling Techniques for the Photon Map Ingo Wald University of Saarbrücken Alexander Keller University of Kaiserslautern.
1. SIGGRAPH 2010 Single Scattering in Heterogeneous Participating media Cyril Delalandre Pascal Gautron Jean-Eudes MarvieGuillaume François Technicolor.
Scalability with many lights II (row-column sampling, visibity clustering) Miloš Hašan.
ATEC Procedural Animation Introduction to Procedural Methods in 3D Computer Animation Dr. Midori Kitagawa.
Real-Time Rendering Paper Presentation Imperfect Shadow Maps for Efficient Computation of Indirect Illumination T. Ritschel T. Grosch M. H. Kim H.-P. Seidel.
(conventional Cartesian reference system)
Skin Rendering GPU Graphics Gary J. Katz University of Pennsylvania CIS 665 Adapted from David Gosselin’s Power Point and article, Real-time skin rendering,
Final Gathering on GPU Toshiya Hachisuka University of Tokyo Introduction Producing global illumination image without any noise.
IN4151 Introduction 3D graphics 1 Introduction to 3D computer graphics part 2 Viewing pipeline Multi-processor implementation GPU architecture GPU algorithms.
Original image: 512 pixels by 512 pixels. Probe is the size of 1 pixel. Picture is sampled at every pixel ( samples taken)
Paper by Alexander Keller
Outline Reprojection and data reuse Reprojection and data reuse – Taxonomy Bidirectional reprojection Bidirectional reprojection.
Research & Innovation 1 An Industry Perspective on VVG Research Oliver Grau BBC Research & Innovation VVG SUMMER SCHOOL '07.
Ansh Bahri Sandeep Thippeswamy Sohil Himanish Anuja Chandorkar
Voxelized Shadow Volumes Chris Wyman Department of Computer Science University of Iowa High Performance Graphics 2011.
Ray Tracing and Photon Mapping on GPUs Tim PurcellStanford / NVIDIA.
Sebastian Enrique Columbia University Real-Time Rendering Using CUReT BRDF Materials with Zernike Polynomials CS Topics.
-Global Illumination Techniques
REAL-TIME VOLUME GRAPHICS Christof Rezk Salama Computer Graphics and Multimedia Group, University of Siegen, Germany Eurographics 2006 Real-Time Volume.
1 Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science.
Computer Graphics and Multimedia Systems, University of Siegen, Germany 1 GPU-Based Responsive Grass Jens Orthmann, Christof Rezk-Salama, Andreas Kolb.
Computer Graphics Global Illumination: Photon Mapping, Participating Media Lecture 12 Taku Komura.
Efficient Methods for Ambient Lighting Tamás Umenhoffer Balázs Tóth László Szirmay-Kalos.
Efficient Streaming of 3D Scenes with Complex Geometry and Complex Lighting Romain Pacanowski and M. Raynaud X. Granier P. Reuter C. Schlick P. Poulin.
Differential Instant Radiosity for Mixed Reality Martin Knecht, Christoph Traxler, Oliver Mattausch, Werner Purgathofer, Michael Wimmer Institute of Computer.
Photo-realistic Rendering and Global Illumination in Computer Graphics Spring 2012 Hybrid Algorithms K. H. Ko School of Mechatronics Gwangju Institute.
Real-Time Relief Mapping on Arbitrary Polygonal Surfaces Fabio Policarpo Manuel M. Oliveira Joao L. D. Comba.
Yizhou Yu Texture-Mapping Real Scenes from Photographs Yizhou Yu Computer Science Division University of California at Berkeley Yizhou Yu Computer Science.
Real-Time Dynamic Shadow Algorithms Evan Closson CSE 528.
Shadows David Luebke University of Virginia. Shadows An important visual cue, traditionally hard to do in real-time rendering Outline: –Notation –Planar.
Caustics Triangles on the GPU Umenhoffer Tamás Gustavo Patow Szirmay-Kalos László.
A Plane-Based Approach to Mondrian Stereo Matching
Real-Time ray casting for virtual reality
Rendering Pipeline Fall, 2015.
Real-Time Soft Shadows with Adaptive Light Source Sampling
Color Image Processing
Color Image Processing
Robust Diffuse Final Gathering on the GPU
Reflective Shadow Mapping By: Mitchell Allen.
Photorealistic Rendering vs. Interactive 3D Graphics
Hybrid Ray Tracing and Path Tracing of Bezier Surfaces using a mixed hierarchy Rohit Nigam, P. J. Narayanan CVIT, IIIT Hyderabad, Hyderabad, India.
Color Image Processing
Reconstruction For Rendering distribution Effect
3D Graphics Rendering PPT By Ricardo Veguilla.
RAY TRACING.
CS451Real-time Rendering Pipeline
View-Dependent Textured Splatting for Rendering Live Scenes
© University of Wisconsin, CS559 Fall 2004
GPU Graphics Gary J. Katz University of Pennsylvania CIS 665
Real-Time Volume Graphics [06] Local Volume Illumination
(c) 2002 University of Wisconsin
Path Tracing (some material from University of Wisconsin)
Introduction to Computer Graphics with WebGL
Color Image Processing
Chapter XVI Texturing toward Global Illumination
UMBC Graphics for Games
Efficient Importance Sampling Techniques for the Photon Map
CSCE 441: Computer Graphics Ray Tracing
Chapter XV Shadow Mapping
Radiosity Sung-Eui Yoon (윤성의) CS580: Course URL:
GEARS: A General and Efficient Algorithm for Rendering Shadows
Directional Occlusion with Neural Network
Real-time Global Illumination with precomputed probe
Presentation transcript:

Real-time Volumetric Lighting in Participating Media Balázs Tóth Tamás Umenhoffer Good afternoon everyone! I'm Balazs Toth from the Technical University of Budapest I'd like to present a realtime method to compute volumetric lighting in participating media

Motivation The main goal is to reproduce the light effects with scattering taken account. On this slide you can see some real world example of volumetric lighting.

Motivation Single scattering Good approximation for many materials Easily calculable Ray marching Shadow maps Interleaved sampling Feasible on GPU We are modelling single scattering only, becouse it's a good approximation for many materials, like dust, smoke, etc. Huge advantage of this simplification is that it can be computed realtime on the modern GPUs, even with some light occluders in the scene. Our method is based on the classic ray marching approach with some extensions. We are using shadow maps to detect the occlusion in the light beams, and interleaved sampling to reduce the computation cost.

Ray marching Radiance calculation in the visible surface point Iteration from the surface to the camera Illumination Absorption Summation of their product The main idea behind the ray marching technique is to determine the visible surface point in a given camera pixel then calculate the radiance at the surface point without the participating media. That will be the starting point and energy of the ray marching. To determine the decrease of the energy between the surface and the camera, we iterate along the ray and calculate the decrease of illumination and the absorption at given ray segment. The final illumination would be sum of their products.

Ray marching The aggregate radiance stored in every pixel Geometry in the light frustrum Visibility factor from the shadow map If there are some occluders present in the light beam, we take in account them through the ray marching. We can calculate the visibility factor in every step through the ray using regular shadow maps generated from the light source position. The final radiance is stored in every pixel of the scattering image.

Ray marching Shadow map from the light source Surface map from the camera The left picture is the shadow map generated from the pov of light source. That's used for the visibility factor calculations. The right picture is basicaly a depth map generated from the camera. That's used for the surface point calculations. The bottom picture is the final scatter image generated with ray marching. Scatter image

Ray marching Image without Scattering image scattering Final image Compositing Image without scattering Scattering image The left picture generated without taking scattering into account. That's the basic image and it can be calculated with arbitrary techniques. The right picture is the scattering image. We can get the final image with the composition of the two image. You can see the result on the third image at the bottom. Final image

Ray marching N sample per pixel The computation time is proportional to the number of samples With too few samples there will be artifacts at the volume boundaries Unfortunately there are some problem with the ray marching that should be sorted out if we want to use it for realtime rendering. The most important thing is the number of steps along the iteration. The computation time is proportional to the number of samples. So we should do as few steps as we can, not to slow down the rendering. But if we take too few samples there will be artifacts at the volume boundaries. We have to balance somehow between speed and quality.

Interleaved sampling The surface and the scattering are similar in the neighbouring pixels N samples in n*n pixels The N samples are approximated by the sum of the distributed samples A good compromise is to use interleaved sampling for the ray marching. The main idea behind that is the surface and the scattering are similar in the neighboring pixels. So we can distribute the samples equally between them. To put it the other way around, we can use the information calculated in the neighboring pixels to refine the calculation. In our algorithm we distribute the N sample points of the ray to n times n rays. Then the original N samples are approximated by the sum of the distributed samples.

Interleaved sampling Periodic pixel groups To avoid the periodic artifact caused by this approach, we should distribute the samples along the rays that way that no repetition allowed in any n times n rays. This can be easily achieved when the rays are grouped by four. You can see this distribution on the picture. Periodic pixel groups No repetition in any n*n samples

Interleaved sampling 8 samples 8 samples, interleaved 128 samples The bottom left picture is the reference image generated by using hundredtwentyeight samples along a ray. The upper left picture is generated by only eight samples per ray without interleaved sampling. And the upper right picture is generated by using the same number of rays but with interleaved sampling. The difference is quite visible. 128 samples

Summary NVidia 8800GTX GPU, DirectX9 The scene contains 66000 triangles Viewport size 800x600 110 fps without scattering 42 fps with scattering 100 fps with scattering and interleaved sampling We tested our algorithm on an Nvidia 8800GTX GPU with DirectX 9. The test scene contains 66000 triangles and the viewport size is 800x600. The reference renderer without scattering achieved 110 frame per second. If we turned on the scattering calculation with the naive approach the fps dropped to 42. With interleaved sampling we could achieve the 100fps again.

Results Here are some demonstration pictures of our highly occluded test scene.

Video And here is a video.

Thank you for your attention!