1 / 36

Mapping method

Mapping method. Texture Mapping Environmental mapping (sphere mapping) (cube mapping). Introduction. When we deal with texture 2D image may use as texture for surface. Image format. Bitmap (bmp) TIFF 2 forms: uncompress and compressed JPG Compressed image Post Script (PS)

Download Presentation

Mapping method

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Mapping method Texture Mapping Environmental mapping (sphere mapping) (cube mapping)

  2. Introduction • When we deal with texture • 2D image may use as texture for surface

  3. Image format • Bitmap (bmp) • TIFF • 2 forms: uncompress and compressed • JPG • Compressed image • Post Script (PS) • used in printer control • Coded in 7 bit of ASCII character set • Understood by a large class of printer • Large in size • Encapsulated Post Script (EPS) • PS similar but add additional information for previewing images. • GIF • For index images with color table and an array of image indices.

  4. Mapping Methods • Texture mapping • Pattern (texture) determined the color of fragment • Map on smooth surface • Bump mapping • Distort the normal vector • Make some bump on surface • Environmental mapping • Image that have the appearance of ray trace

  5. Texture Mapping • Some patterns • Regardless of pattern • 1D for stripe, curve etc • 2D use to map on surface • 3D map on solid box

  6. Two-Dimensional Texture Mapping • Mapping involved among 3 or 4 different coordinate systems. • Screen coordinate at first, Final at world coordinate system • World coordinate: object is described here • Texture coordinate: describe texture • Parametric coordinate: for the relation of curve or surface • Texture process • Start out with 2D image may come from • Photo scanning • Form by application • Brought into the memory array • Smallest element called texel (texture element) • texel is represented by T(s,t) (texel coordinate) • where s and t are texture coordinate. • Often range between 0 and 1

  7. Mapping approach • General form of mapping • Let (x,y,z,w) be object coordinate. • They can be expressed as a function of textel coordinate. • Texture also can express as a function of World coordinate (inverse function)

  8. Texture maps on a parametric surface. Method of texture mapping Map texture together with parametric on to geometric coordinate Last project onto the screen coordinate

  9. Map the texture coordinate to geometric coordinate • Texture to screen coordinate • We interested in mapping area to area • Aliasing problem may happen

  10. Direct mapping between texel coordinate to parametric coordinate

  11. Two-part mapping • Use for map on curve surface • 2 steps • Map texture on intermediate surface • Map intermediate surface to surface being rendered • Useable both parametric and geometric coordinate

  12. Suppose that map on the cylinder surface What happen if the object is sphere? Some distortion happen at the pole. Why ? Texture mapping with a cylinder

  13. Mapping texture on the intermediate object to the desire surface • 3 possible strategies • a. Place the texture at the finding point of intersection of normal from object edge • b. place the texture at the interaction point of normal intersect the intermediate surface • c. draw a line from the center of the object to edge

  14. Texture Mapping in OpenGL OpenGL pipelines merge at rendering (rasterization) stage process: maps 3D points to pixels on the display. visibility is test (with the z-buffer) and is shaded if visible. Vertices are mapped to texture coordinates in object defined stage, values can then be obtained by interpolation like color to polygons

  15. Creating a texture process • Define texel array GLubytemy_texels[512][512]; // monochrome image or GLubytemy_texels[512][512][3]; // rgb image • Assign image to texture memory glTexImage2D(GL_TEXTURE_2D, 0, 3, 512, 512, 0, GL_RGB, GL_UNSIGNED_BYTE, my_texels); • Enable texture glEnable(GL_TEXTURE_2D);

  16. Defining texture to object. • t and s have value between 0 and 1 correspond to texel array (mytexels) • Mapping can happened at object definition stage in glBegin and glEnd loop glBegin(GL_QUAD); glTexCoord2f(0.0,0.0); glVertex2f(x1, y1); glTexCoord2f(1.0,0.0); glVertex2f(x2, y2); glTexCoord2f(1.0,1.0); glVertex2f(x3, y3); glTexCoord2f(0.0,1.0); glVertex2f(x4, y4); glEnd(); Correspond of texel to image coordinate. Opengl use interpolate to match the image. Map texture using glTexCoord

  17. Mapping condition Texture map condition (a) 100% (b) 50% of texture Mapping of texture to polygons. (a and b) Mapping of a checkerboard texture to a triangle. (c) Mapping of a checkerboard texture to a trapezoid.

  18. When (s,t) outside (0,1) • We can set for repeat or clamp when value is out of bound • For clamping use GL_CLAMP instead of GL_REPEAT glTexParameteri(GL_TEXTURE_WRAP_S, GL_REPEAT); // for s glTexParameteri(GL_TEXTURE_WRAP_T, GL_CLAMP); // clamp t

  19. Problem : Alias • Texel is rarely get the center • Use point sampling • Closet texel is use for interpolate • Weighted average of a group of texel • Linear filtering • Problem may occur at the edge • Add more texel row and colum • (2m+1)x(2n+1)

  20. Most of texel doesn’t math the pixel Mapping texels to pixels condition (a) Magnification. (b) Minification. In both cases, use the value of the nearest point sampling. glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST); More smooth use GL_LINEAR instead of GL_NEAREST

  21. When texel is larger than pixel ? • Use mipmapping technique for minification • We can reduce size of texel to match the image by let OpenGL interpolate for a small one gluBuild2DMipmaps(GL_TEXTURE_2D,3,64,64,GL_RGB,GL_UNSIGNED_BYTE, my_texels); Or control parameter level of glTexImage2D() instead glTexImage2D(GL_TEXTURE_2D, level, components, width, height, border, format, type, tarray);

  22. Texture and shading • 2 options • Multiply the shading and texture by control glTexEnvi(GL_TEX_ENV,GL_TEX_ENV_MODE, GL_MODULATE); • Decal the texture to object glTexEnvi(GL_TEX_ENV,GL_TEX_ENV_MODE, GL_DECAL);

  23. Projection correction • No need for orthogonal projection if linear interpolation is use • For perspective projection • due to non linear depth scaling • a better interpolation is apply by use glHint(GL_PERSPECTIVE_CORRECTION, GL_NICEST);

  24. Texture transformation • As vertices definition • Transformation such as scaling, rotating, move etc • Texture coordinate store in the form of 4D matrix call texture matrix • Initially matrix is identical • Manipulate by glMatrixMode() glMatrixMode(GL_TEXTURE);

  25. Texture object • An OpenGL technique to deal with multitexture • Former : • Load texture every time texture is change with glTexture2D() • Inefficient • Using texture object • Load all textures that need to texture memory • Only change the texture handle to switch between texture

  26. Multitexturing

  27. Environmental / Reflection Maps • appear on highly specular surface eg. mirror • use physically base rendering method such as ray tracer • basic idea • follow the r = 2(v.n)n-v until intersect the environment • shad the reflect to the object • approximate using step 2

  28. Cubemapping • A subtechnique of environmental mapping • OpenGL support which is called by glTexImage2D(GL_CUBE_MAP_dir_axis, 0, 3, 512, 512, 0, GL_RGB, GL_UNSIGNED_BYTE, my_texels); dir : POSITIVE / NEGATIVE axis : X, Y or Z • The object will be surrounded by environt with cube map

  29. Sphere map

  30. Bump mapping • Purtube the normal vector if disturb the normal by displace it in the normal direction with d(u,v) and () New point can find with and its normal

  31. Bump (cont) Partial derivative of and and Calculation needs two arrays which disturbs texture and

  32. Compositing techniques • Opacity and blending • Image compositing • Image compositing in OpenGL • Antialiasing • Back to front and front to back rendering • Depth cue and fog

  33. Multirendering and Accumulation buffer • Scene antialising • Bump Mapping and Embossing • Image Processing • Image Extensions • Other multipass method

  34. Sampling and Aliasing • sampling theory • reconstruction • quantization

More Related