Computing & Information Sciences Kansas State University Lecture 10 of 42CIS 636/736: (Introduction to) Computer Graphics CIS 636/736 Computer Graphics Lecture 10 of 42 William H. Hsu Department of Computing and Information Sciences, KSU KSOL course pages: Course web site: Instructor home page: Readings: Sections 20.5 – 20.13, Eberly 2 e – see Next class (Lab 2): Textures in OpenGL: A Primer (Angel, 3 e ) Surface Detail 4: Mappings
Computing & Information Sciences Kansas State University Lecture 10 of 42CIS 636/736: (Introduction to) Computer Graphics Review: Texture Mapping parametric coordinates texture coordinates world coordinates window coordinates
Computing & Information Sciences Kansas State University Lecture 10 of 42CIS 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)
Computing & Information Sciences Kansas State University Lecture 10 of 42CIS 636/736: (Introduction to) Computer Graphics Projective Texture Example Modeling from photographs Using input photos as textures Figure from Debevec, Taylor & Malik
Computing & Information Sciences Kansas State University Lecture 10 of 42CIS 636/736: (Introduction to) Computer Graphics 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, …. Phong's Illumination Model Constant Diffuse ColorDiffuse Texture Color Texture used as LabelTexture used as Diffuse Color
Computing & Information Sciences Kansas State University Lecture 10 of 42CIS 636/736: (Introduction to) Computer Graphics Texture Chart Pack triangles into a single image
Computing & Information Sciences Kansas State University Lecture 10 of 42CIS 636/736: (Introduction to) Computer Graphics Questions?
Computing & Information Sciences Kansas State University Lecture 10 of 42CIS 636/736: (Introduction to) Computer Graphics Today 2D Texture Mapping Procedural Solid Textures Other Mapping Techniques Texture Aliasing
Computing & Information Sciences Kansas State University Lecture 10 of 42CIS 636/736: (Introduction to) Computer Graphics Procedural Textures Image by Turner Whitted f (x,y,z) → color
Computing & Information Sciences Kansas State University Lecture 10 of 42CIS 636/736: (Introduction to) Computer Graphics 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 Procedural Textures
Computing & Information Sciences Kansas State University Lecture 10 of 42CIS 636/736: (Introduction to) Computer Graphics Questions? Ken Perlin Justin Legakis
Computing & Information Sciences Kansas State University Lecture 10 of 42CIS 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
Computing & Information Sciences Kansas State University Lecture 10 of 42CIS 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?
Computing & Information Sciences Kansas State University Lecture 10 of 42CIS 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
Computing & Information Sciences Kansas State University Lecture 10 of 42CIS 636/736: (Introduction to) Computer Graphics Phong Normal Interpolation Interpolate the average vertex normals across the face and compute per-pixel shading (Not Phong Shading) Must be renormalized
Computing & Information Sciences Kansas State University Lecture 10 of 42CIS 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 Sphere w/Diffuse Texture Swirly Bump MapSphere w/Diffuse Texture & Bump Map
Computing & Information Sciences Kansas State University Lecture 10 of 42CIS 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
Computing & Information Sciences Kansas State University Lecture 10 of 42CIS 636/736: (Introduction to) Computer Graphics Another Bump Map Example Cylinder w/Diffuse Texture Map Bump Map Cylinder w/Texture Map & Bump Map
Computing & Information Sciences Kansas State University Lecture 10 of 42CIS 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
Computing & Information Sciences Kansas State University Lecture 10 of 42CIS 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
Computing & Information Sciences Kansas State University Lecture 10 of 42CIS 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
Computing & Information Sciences Kansas State University Lecture 10 of 42CIS 636/736: (Introduction to) Computer Graphics Ken Musgrave Displacement Mapping
Computing & Information Sciences Kansas State University Lecture 10 of 42CIS 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
Computing & Information Sciences Kansas State University Lecture 10 of 42CIS 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.
Computing & Information Sciences Kansas State University Lecture 10 of 42CIS 636/736: (Introduction to) Computer Graphics What's the Best Chart?
Computing & Information Sciences Kansas State University Lecture 10 of 42CIS 636/736: (Introduction to) Computer Graphics Environment Mapping Example Terminator II
Computing & Information Sciences Kansas State University Lecture 10 of 42CIS 636/736: (Introduction to) Computer Graphics Texture Maps for Illumination Quake Also called "Light Maps"
Computing & Information Sciences Kansas State University Lecture 10 of 42CIS 636/736: (Introduction to) Computer Graphics Questions? Image by Henrik Wann Jensen Environment map by Paul Debevec
Computing & Information Sciences Kansas State University Lecture 10 of 42CIS 636/736: (Introduction to) Computer Graphics Today 2D Texture Mapping Procedural Solid Textures Other Mapping Techniques: Texture Aliasing
Computing & Information Sciences Kansas State University Lecture 10 of 42CIS 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
Computing & Information Sciences Kansas State University Lecture 10 of 42CIS 636/736: (Introduction to) Computer Graphics Textures can Alias Small details may "pop" in and out of view nearest neighbormipmaps & linear interpolation
Computing & Information Sciences Kansas State University Lecture 10 of 42CIS 636/736: (Introduction to) Computer Graphics Next Time: Lab 2: Shading and Texturing in OpenGL