3D graphics eBook - Course Materials Repository
3D graphics eBook - Course Materials Repository 3D graphics eBook - Course Materials Repository
Bump mapping 27 4. Calculate the interaction of the new "bumpy" surface with lights in the scene using, for example, the Phong reflection model. The result is a surface that appears to have real depth. The algorithm also ensures that the surface appearance changes as lights in the scene are moved around. The other method is to specify a normal map which contains the modified normal for each point on the surface directly. Since the normal is specified directly instead of derived from a height map this method usually leads to more predictable results. This makes it easier for artists to work with, making it the most common method of bump mapping today [2] . There are also extensions which modifies other surface features in addition to increase the sense of depth. Parallax mapping is one such extension. The primary limitation with bump mapping is that it perturbs only the surface normals without changing the underlying surface itself. [3] Silhouettes and shadows therefore remain unaffected, which is especially noticeable for larger simulated displacements. This limitation can be overcome by techniques including the displacement mapping where bumps are actually applied to the surface or using an isosurface. Realtime bump mapping techniques Realtime 3D graphics programmers often use variations of the technique in order to simulate bump mapping at a lower computational cost. One typical way was to use a fixed geometry, which allows one to use the heightmap surface normal almost directly. Combined with a precomputed lookup table for the lighting calculations the method could be implemented with a very simple and fast loop, allowing for a full-screen effect. This method was a common visual effect when bump mapping was first introduced. References [1] Blinn, James F. "Simulation of Wrinkled Surfaces" (http:/ / portal. acm. org/ citation. cfm?id=507101), Computer Graphics, Vol. 12 (3), pp. 286-292 SIGGRAPH-ACM (August 1978) [2] Mikkelsen, Morten. Simulation of Wrinkled Surfaces Revisited (http:/ / image. diku. dk/ projects/ media/ morten. mikkelsen. 08. pdf), 2008 (PDF) [3] Real-Time Bump Map Synthesis (http:/ / web4. cs. ucl. ac. uk/ staff/ j. kautz/ publications/ rtbumpmapHWWS01. pdf), Jan Kautz 1 , Wolfgang Heidrichy 2 and Hans-Peter Seidel 1 , ( 1 Max-Planck-Institut für Informatik, 2 University of British Columbia) External links • Bump shading for volume textures (http:/ / ieeexplore. ieee. org/ xpl/ freeabs_all. jsp?arnumber=291525), Max, N.L., Becker, B.G., Computer Graphics and Applications, IEEE, Jul 1994, Volume 14, Issue 4, pages 18 - 20, ISSN 0272-1716 • Bump Mapping tutorial using CG and C++ (http:/ / www. blacksmith-studios. dk/ projects/ downloads/ bumpmapping_using_cg. php) • Simple creating vectors per pixel of a grayscale for a bump map to work and more (http:/ / freespace. virgin. net/ hugo. elias/ graphics/ x_polybm. htm) • Bump Mapping example (http:/ / www. neilwallis. com/ java/ bump2. htm) (Java applet)
CatmullClark subdivision surface 28 Catmull–Clark subdivision surface The Catmull–Clark algorithm is used in computer graphics to create smooth surfaces by subdivision surface modeling. It was devised by Edwin Catmull and Jim Clark in 1978 as a generalization of bi-cubic uniform B-spline surfaces to arbitrary topology. [1] In 2005, Edwin Catmull received an Academy Award for Technical Achievement together with Tony DeRose and Jos Stam for their invention and application of subdivision surfaces. Recursive evaluation Catmull–Clark surfaces are defined recursively, using the following refinement scheme: [1] Start with a mesh of an arbitrary polyhedron. All the vertices in this mesh shall be called original points. • For each face, add a face point • Set each face point to be the centroid of all original points for the respective face. • For each edge, add an edge point. First three steps of Catmull–Clark subdivision of a cube with subdivision surface below • Set each edge point to be the average of the two neighbouring face points and its two original endpoints. • For each face point, add an edge for every edge of the face, connecting the face point to each edge point for the face. • For each original point P, take the average F of all n face points for faces touching P, and take the average R of all n edge midpoints for edges touching P, where each edge midpoint is the average of its two endpoint vertices. Move each original point to the point (This is the barycenter of P, R and F with respective weights (n-3), 2 and 1. This arbitrary-looking formula was chosen by Catmull and Clark based on the aesthetic appearance of the resulting surfaces rather than on a mathematical derivation.) The new mesh will consist only of quadrilaterals, which won't in general be planar. The new mesh will generally look smoother than the old mesh. Repeated subdivision results in smoother meshes. It can be shown that the limit surface obtained by this refinement process is at least at extraordinary vertices and everywhere else (when n indicates how many derivatives are continuous, we speak of continuity). After one iteration, the number of extraordinary points on the surface remains constant.
- Page 1 and 2: 3D Rendering PDF generated using th
- Page 3 and 4: Image-based lighting 64 Image plane
- Page 5 and 6: References Article Sources and Cont
- Page 7 and 8: 3D rendering 2 Non real-time Animat
- Page 9 and 10: 3D rendering 4 The shaded three-dim
- Page 11 and 12: Ambient occlusion 6 ambient occlusi
- Page 13 and 14: Ambient occlusion 8 • ShadeVis (h
- Page 15 and 16: Anisotropic filtering 10 will only
- Page 17 and 18: Beam tracing 12 Beam tracing Beam t
- Page 19 and 20: Bilinear filtering 14 Are all true.
- Page 21 and 22: Binary space partitioning 16 togeth
- Page 23 and 24: Binary space partitioning 18 Other
- Page 25 and 26: Binary space partitioning 20 [1] Bi
- Page 27 and 28: Bounding interval hierarchy 22 Prop
- Page 29 and 30: Bounding volume 24 bounding boxes b
- Page 31: Bump mapping 26 Bump mapping Bump m
- Page 35 and 36: CatmullClark subdivision surface 30
- Page 37 and 38: Conversion between quaternions and
- Page 39 and 40: Cube mapping 34 Advantages Cube map
- Page 41 and 42: Cube mapping 36 Related A large set
- Page 43 and 44: Diffuse reflection 38 2), or, of co
- Page 45 and 46: Displacement mapping 40 Meaning of
- Page 47 and 48: DooSabin subdivision surface 42 Ext
- Page 49 and 50: False radiosity 44 False radiosity
- Page 51 and 52: Geometry pipelines 46 Geometry pipe
- Page 53 and 54: Global illumination 48 Rendering wi
- Page 55 and 56: Gouraud shading 50 Gouraud shading
- Page 57 and 58: Graphics pipeline 52 Graphics pipel
- Page 59 and 60: Graphics pipeline 54 References 1.
- Page 61 and 62: Hidden surface determination 56 imp
- Page 63 and 64: High dynamic range rendering 58 Hig
- Page 65 and 66: High dynamic range rendering 60 Ton
- Page 67 and 68: High dynamic range rendering 62 Fro
- Page 69 and 70: High dynamic range rendering 64 •
- Page 71 and 72: Irregular Z-buffer 66 Applications
- Page 73 and 74: Lambert's cosine law 68 than would
- Page 75 and 76: Lambertian reflectance 70 Lambertia
- Page 77 and 78: Level of detail 72 Well known appro
- Page 79 and 80: Level of detail 74 Hierarchical LOD
- Page 81 and 82: Newell's algorithm 76 Newell's algo
Bump mapping 27<br />
4. Calculate the interaction of the new "bumpy" surface with lights in the scene using, for example, the Phong<br />
reflection model.<br />
The result is a surface that appears to have real depth. The algorithm also ensures that the surface appearance<br />
changes as lights in the scene are moved around.<br />
The other method is to specify a normal map which contains the modified normal for each point on the surface<br />
directly. Since the normal is specified directly instead of derived from a height map this method usually leads to<br />
more predictable results. This makes it easier for artists to work with, making it the most common method of bump<br />
mapping today [2] .<br />
There are also extensions which modifies other surface features in addition to increase the sense of depth. Parallax<br />
mapping is one such extension.<br />
The primary limitation with bump mapping is that it perturbs only the surface normals without changing the<br />
underlying surface itself. [3] Silhouettes and shadows therefore remain unaffected, which is especially noticeable for<br />
larger simulated displacements. This limitation can be overcome by techniques including the displacement mapping<br />
where bumps are actually applied to the surface or using an isosurface.<br />
Realtime bump mapping techniques<br />
Realtime <strong>3D</strong> <strong>graphics</strong> programmers often use variations of the technique in order to simulate bump mapping at a<br />
lower computational cost.<br />
One typical way was to use a fixed geometry, which allows one to use the heightmap surface normal almost directly.<br />
Combined with a precomputed lookup table for the lighting calculations the method could be implemented with a<br />
very simple and fast loop, allowing for a full-screen effect. This method was a common visual effect when bump<br />
mapping was first introduced.<br />
References<br />
[1] Blinn, James F. "Simulation of Wrinkled Surfaces" (http:/ / portal. acm. org/ citation. cfm?id=507101), Computer Graphics, Vol. 12 (3),<br />
pp. 286-292 SIGGRAPH-ACM (August 1978)<br />
[2] Mikkelsen, Morten. Simulation of Wrinkled Surfaces Revisited (http:/ / image. diku. dk/ projects/ media/ morten. mikkelsen. 08. pdf), 2008<br />
(PDF)<br />
[3] Real-Time Bump Map Synthesis (http:/ / web4. cs. ucl. ac. uk/ staff/ j. kautz/ publications/ rtbumpmapHWWS01. pdf), Jan Kautz 1 , Wolfgang<br />
Heidrichy 2 and Hans-Peter Seidel 1 , ( 1 Max-Planck-Institut für Informatik, 2 University of British Columbia)<br />
External links<br />
• Bump shading for volume textures (http:/ / ieeexplore. ieee. org/ xpl/ freeabs_all. jsp?arnumber=291525), Max,<br />
N.L., Becker, B.G., Computer Graphics and Applications, IEEE, Jul 1994, Volume 14, Issue 4, pages 18 - 20,<br />
ISSN 0272-1716<br />
• Bump Mapping tutorial using CG and C++ (http:/ / www. blacksmith-studios. dk/ projects/ downloads/<br />
bumpmapping_using_cg. php)<br />
• Simple creating vectors per pixel of a grayscale for a bump map to work and more (http:/ / freespace. virgin. net/<br />
hugo. elias/ <strong>graphics</strong>/ x_polybm. htm)<br />
• Bump Mapping example (http:/ / www. neilwallis. com/ java/ bump2. htm) (Java applet)