×

Displacement mapping on the GPU - state of the art. (English) Zbl 1162.68714

Summary: This paper reviews the latest developments of displacement mapping algorithms implemented on the vertex, geometry, and fragment shaders of graphics cards. Displacement mapping algorithms are classified as per-vertex and per-pixel methods. Per-pixel approaches are further categorized as safe algorithms that aim at correct solutions in all cases, to unsafe techniques that may fail in extreme cases but are usually much faster than safe algorithms, and to combined methods that exploit the robustness of safe and the speed of unsafe techniques. We discuss the possible roles of vertex, geometry and fragment shaders to implement these algorithms. Then the particular GPU-based bump, parallax, relief, sphere, horizon mapping, cone stepping, local ray tracing, pyramidal and view-dependent displacement mapping methods, as well as their numerous variations are reviewed providing also implementation details of the shader programs. We present these methods using uniform notations and also point out when different authors called similar concepts differently. In addition to basic displacement mapping, self-shadowing and silhouette processing are also reviewed. Based on our experiences gained having reimplemented these methods, their performance and quality are compared, and the advantages and disadvantages are fairly presented.

MSC:

68T45 Machine vision and scene understanding
68U10 Computing methodologies for image processing
68W05 Nonnumerical algorithms

Software:

CUReT
Full Text: DOI

References:

[1] Ashikhmin, SIGGRAPH 2000 Proceedings pp 65– (2000)
[2] [ATI03]ATI: Normalmapper tool, 2003. Available: http://www2.ati.com/developer/NormalMapper-3_2_2.zip.
[3] Bennebroek, Computers and Graphics 21 2 pp 143– (1997)
[4] Blasco, Game Programming Gems III pp 433– (1992)
[5] Blinn, Computer Graphics (SIGGRAPH ’77 Proceedings) pp 192– (1977)
[6] Blinn, Computer Graphics (SIGGRAPH ’78 Proceedings) pp 286– (1978)
[7] Blythe, SIGGRAPH 2006 Proceedings pp 724– (2006)
[8] Becker, SIGGRAPH ’93 Proceedings pp 183– (1993)
[9] Blinn, Texture and reflection in computer generated images, Communications of the ACM 19 10 pp 542– (1976)
[10] Boubekeur, HWWS ’05: Proc. of the ACM SIGGRAPH/EUROGRAPHICS conference on Graphics hardware pp 99– (2005)
[11] Brawley, ShaderX3: Advanced Rendering Techniques in DirectX and OpenGL (2004)
[12] Catmull, A Subdivision Algorithm for Computer Display and Curved Surfaces (1974)
[13] Cook, Computer Graphics (SIGGRAPH ’87 Proceedings) pp 95– (1987)
[14] Carey, Textures for realistic image synthesis, Computers and Graphics 9 2 pp 125– (1985)
[15] Cignoni, IEEE Visualization pp 59– (1998)
[16] Cook, SIGGRAPH ’84 Proceedings pp 223– (1984)
[17] Cohen-Or, A Real-Time Photo-Realistic Visual Flythrough, IEEE Transactions on Visualization and Computer Graphics 2 3 pp 255– (1996)
[18] Crow, Computer Graphics (SIGGRAPH ’77 Proceedings) pp 242– (1977)
[19] Cook, A reflectance model for computer graphics, Computer Graphics 15 3 pp 7– (1981)
[20] Danielsson, Euclidean distance mapping, Computer Graphics and Image Processing 14 pp 227– (1980)
[21] Dana, Reflectance and texture of real-world surfaces, ACM Transactions on Graphics 18 1 pp 1– (1997)
[22] Doggett, HWWS ’00: Proceedings of the ACM SIGGRAPH/EUROGRAPHICS workshop on Graphics hardware pp 59– (2000)
[23] Dietrich, Elevation Maps (2000)
[24] Doggett, Displacement mapping using scan conversion hardware architectures, Computer Graphics Forum 20 1 pp 13– (2001)
[25] Dufort, Proc. Vision, Modeling, and Visualization 2005 pp 399– (2005)
[26] Donelly, GPU Gems 2 pp 123– (2005)
[27] Dummer, Cone Step Mapping: An Iterative Ray-Heightfield Intersection Algorithm (2006)
[28] Espino, The 13-th International Conference in Central Europe on Computer Graphics, Visualization and Computer Vision pp 29– (2005)
[29] Elber, PG ’02: Proceedings of the 10th Pacific Conference on Computer Graphics and Applications pp 156– (2002)
[30] ElHelw, Cylindrical relief texture mapping, Journal of WSCG 11 pp 125– (2003)
[31] Fournier, Filtering Normal Maps and Creating Multiple Surfaces (1992)
[32] [Gat03] Gath J. : Derivation of the tangent space matrix, 2003. http://www.blacksmith-studios.dk/projects/downloads/tangent_matrix_derivation.php.
[33] Gumhold, HWWS ’99: Proceedings of the ACM SIGGRAPH/EUROGRAPHICS workshop on Graphics hardware pp 55– (1999)
[34] Hart, SIGGRAPH 93 Course Notes: Modeling, Visualizing, and Animating Implicit Surfaces pp 14– (1993)
[35] Heidrich, SIGGRAPH 2000 Proceedings pp 455– (2000)
[36] Heckbert, Survey of texture mapping, IEEE Computer Graphics and Applications 6 11 pp 56– (1986)
[37] Hirche, Proceedings of Graphics Interface pp 153– (2004)
[38] Hasenfratz, Eurographics Conference. State of the Art Reports (2003)
[39] Heidrich, Proceedings of Graphics Interface pp 8– (1998)
[40] Henning, GRAPHITE ’04: Proceedings of the 2nd international conference on Computer graphics and interactive techniques in Australia and South East Asia pp 254– (2004)
[41] Hadwiger, Eurographics Conference pp 303– (2005)
[42] He, A comprehensive physical model for light reflection, Computer Graphics 25 4 pp 175– (1991)
[43] Jeschke, Eurographics, 2005. State of the Art Reports pp 61– (2005)
[44] Kilgard, practical and robust bump-mapping technique for today’s GPU’s A (2000)
[45] Kaneko, Proceedings of ICAT 2001 pp 205– (2001)
[46] Kolb, Vision, Modeling and Visualization (2005)
[47] Kautz, Proceedings of Graphics Interface pp 61– (2001)
[48] Kelemen, Eurographics 2001, Short papers pp 25– (2001)
[49] Levoy, Efficient ray tracing of volume data, ACM Transactions on Graphics 9 3 pp 245– (1990) · Zbl 0726.68078
[50] Lensch, Image-based reconstruction of spatial appearance and geometric detail, ACM Transactions on Graphics 22 2 pp 234– (2003)
[51] Logie, Inverse displacement mapping in the general case, Computer Graphics Forum 14 5 pp 261– (1995)
[52] Lengyel, Proceedings of the 2001 Symposium on Interactive 3D Graphics pp 227– (2001)
[53] Lee, Pacific Graphics ’95 pp 183– (1995)
[54] Max, Horizon mapping: Shadows for bump-mapped surfaces, The Visual Computer 4 2 pp 109– (1988)
[55] Malzbender, SIGGRAPH 2001 Proceedings pp 519– (2001)
[56] Mantler, Displacement Mapped Billboard Clouds (2007)
[57] Moule, Proceedings of the Graphics Interface pp 171– (2002)
[58] McGuire, I3D 2005 Poster (2005)
[59] Mueller, Eurographics 2004, State of the art reports (2004)
[60] Musgrave, Grid tracing: Fast ray tracing for height fields, Research Report YALEU/DCS/RR-639 (1988)
[61] Oliveira, Relief Textures (1999)
[62] Oliveira, SIGGRAPH 2000 Proceedings pp 359– (2000)
[63] Oh, ACM Symposium on Virtual Reality Software and Technology (VRST’06) pp 75– (2006)
[64] Oliveira, Relief Texture Mapping (2000) · doi:10.1145/344779.344947
[65] Oliveira, An Efficient Representation for Surface Details (2005)
[66] Peercy, SIGGRAPH 97 Proceedings pp 303– (1997)
[67] Porumbescu, SIGGRAPH 2005 Proceedings pp 626– (2005)
[68] Pharr, Eurographics Rendering Workshop 1996 Proceedings pp 31– (1996)
[69] Patterson, Inverse displacement mapping, Computer Graphics Forum 10 2 pp 129– (1991)
[70] Policarpo, ShaderX4: Advanced Rendering Techniques (2005)
[71] Policarpo, GPU Gems 3 (2007)
[72] Policarpo, ACM SIGGRAPH 2005 Symposium on Interactive 3D Graphics and Games pp 155– (2005)
[73] Premecz, Central European Seminar on Computer Graphics (2006)
[74] Parilov, Real-time rendering of normal maps with discontinuities (2005)
[75] Parilov, WSCG Proceedings pp 357– (2002)
[76] Qu, Computer Graphics International pp 202– (2003)
[77] Risser, Symposium on Interactive 3D Graphics and Games (I3D) (2006)
[78] Rushmeier, Proc. 8th Eurographics Rendering Workshop pp 35– (1997)
[79] Sander, Siggraph 2005 Tutorial (2005)
[80] Suykens, Interactive rendering with bidirectional texture functions, Computer Graphics Forum (Eurographics 03) 22 3 pp 464– (2003)
[81] Sloan, Rendering Techniques ’00 (Proc. Eurographics Workshop on Rendering) pp 281– (2000)
[82] Schlag, Graphics Gems IV pp 433– (1994) · doi:10.1016/B978-0-12-336156-1.50057-4
[83] Scott, Nvidia’s GeForce 8800 graphics processor (2007)
[84] Sen, HWWS ’04: Proceedings of the ACM SIGGRAPH/EUROGRAPHICS conference on Graphics hardware pp 65– (2004)
[85] Szirmay-Kalos, Approximate ray-tracing on the GPU with distance impostors, Computer Graphics Forum 24 3 pp 695– (2005)
[86] Schein, Real-time geometric deformation displacement maps using programmable hardware, The Visual Computer 21 pp 8– (2005)
[87] Smits, Proceedings of the Eurographics Workshop on Rendering Techniques 2000 pp 307– (2000) · doi:10.1007/978-3-7091-6303-0_28
[88] Shirley, A polygonal approximation to direct scalar volume rendering, ACM Computer Graphics 24 pp 63– (1990)
[89] Sylvain, A survey of methods for recovering quadrics in triangle meshes, ACM Computing Surveys 34 2 pp 1– (2002)
[90] Taillefer, Graphics Interface ’92 Workshop on Local Illumination pp 53– (1992)
[91] Tatarchuk, SI3D ’06: Proceedings of the 2006 symposium on Interactive 3D graphics and games pp 63– (2006)
[92] Tatarchuk, ShaderX 5 pp 75– (2006)
[93] Tarini, Pinchmaps: Textures with customizable discontinuities, Computer Graphics Forum 24 3 pp 557– (2005)
[94] Tarini, Eurographics Conference pp 119– (2000)
[95] Umenhoffer, GPU Gems 3 pp 317– (2007)
[96] Wimmer, GPU Gems 2 pp 91– (2005)
[97] Wang, Texture 2005: Proceedings of the 4th International Workshop on Texture Analysis and Synthesis pp 143– (2005)
[98] Welsh, Parallax Mapping with Offset Limiting: A PerPixel Approximation of Uneven Surfaces (2004)
[99] Wang, Proceedings of the 2000 Eurographics Workshop on Rendering Techniques pp 257– (2000) · doi:10.1007/978-3-7091-6303-0_23
[100] Wimmer, Eurographics Symposium on Rendering pp 143– (2004)
[101] Wang, Proceedings of the 2004 Eurographics Symposium on Rendering pp 227– (2004)
[102] Wang, View-dependent displacement mapping, ACM Transactions on Graphics 22 3 pp 334– (2004)
[103] Yerex, Siggraph 2004 Sketches (2004)
[104] Zhang, Shape from shading: A survey, IEEE Transactions on Pattern Analysis and Machine Intelligence 21 8 pp 690– (1999) · Zbl 1316.94019
This reference list is based on information provided by the publisher or from digital mathematics libraries. Its items are heuristically matched to zbMATH identifiers and may contain data conversion errors. In some cases that data have been complemented/enhanced by data from zbMATH Open. This attempts to reflect the references listed in the original paper as accurately as possible without claiming completeness or a perfect matching.