real-time relief mapping on arbitrary polygonal surfaces
DESCRIPTION
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 - PowerPoint PPT PresentationTRANSCRIPT
Real-Time Relief Mapping on Arbitrary Polygonal
Surfaces
Fabio Policarpo Manuel M. Oliveira
Joao L. D. Comba
OverviewOverview
IntroductionIntroduction Related WorkRelated Work Review of Relief Texture MappingReview of Relief Texture Mapping MethodsMethods ResultsResults DiscussionDiscussion
IntroductionIntroduction
Represent surface Represent surface detail using detail using texturestextures
Apply to polygonal Apply to polygonal surfaces, allowing surfaces, allowing for deformationfor deformation
Allow self-Allow self-occlusions and per-occlusions and per-pixel lighting effectspixel lighting effects
Introduction > Related Work > Relief Texture Mapping > Methods > Results
Goals
Related WorkRelated Work
Bump mappingBump mapping Self-occlusions, shadows and silhouettes are Self-occlusions, shadows and silhouettes are
not accounted fornot accounted for Displacement mappingDisplacement mapping
Requires large amount of micro-polygonsRequires large amount of micro-polygons
Introduction > Related Work > Relief Texture Mapping > Methods > Results
Related WorkRelated Work
View-dependent displacement View-dependent displacement mapsmaps Pre-computes distances to a Pre-computes distances to a
reference surfacereference surface Sampled along several view Sampled along several view
directionsdirections Does not handle close up viewing Does not handle close up viewing
wellwell Parallax MappingParallax 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 MappingRelief Texture Mapping
Uses image warping techniques and Uses image warping techniques and per-texel depth to create the illusion of per-texel depth to create the illusion of geometric detailgeometric detail
Introduction > Related Work > Relief Texture Mapping > Methods > Results
Relief Texture MappingRelief Texture Mapping
Rendering of a height field Rendering of a height field requires a search for the closest requires a search for the closest polygon along the viewing raypolygon along the viewing ray
Overcome through a two-pass Overcome through a two-pass method:method: Convert height field to conventional Convert height field to conventional
2D texture using forward projection2D texture using forward projection Render texture as normalRender texture as normal
Introduction > Related Work > Relief Texture Mapping > Methods > Results
Representing 3D objectsRepresenting 3D objects Represent 3D geometry by relief texture Represent 3D geometry by relief texture
mapping parallelepipedmapping parallelepiped Cannot be extended to arbitrary surfacesCannot be extended to arbitrary surfaces
Introduction > Related Work > Relief Texture Mapping > Methods > Results
Relief Mapping Polygonal Relief Mapping Polygonal SurfacesSurfaces
Uses modern graphics hardwareUses modern graphics hardware Because of fragment shaders, lighting is Because of fragment shaders, lighting is
computed real-timecomputed real-time
Introduction > Related Work > Relief Texture Mapping > Methods > Results
Mapping relief dataMapping relief data
Compute viewing direction, VDCompute viewing direction, VD Transform VD to tangent space of Transform VD to tangent space of
fragmentfragment Use VD’ and texture coords (s,t) to Use VD’ and texture coords (s,t) to
compute the texture coords where VD’ compute the texture coords where VD’ hits depth of 1hits depth of 1
Introduction > Related Work > Relief Texture Mapping > Methods > Results
Mapping relief dataMapping relief data
Compute the intersection Compute the intersection between VD’ and the height-between VD’ and the height-field surface using a binary field surface using a binary search starting with A and Bsearch starting with A and B
Perform the shading of the Perform the shading of the fragment using the fragment using the attributes associated with attributes associated with the texture coordinates of the texture coordinates of the computed intersection the computed intersection point.point.
Introduction > Related Work > Relief Texture Mapping > Methods > Results
Binary SearchBinary Search Start with A-B lineStart with A-B line At each step (8 steps):At each step (8 steps):
Compute middle of the intervalCompute middle of the interval Assign averaged endpoint texture Assign averaged endpoint texture
coordinates and depthcoordinates and depth Use averaged tex coords to Use averaged tex coords to
access depth mapaccess depth map If stored depth value is less than If stored depth value is less than
computed depth value, the point computed depth value, the point is inside the surfaceis inside the surface
Proceed with one endpoint in and Proceed with one endpoint in and one outone out
Introduction > Related Work > Relief Texture Mapping > Methods > Results
Linear SearchLinear Search To find first point under surface, start at A, advance ray To find first point under surface, start at A, advance ray
by by δδABAB δδ is a function of the angle between VD’ and is a function of the angle between VD’ and
interpolated fragment normal interpolated fragment normal No more than 32 steps are taken in their No more than 32 steps are taken in their
implementationimplementation Proceed with binary search (with less iterations) Proceed with binary search (with less iterations)
Introduction > Related Work > Relief Texture Mapping > Methods > Results
ShadowingShadowing Visibility problemVisibility problem Determine if light ray intersects surfaceDetermine 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 TexturesDual Depth Relief Textures Represent opaque, closed surfaces Represent opaque, closed surfaces
with only one texturewith only one texture Second “back” layer is not used for Second “back” layer is not used for
rendering, but as a constraint for ray-rendering, but as a constraint for ray-height-field intersection height-field intersection
Introduction > Related Work > Relief Texture Mapping > Methods > Results
Dual Depth Relief TexturesDual Depth Relief Textures
Introduction > Related Work > Relief Texture Mapping > Methods > Results
ResultsResults
Dual Depth Relief TexturesDual Depth Relief Textures
Introduction > Related Work > Relief Texture Mapping > Methods > Results
StorageStorage Two depthmaps and a normal map can be stored in one Two depthmaps and a normal map can be stored in one
texturetexture Since normals are unit length, you can store just x and y Since normals are unit length, you can store just x and y
and use the other two components for depth valuesand use the other two components for depth values Compute z @ run-time Compute z @ run-time Rendering is the same as described, except a point is in the Rendering is the same as described, except a point is in the
represented object if front_depth <= point depth <= represented object if front_depth <= point depth <= back_depth back_depth
ResultsResults
Introduction > Related Work > Relief Texture Mapping > Methods > Results
Most objects rendered with 512x512 relief Most objects rendered with 512x512 relief texturetexture
800x600 resolution at 85 fps800x600 resolution at 85 fps Written in CgWritten in Cg 3GHz PC w/ 512 MB memory on NVIDIA 3GHz PC w/ 512 MB memory on NVIDIA
GeForce 6800GT w/ 256 MB memory GeForce 6800GT w/ 256 MB memory
ResultsResults
Introduction > Related Work > Relief Texture Mapping > Methods > Results
ResultsResults
Introduction > Related Work > Relief Texture Mapping > Methods > Results
ResultsResults
Introduction > Related Work > Relief Texture Mapping > Methods > Results
ResultsResults
Introduction > Related Work > Relief Texture Mapping > Methods > Results
ResultsResults
Introduction > Related Work > Relief Texture Mapping > Methods > Results
ResultsResults
Introduction > Related Work > Relief Texture Mapping > Methods > Results
ConclusionConclusion
Provided method for mapping relief Provided method for mapping relief textures to arbitrary surfaces in texture textures to arbitrary surfaces in texture space, allowing deformationspace, allowing deformation
Provides correct shadowing, self-occlusion, Provides correct shadowing, self-occlusion, and interpenetration with correct lightingand interpenetration with correct lighting
Presented an efficient ray-heightfield Presented an efficient ray-heightfield intersection algorithmintersection algorithm
Extended relief maps with dual-depth Extended relief maps with dual-depth texturestextures