Since the invention of computer games like the ones mentioned at Denoffentilge, developers have been looking for better and more effective ways of simulating 3D geometry on planar surfaces. The reason for needing these techniques is the inability to push out millions if not billions of raw polygons to get the actual detail needed for a realistic image on the screen. The following report investigates the different techniques used over the years including history and possible applications.
2. Normal Distortion
The oldest trick in the book for simulating 3D geometry is known as Bump Mapping, Diffuse Mapping or Normal Mapping. Introduced in 1978 by J. F. Blinn, one of the inventors of texture mapping; Bump mapping, now implemented with R. L. Cook’s normal map format, takes an image composed of preset normals and uses these to calculate lighting on a per pixel basis, representing a more accurate picture than per vertex lighting.
3. UV Coordinate Manipulation
Invented in 1999, M. M. Oliveira and G. Bishop’s Relief Textures pre-distort an image based on depth information. The depth information is stored in either the w component of a normal map, or in it’s own gray scale image. Generally a depth of 0 (black) is the lowest point and 1 (white) is the highest point. This method being extremely computationally expensive makes it unrealistic for use in games. Due to both the linear and binary searches involved, relief mapping is not recommended for gaming. The picture quality, be it highly detailed and realistic, suffers from a long computation time. This method is best set for 3D modeling or CG movies/movie characters.
T. Kaneko introduced the idea of Parallax Mapping in 2001. This new technique allowed for self occluding and various other effects to allow for a more realistic image than that of Bump Mapping, and was highly efficient for use in real time with the only downfall being texture swimming which if not looked after correctly produced an ugly image. Parallax Mapping is the current norm when it comes to games. It not only improves the image, but works just as quickly as Bump Mapping. Because the image quality can suffer from the texture swimming, Parallax Mapping is not recommended for high quality images. When it comes to CG Movies/Movie Characters, you would be much better off applying a more demanding technique to get the image quality you would need for a realistic image.
In 2005 Morgan and Max McGuire proposed the theory of Steep Parallax Mapping which combined Parallax Mapping with a ray tracer in the pixel shader. This technique is very similar to Relief Mapping, only Relief mapping uses a linear and a binary search instead of a single search, because of this single looping search, Steep Parallax Mapping is very effective. Steep Parallax Mapping is more expensive than the current Parallax Mapping, but technology is at the stage where it is very capable for programmers to implement forms of this in real time.
Interval Mapping is similar to Relief Mapping, only instead of a binary search, a linear search is used at specific bounding intervals. These bounds are then searched within until the correct point is found. This makes the method faster and more efficient than Relief Mapping.
4. Surface Displacement
Displacement Mapping, proposed by R.L. Cook in 1984, takes a highly tessellated plane, and distorts the micro vertices in position with information given to a vertex through an image file, generally referred to as a height map.
Displacement mapping, be it the most realistic method, relies on the computers (nowadays the GPU’s) ability to pump out large amounts of vertices and polygons. This makes it nowhere near as effective as any of the other methods. While Relief Mapping would cut your frame rate down to a barely playable rate inside a real time program, Displacement Mapping, depending on the quality, would cut your program to a hopeless frame rate. Due to current hardware, there is no real time application for Displacement Mapping that would show any improvement in image over any of the other techniques. Although, Displacement Mapping is probably your best choice for a CG Movie/Movie Character which are pre rendered before viewing.
I have found out that there are many different ways for simulating 3D geometry on planar surfaces. Each is different and each has its own advantages and disadvantages. When it comes to quality, I found out that Displacement Mapping produces the best quality, but when it comes to running in real time, for example in games, the best method at the moment would be Steep Parallax Mapping, even though this method has not been widely acknowledged.