Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Real-Time Relief Mapping on Arbitrary Polygonal Surfaces Fabio Policarpo Manuel M. Oliveira Joao L. D. Comba."— Presentation transcript:

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

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

3 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

4 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

5 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

6 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

7

8 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

9 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

10 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

11 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

12 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

13 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

14 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

15 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

16 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

17 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

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

19 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 z @ run-time 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 Rendering is the same as described, except a point is in the represented object if front_depth <= point depth <= back_depth

20 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

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

22 Results

23 Results

24 Results

25 Results

26 Results

27 Doom 3 Video video demonstration video demonstration

28 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


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

Similar presentations


Ads by Google