320 likes | 397 Views
CIS 636/736 Computer Graphics Lecture 10 of 42. Surface Detail 4: Mappings. William H. Hsu Department of Computing and Information Sciences, KSU KSOL course pages: http://snipurl.com/1y5gc Course web site: http://www.kddresearch.org/Courses/CIS636
E N D
CIS 636/736 Computer GraphicsLecture 10 of 42 Surface Detail 4: Mappings William H. Hsu Department of Computing and Information Sciences, KSU KSOL course pages: http://snipurl.com/1y5gc Course web site: http://www.kddresearch.org/Courses/CIS636 Instructor home page: http://www.cis.ksu.edu/~bhsu Readings: Sections 20.5 – 20.13, Eberly 2e – see http://snurl.com/1ye72 Next class (Lab 2): Textures in OpenGL: A Primer (Angel, 3e ) CIS 636/736: (Introduction to) Computer Graphics
Review: Texture Mapping parametric coordinates texture coordinates window coordinates world coordinates CIS 636/736: (Introduction to) Computer Graphics
Review:Common Texture Coordinate Mappings • Orthogonal • Cylindrical • Spherical • Perspective Projection • Texture Chart © 2006, Durand & Cutler, MIT CSAIL (6.837) CIS 636/736: (Introduction to) Computer Graphics
Projective Texture Example • Modeling from photographs • Using input photos as textures Figure from Debevec, Taylor & Malik http://www.debevec.org/Research CIS 636/736: (Introduction to) Computer Graphics
Phong's Illumination Model Constant Diffuse Color Diffuse Texture Color Texture used as Label Texture used as Diffuse Color Texture Mapping & Illumination • Texture mapping can be used to alter some or all of the constants in the illumination equation: • pixel color, diffuse color, alter the normal, …. CIS 636/736: (Introduction to) Computer Graphics
Texture Chart • Pack triangles intoa single image CIS 636/736: (Introduction to) Computer Graphics
Questions? CIS 636/736: (Introduction to) Computer Graphics
Today • 2D Texture Mapping • Procedural Solid Textures • Other Mapping Techniques • Texture Aliasing CIS 636/736: (Introduction to) Computer Graphics
Procedural Textures f (x,y,z) → color Image by Turner Whitted CIS 636/736: (Introduction to) Computer Graphics
Procedural Textures • Advantages: • easy to implement in ray tracer • more compact than texture maps (especially for solid textures) • infinite resolution • Disadvantages • non-intuitive • difficult to match existing texture CIS 636/736: (Introduction to) Computer Graphics
Questions? Justin Legakis Ken Perlin Justin Legakis CIS 636/736: (Introduction to) Computer Graphics
Today • 2D Texture Mapping • Procedural Solid Textures • Other Mapping Techniques: • Bump Mapping • Displacement Mapping • Environment Mapping (for Reflections) • Light Maps (for Illumination) • Texture Aliasing CIS 636/736: (Introduction to) Computer Graphics
What's Missing? • What's the difference between a real brick wall and a photograph of the wall texture-mapped onto a plane? • What happens if we change the lighting or the camera position? CIS 636/736: (Introduction to) Computer Graphics
Remember Gouraud Shading? • Instead of shading with the normal of the triangle, shade the vertices with the average normal and interpolate the color across each face Illusion of a smooth surface with smoothly varying normals CIS 636/736: (Introduction to) Computer Graphics
Phong Normal Interpolation (Not Phong Shading) • Interpolate the average vertex normals across the face and compute per-pixel shading Must be renormalized CIS 636/736: (Introduction to) Computer Graphics
Bump Mapping • Use textures to alter the surface normal • Does not change the actual shape of the surface • Just shaded as if it were a different shape Swirly Bump Map Sphere w/Diffuse Texture & Bump Map Sphere w/Diffuse Texture CIS 636/736: (Introduction to) Computer Graphics
Bump Mapping • Treat the texture as a single-valued height function • Compute the normal from the partial derivatives in the texture CIS 636/736: (Introduction to) Computer Graphics
Another Bump Map Example Bump Map Cylinder w/Diffuse Texture Map Cylinder w/Texture Map & Bump Map CIS 636/736: (Introduction to) Computer Graphics
What's Missing? • There are no bumps on the silhouette of a bump-mapped object • Bump maps don’t allow self-occlusion or self-shadowing CIS 636/736: (Introduction to) Computer Graphics
Displacement Mapping • Use the texture map to actually move the surface point • The geometry must be displaced before visibility is determined CIS 636/736: (Introduction to) Computer Graphics
Displacement Mapping Image from: Geometry Caching for Ray-Tracing Displacement Maps by Matt Pharr and Pat Hanrahan. note the detailed shadows cast by the stones CIS 636/736: (Introduction to) Computer Graphics
Displacement Mapping Ken Musgrave CIS 636/736: (Introduction to) Computer Graphics
Today • 2D Texture Mapping • Procedural Solid Textures • Other Mapping Techniques: • Projective Shadows and Shadow Maps • Bump Mapping • Displacement Mapping • Environment Mapping (for Reflections) • Light Maps (for Illumination) • Texture Aliasing CIS 636/736: (Introduction to) Computer Graphics
Environment Maps • We can simulate reflections by using the direction of the reflected ray to index a spherical texture map at "infinity". • Assumes that all reflected rays begin from the same point. CIS 636/736: (Introduction to) Computer Graphics
What's the Best Chart? CIS 636/736: (Introduction to) Computer Graphics
Environment Mapping Example Terminator II CIS 636/736: (Introduction to) Computer Graphics
Texture Maps for Illumination • Also called "Light Maps" Quake CIS 636/736: (Introduction to) Computer Graphics
Questions? Image by Henrik Wann Jensen Environment map by Paul Debevec CIS 636/736: (Introduction to) Computer Graphics
Today • 2D Texture Mapping • Procedural Solid Textures • Other Mapping Techniques: • Texture Aliasing CIS 636/736: (Introduction to) Computer Graphics
Textures can Alias • Aliasing is the under-sampling of a signal, and it's especially noticeable during animation nearest neighbor mipmaps & linear interpolation CIS 636/736: (Introduction to) Computer Graphics
Textures can Alias • Small details may "pop" in and out of view nearest neighbor mipmaps & linear interpolation CIS 636/736: (Introduction to) Computer Graphics
Next Time: Lab 2: Shading and Texturing in OpenGL CIS 636/736: (Introduction to) Computer Graphics