Real-Time Relief Mapping on Arbitrary Polygonal Surfaces Fabio Policarpo Manuel M. Oliveira Joao L. D. Comba.

Slides:



Advertisements
Similar presentations
Parallax-Interpolated Shadow Map Occlusion
Advertisements

Normal Map Compression with ATI 3Dc™ Jonathan Zarge ATI Research Inc.
Ray tracing. New Concepts The recursive ray tracing algorithm Generating eye rays Non Real-time rendering.
Exploration of bump, parallax, relief and displacement mapping
Bump Mapping CSE 781 Roger Crawfis.
Graphics Pipeline.
3D Graphics Rendering and Terrain Modeling
Real-Time Rendering TEXTURING Lecture 02 Marina Gavrilova.
Part I: Basics of Computer Graphics
Mesostructure Rendering Techniques
Rasterization and Ray Tracing in Real-Time Applications (Games) Andrew Graff.
Advanced Texture and Lighting
(conventional Cartesian reference system)
IN4151 Introduction 3D graphics 1 Introduction to 3D computer graphics part 2 Viewing pipeline Multi-processor implementation GPU architecture GPU algorithms.
The Story So Far The algorithms presented so far exploit: –Sparse sets of images (some data may not be available) –User help with correspondences (time.
Introduction to 3D Graphics John E. Laird. Basic Issues u Given a internal model of a 3D world, with textures and light sources how do you project it.
Computer Graphics Inf4/MSc Computer Graphics Lecture 11 Texture Mapping.
Computer Graphics: Programming, Problem Solving, and Visual Communication Steve Cunningham California State University Stanislaus and Grinnell College.
Computer Graphics Inf4/MSc Computer Graphics Lecture 7 Texture Mapping, Bump-mapping, Transparency.
Technology and Historical Overview. Introduction to 3d Computer Graphics  3D computer graphics is the science, study, and method of projecting a mathematical.
Programmable Pipelines. Objectives Introduce programmable pipelines ­Vertex shaders ­Fragment shaders Introduce shading languages ­Needed to describe.
Definitions Spectral Elements – data structures that contain information about data at points within each geometric entity. Finite elements only hold information.
CS 551/651 Advanced Computer Graphics Warping and Morphing Spring 2002.
1 SIC / CoC / Georgia Tech MAGIC Lab Rossignac Textures and shadows  Generation  Mipmap  Texture coordinates,
COLLEGE OF ENGINEERING UNIVERSITY OF PORTO COMPUTER GRAPHICS AND INTERFACES / GRAPHICS SYSTEMS JGB / AAS 1 Shading (Shading) & Smooth Shading Graphics.
Interactive Rendering of Meso-structure Surface Details using Semi-transparent 3D Textures Vision, Modeling, Visualization Erlangen, Germany November 16-18,
Computer Graphics An Introduction. What’s this course all about? 06/10/2015 Lecture 1 2 We will cover… Graphics programming and algorithms Graphics data.
Sebastian Enrique Columbia University Real-Time Rendering Using CUReT BRDF Materials with Zernike Polynomials CS Topics.
Geometry Textures Rodrigo de Toledo, ( PhD candidate at LORIA-INRIA) (Researcher at Tecgraf, PUC-Rio) Bin Wang and Bruno Levy.
Chris Kerkhoff Matthew Sullivan 10/16/2009.  Shaders are simple programs that describe the traits of either a vertex or a pixel.  Shaders replace a.
Texture Mapping Applications 2. Parallax Mapping with Slope  parallax mapping assumes that the surface is a single plane  a better approximation  surface.
Week 2 - Friday.  What did we talk about last time?  Graphics rendering pipeline  Geometry Stage.
VIS Group, University of Stuttgart Tutorial T4: Programmable Graphics Hardware for Interactive Visualization Adaptive Terrain Slicing (Stefan Roettger)
CS447/ Realistic Rendering -- Radiosity Methods-- Introduction to 2D and 3D Computer Graphics.
1 Rendering Geometry with Relief Textures L.Baboud X.Décoret ARTIS-GRAVIR/IMAG-INRIA.
Computer Graphics and Multimedia Systems, University of Siegen, Germany 1 GPU-Based Responsive Grass Jens Orthmann, Christof Rezk-Salama, Andreas Kolb.
Image-based Rendering. © 2002 James K. Hahn2 Image-based Rendering Usually based on 2-D imagesUsually based on 2-D images Pre-calculationPre-calculation.
03/24/03© 2003 University of Wisconsin Last Time Image Based Rendering from Sparse Data.
Interactive Visualization of Exceptionally Complex Industrial CAD Datasets Andreas Dietrich Ingo Wald Philipp Slusallek Computer Graphics Group Saarland.
Advanced Computer Graphics Advanced Shaders CO2409 Computer Graphics Week 16.
Computer Graphics 2 Lecture 7: Texture Mapping Benjamin Mora 1 University of Wales Swansea Pr. Min Chen Dr. Benjamin Mora.
1 Perception and VR MONT 104S, Fall 2008 Lecture 21 More Graphics for VR.
CS559: Computer Graphics Lecture 8: Warping, Morphing, 3D Transformation Li Zhang Spring 2010 Most slides borrowed from Yungyu ChuangYungyu Chuang.
Review on Graphics Basics. Outline Polygon rendering pipeline Affine transformations Projective transformations Lighting and shading From vertices to.
Lecture 6 Rasterisation, Antialiasing, Texture Mapping,
CS 325 Introduction to Computer Graphics 04 / 12 / 2010 Instructor: Michael Eckmann.
Graphics Interface 2009 The-Kiet Lu Kok-Lim Low Jianmin Zheng 1.
Discontinuous Displacement Mapping for Volume Graphics, Volume Graphics 2006, July 30, Boston, MA Discontinuous Displacement Mapping for Volume Graphics.
CSCE 641 Computer Graphics: Image-based Rendering (cont.) Jinxiang Chai.
COMPUTER GRAPHICS CS 482 – FALL 2015 SEPTEMBER 29, 2015 RENDERING RASTERIZATION RAY CASTING PROGRAMMABLE SHADERS.
Real-Time Dynamic Shadow Algorithms Evan Closson CSE 528.
Caustics Triangles on the GPU Umenhoffer Tamás Gustavo Patow Szirmay-Kalos László.
Of Bump Mapping Presented in Real Time by: Kenny Moser Course: ECE8990 Real Time Rendering Presented in Real Time by: Kenny Moser Course: ECE8990 Real.
09/23/03CS679 - Fall Copyright Univ. of Wisconsin Last Time Reflections Shadows Part 1 Stage 1 is in.
Real-Time Relief Mapping on Arbitrary Polygonal Surfaces Fabio Policarpo Manuel M. Oliveira Joao L. D. Comba.
1 Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science.
Presented by 翁丞世  View Interpolation  Layered Depth Images  Light Fields and Lumigraphs  Environment Mattes  Video-Based.
1 Geometry for Game. Geometry Geometry –Position / vertex normals / vertex colors / texture coordinates Topology Topology –Primitive »Lines / triangles.
1 Real-Time High-Quality View-dependent Texture Mapping using Per-Pixel Visibility Damien Porquet Jean-Michel Dischler Djamchid Ghazanfarpour MSI Laboratory,
Ying Zhu Georgia State University
Week 2 - Friday CS361.
3D Graphics Rendering PPT By Ricardo Veguilla.
Ravish Mehra Subodh Kumar IIT Delhi IIT Delhi
Bump Mapping -1 Three scales of detail on an object
The Graphics Rendering Pipeline
(c) 2002 University of Wisconsin
Chapter IX Bump Mapping
Introduction to Computer Graphics with WebGL
Adding Surface Detail 고려대학교 컴퓨터 그래픽스 연구실.
Adding Surface Detail 고려대학교 컴퓨터 그래픽스 연구실.
Presentation transcript:

Real-Time Relief Mapping on Arbitrary Polygonal Surfaces Fabio Policarpo Manuel M. Oliveira Joao L. D. Comba

Overview Introduction Introduction Related Work Related Work Review of Relief Texture Mapping Review of Relief Texture Mapping Methods Methods Results Results Discussion Discussion

Introduction Represent surface detail using textures Represent surface detail using textures Apply to polygonal surfaces, allowing for deformation Apply to polygonal surfaces, allowing for deformation Allow self-occlusions, interpenetrations, shadows and per- pixel lighting effects Allow self-occlusions, interpenetrations, shadows and per- pixel lighting effects Introduction > Related Work > Relief Texture Mapping > Methods > Results Goals

Related Work Bump mapping Bump mapping Self-occlusions, shadows and silhouettes are not accounted for Self-occlusions, shadows and silhouettes are not accounted for Horizon mapping Horizon mapping Provides shadowing for bumped surfaces Provides shadowing for bumped surfaces Implemented on graphics hardware for improved performance Implemented on graphics hardware for improved performance Introduction > Related Work > Relief Texture Mapping > Methods > Results

Related Work Displacement mapping Displacement mapping Requires large amount of micro-polygons Requires large amount of micro-polygons Extensions added to avoid explicit rendering of micro-polygons Extensions added to avoid explicit rendering of micro-polygons Ray tracing methods - too slow Ray tracing methods - too slow 3D inverse image warping – too slow 3D inverse image warping – too slow 3D texture mapping – produces artifacts for some 3D texture mapping – produces artifacts for some viewing angles viewing angles Introduction > Related Work > Relief Texture Mapping > Methods > Results

Related Work View-dependent displacement maps View-dependent displacement maps Pre-computes distances to a reference surface Pre-computes distances to a reference surface Sampled along several view directions Sampled along several view directions Does not handle close up viewing well Does not handle close up viewing well Parallax Mapping Parallax Mapping Uses per-texel depth Texture coordinates along view direction are shifted based on depth Only good for irregular/noisy bumps No support for shadows Introduction > Related Work > Relief Texture Mapping > Methods > Results

Relief Texture Mapping Uses image warping techniques and per-texel depth to create the illusion of geometric detail Uses image warping techniques and per-texel depth to create the illusion of geometric detail Introduction > Related Work > Relief Texture Mapping > Methods > Results

Relief Texture Mapping Rendering of a height field requires a search for the closest polygon along the viewing ray Rendering of a height field requires a search for the closest polygon along the viewing ray Overcome through a two-pass method: Overcome through a two-pass method: Convert height field to conventional 2D texture using forward projection Convert height field to conventional 2D texture using forward projection Render texture as normal Render texture as normal Texels move horizontal and vertical in texture space based on their orthogonal displacements and the viewing direction Texels move horizontal and vertical in texture space based on their orthogonal displacements and the viewing direction Introduction > Related Work > Relief Texture Mapping > Methods > Results

Representing 3D objects Represent 3D geometry by relief texture mapping parallelpipeds Represent 3D geometry by relief texture mapping parallelpipeds Cannot be extended to arbitrary surfaces Cannot be extended to arbitrary surfaces Introduction > Related Work > Relief Texture Mapping > Methods > Results

Relief Mapping Polygonal Surfaces Uses modern graphics hardware Uses modern graphics hardware Because of fragment shaders, lighting is computed real-time Because of fragment shaders, lighting is computed real-time Shaded color map is replaced by normal map Shaded color map is replaced by normal map Introduction > Related Work > Relief Texture Mapping > Methods > Results

Mapping relief data Compute viewing direction, VD Compute viewing direction, VD Transform VD to tangent space of fragment Transform VD to tangent space of fragment Use VD’ and texture coords (s,t) to compute the texture coords where VD’ hits depth of 1 Use VD’ and texture coords (s,t) to compute the texture coords where VD’ hits depth of 1 Introduction > Related Work > Relief Texture Mapping > Methods > Results

Mapping relief data Compute the intersection between VD’ and the height- field surface using a binary search starting with A and B Compute the intersection between VD’ and the height- field surface using a binary search starting with A and B Perform the shading of the fragment using the attributes associated with the texture coordinates of the computed intersection point. Perform the shading of the fragment using the attributes associated with the texture coordinates of the computed intersection point. Introduction > Related Work > Relief Texture Mapping > Methods > Results

Binary Search Start with A-B line Start with A-B line At each step (8 steps): At each step (8 steps): Compute middle of the interval Compute middle of the interval Assign averaged endpoint texture coordinates and depth Assign averaged endpoint texture coordinates and depth Use averaged tex coords to access depth map Use averaged tex coords to access depth map If stored depth value is less than computed depth value, the point is inside the surface If stored depth value is less than computed depth value, the point is inside the surface Proceed with one endpoint in and one out Proceed with one endpoint in and one out Introduction > Related Work > Relief Texture Mapping > Methods > Results

Linear Search To find first point under surface, start at A, advance ray by δAB To find first point under surface, start at A, advance ray by δAB δ is a function of the angle between VD’ and interpolated fragment normal δ is a function of the angle between VD’ and interpolated fragment normal No more than 32 steps are taken in their implementation No more than 32 steps are taken in their implementation Proceed with binary search (with less iterations) Proceed with binary search (with less iterations) Introduction > Related Work > Relief Texture Mapping > Methods > Results

Shadowing Visibility problem Visibility problem Determine if light ray intersects surface Determine if light ray intersects surface Do not need to know the exact point Do not need to know the exact point Introduction > Related Work > Relief Texture Mapping > Methods > Results

Dual Depth Relief Textures Represent opaque, closed surfaces with only one texture Represent opaque, closed surfaces with only one texture Second “back” layer is not used for rendering, but as a constraint for ray- height-field intersection Second “back” layer is not used for rendering, but as a constraint for ray- height-field intersection Introduction > Related Work > Relief Texture Mapping > Methods > Results

Dual Depth Relief Textures Introduction > Related Work > Relief Texture Mapping > Methods > Results Results

Dual Depth Relief Textures Introduction > Related Work > Relief Texture Mapping > Methods > Results Storage Two depthmaps and a normal map can be stored in one texture Two depthmaps and a normal map can be stored in one texture Since normals are unit length, you can store just x and y and use the other two components for depth values Since normals are unit length, you can store just x and y and use the other two components for depth values Compute run-time Compute run-time Rendering is the same as described, except a point is in the represented object if front_depth <= point depth <= back_depth Rendering is the same as described, except a point is in the represented object if front_depth <= point depth <= back_depth

Results Introduction > Related Work > Relief Texture Mapping > Methods > Results Most objects rendered with 512x512 relief texture Most objects rendered with 512x512 relief texture 800x600 resolution at 85 fps 800x600 resolution at 85 fps Written in Cg Written in Cg 3GHz PC w/ 512 MB memory on NVIDIA GeForce 6800GT w/ 256 MB memory 3GHz PC w/ 512 MB memory on NVIDIA GeForce 6800GT w/ 256 MB memory

Results Introduction > Related Work > Relief Texture Mapping > Methods > Results

Results

Results

Results

Results

Results

Doom 3 Video video demonstration video demonstration

Conclusion Provided method for mapping relief textures to arbitrary surfaces in texture space, allowing deformation Provided method for mapping relief textures to arbitrary surfaces in texture space, allowing deformation Provides correct shadowing, self-occlusion, and interpenetration with correct lighting Provides correct shadowing, self-occlusion, and interpenetration with correct lighting Presented an efficient ray-heightfield intersection algorithm Presented an efficient ray-heightfield intersection algorithm Extended relief maps with dual-depth textures Extended relief maps with dual-depth textures