280 likes | 495 Views
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
E N D
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 per-pixel 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 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. 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 ray-height-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