[Jeremy Shopf]

Download Report

Transcript [Jeremy Shopf]

Real-Time Relief Mapping on
Arbitrary Polygonal Surfaces
Fabio Policarpo
Manuel M. Oliveira
Joao L. D. Comba
Overview






Introduction
Related Work
Review of Relief Texture Mapping
Methods
Results
Discussion
Introduction
Goals



Represent surface
detail using textures
Apply to polygonal
surfaces, allowing for
deformation
Allow self-occlusions,
interpenetrations,
shadows and perpixel lighting effects
Introduction > Related Work > Relief Texture Mapping > Methods > Results
Related Work

Bump mapping


Self-occlusions, shadows and silhouettes are not
accounted for
Horizon mapping


Provides shadowing for bumped surfaces
Implemented on graphics hardware for improved
performance
Introduction > Related Work > Relief Texture Mapping > Methods > Results
Related Work

Displacement mapping


Requires large amount of micro-polygons
Extensions added to avoid explicit rendering of
micro-polygons



Ray tracing methods - too slow
3D inverse image warping – too slow
3D texture mapping – produces artifacts for some
viewing angles
Introduction > Related Work > Relief Texture Mapping > Methods > Results
Related Work

View-dependent displacement
maps




Pre-computes distances to a reference
surface
Sampled along several view directions
Does not handle close up viewing well
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
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
Overcome through a two-pass method:



Convert height field to conventional 2D
texture using forward projection
Render texture as normal
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
Cannot be extended to arbitrary surfaces
Introduction > Related Work > Relief Texture Mapping > Methods > Results
Relief Mapping Polygonal Surfaces



Uses modern graphics hardware
Because of fragment shaders, lighting is
computed real-time
Shaded color map is replaced by normal map
Introduction > Related Work > Relief Texture Mapping > Methods > Results
Mapping relief data



Compute viewing direction, VD
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
Introduction > Related Work > Relief Texture Mapping > Methods > Results
Mapping relief data


Compute the intersection
between VD’ and the heightfield 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.
Introduction > Related Work > Relief Texture Mapping > Methods > Results
Binary Search


Start with A-B line
At each step (8 steps):





Compute middle of the interval
Assign averaged endpoint texture
coordinates and depth
Use averaged tex coords to access
depth map
If stored depth value is less than
computed depth value, the point is
inside the surface
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
δ is a function of the angle between VD’ and interpolated
fragment normal
No more than 32 steps are taken in their implementation
Proceed with binary search (with less iterations)
Introduction > Related Work > Relief Texture Mapping > Methods > Results
Shadowing



Visibility problem
Determine if light ray intersects surface
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
Second “back” layer is not used for
rendering, but as a constraint for rayheight-field intersection
Introduction > Related Work > Relief Texture Mapping > Methods > Results
Dual Depth Relief Textures
Results
Introduction > Related Work > Relief Texture Mapping > Methods > Results
Dual Depth Relief Textures
Storage




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
Compute z @ run-time
Rendering is the same as described, except
a point is in the represented object if
front_depth <= point depth <= back_depth
Introduction > Related Work > Relief Texture Mapping > Methods > Results
Results




Most objects rendered with 512x512 relief
texture
800x600 resolution at 85 fps
Written in Cg
3GHz PC w/ 512 MB memory on NVIDIA
GeForce 6800GT w/ 256 MB memory
Introduction > Related Work > Relief Texture Mapping > Methods > Results
Results
Introduction > Related Work > Relief Texture Mapping > Methods > Results
Results
Introduction > Related Work > Relief Texture Mapping > Methods > Results
Results
Introduction > Related Work > Relief Texture Mapping > Methods > Results
Results
Introduction > Related Work > Relief Texture Mapping > Methods > Results
Results
Introduction > Related Work > Relief Texture Mapping > Methods > Results
Results
Introduction > Related Work > Relief Texture Mapping > Methods > Results
Doom 3 Video
video demonstration
Conclusion




Provided method for mapping relief textures to
arbitrary surfaces in texture space, allowing
deformation
Provides correct shadowing, self-occlusion, and
interpenetration with correct lighting
Presented an efficient ray-heightfield intersection
algorithm
Extended relief maps with dual-depth textures