Texture Mapping from Watt, Ch. 8 Jonathan Han
Topics Discussed • Texture Map to Models • Bump Maps, Light Maps • Environment (Reflection) Mapping • 3D Textures • Interactive Texture Mapping
What is Mapping? Assigning colors to the pixels on a 3D model to simulate. . . • Color • Specular ‘color’ • Surface perturbation • Transparency
2D Texture Maps to Polygon Mesh Objects • Association of 2 coordinate systems between the mesh and the map • Inverse Mapping vs. Forward Mapping • Bilinear Interpolation • Problem is parametrization of object surface
Mapping by Intermediate Surface • Map -> (S map) Simple 3D shape -> (O map) Projection onto complex mesh • Plane, cylinder, cube, spheres all possible intermediate shapes
Bi-Cubic Parametric Patch • If an object is already a quadric or a cubic, then the surface possess a coordinate system that covers every point already. • Simply multiply u and v by the resolution in pixels to obtain location on texture map
Parametric Patch (cont’d) • Divide mesh up to individual parametric surfaces, and place the texture over each
Parametric Patch (cont’d) • Assign (u, v) coordinates to points on mesh surface, and interpolate between these points
Billboards • Technique to create pseudo-realistic 3D objects when viewed in constricted directions
Bump mapping • Simulation for surface perturbation without adding polygons to the mesh • The lighting changes per-pixel to achieve said simulation
What is a Bump Map? • Array of values that represent object’s height variation on small scale • Combined with surface normal to evaluate lighting equation
Light Maps • Like Bump Maps, Light Maps store information on a surface that’s not just color • Simulate localized lighting • Same map applied to multiple mesh to create the same lighting pattern
Light Maps Example No light maps With light maps
Environmental Mapping • To substitute expensive ray-tracing for modelling shiny objects, 2D environment map are textured onto the object.
Creating an Environmental Map • Sphere map: • Render scene from opposite angle of output camera, and apply as texture map • Problem: Inaccurate when the object is round
Creating an Environmental Map • Ball Map: • Create a mirrored sphere and place at approximate location of object – render the sphere. • Problem: Non-uniform sampling at non-original viewpoint
Creating an Environmental Map • Cube Map: • Place a camera at location of object and remove object – take snapshots at 6 directions.
Extended Environmental Mapping • Surface Properties: • 2 maps – diffuse and specular, combined like in Phong shading • Diffuse: Indexed by surface normal • Specular: Indexed by reflected view vector
3-D Texture Domains • Instead of a 2D texture pattern, why not make the texture 3D? • Circumvent problems in texture compression and texture continuity • Problem: Only have texture that are defined in 3D
Easy Example • If Z-axis integer is even, make it red. If not, make it white.
Easy Example No. 2 • Sine and ramp functions
3D Noise • Used to distort existing texture to form irregular and interesting patterns
Perlin’s Noise Lattice • The Perlin’s Method of Noise Generation: • Lattice of points (i,j,k), where i, j, and k are integers – each assigned a random number. Values between i, j, and k linearly (or otherwise) interpolated
Adjusting Noise • Instead of noise(x,y,z), we can use noise(f*x,f*y,f*z) * a to fine-tune result • f – frequency • a - amplitude
Creating Recognizable Textures • Turbulate stripes to emulate marble texture • (marble(x) = marble_colour (sin(x + turbulence(x))
3D Textures for Animation • Emulate flame by adding time dimension to 3D Texture Map • Successive “slices” of noise rendered for flickering flame
Interactive Texturing • Assist artists in creating helpful textures • Applet • Applet
Interactivity in Texturing Symmetrical Models • Model placed in bounding box • Artist paints profile texture as 2D image • Image plane-textured onto the model • Artist adjusts image and re-render for results
“Painting” Textures • Artist “paints” textures onto models directly • Imbues shading, glossiness, as well as pattern to model spontaneously as artist selects it
Implementing Texture “Paint” • Auxiliary frame buffer – item buffer – created • Screen cursor’s location on model gives pointer to position on object surface • Requires parametrized surface – divide object’s surface into numerous micropolygons
Discussion • Additional possibilities for “clever” ways around expensive modelling? • Applications for 3D textures and noise? In combination with environmental mapping? In combination with light maps and bump maps?