texturing
play

Texturing CS 6965 Fall 2011 90 80 70 60 50 40 FPS (prog2) - PowerPoint PPT Presentation

Texturing CS 6965 Fall 2011 90 80 70 60 50 40 FPS (prog2) 30 20 10 0 Erik's Danny's Program 2 CS 6965 Fall 2011 2 Texture mapping Most real objects do not have uniform color Texture: color and other material


  1. Texturing CS 6965 Fall 2011

  2. 90 80 70 60 50 40 FPS (prog2) 30 20 10 0 Erik's Danny's Program 2 CS 6965 Fall 2011 2

  3. Texture mapping • Most real objects do not have uniform color • Texture: color and other material properties as a function of space CS 6965 Fall 2011 3

  4. Texture mapping topics • Image textures • Texture coordinates • Linear, cylindrical, spherical mappings • Barycentric coordinates for triangles • Software architecture • Procedural textures • Simple: checkerboards, tiles, etc. • Fractal noise based: marble, granite, wood, etc. • Ken Perlin, NYU Bump mapping CS 6965 Fall 2011 4

  5. Lambertian Shading       Compute hit position ( P = O + tV )  Call primitive to get normal (N ) (normalized)    costheta = − N ⋅ V if ( costheta < 0) normal =-normal Color light = scene.ambient*Ka foreach light source   get C L and L       = L   dist= L , L n L    cosphi = N ⋅ L n if( cosphi > 0) if(!intersect with 0 < t < dist ) light += C L *( Kd * cosphi ) result=light*surface color CS 6965 Fall 2011 5

  6. Simple image texture Use hit position to determine image location   P P : hit position y   C : lower left corner of image  x C U : image X axis in world space   Image V : image Y axis in world space x, y: normalized image coordinates (0-1)         P = C + xU + yV    V if U ⋅ V = 0 :       ( ) ⋅ U P − C   x = U       ( ) ⋅ V P − C   y = U V World CS 6965 Fall 2011 6

  7. Simple image texture       ( ) ⋅ U P − C P y   x = U       x ( ) ⋅ V C P − C Image   y = V ( ) , fx = ix − x xres − 1 ( ) ( ) ix = (int) x xres − 1 ( ) , fy = iy − y yres − 1 ( ) ( ) iy = (int) y yres − 1 V Bilinear interpolation of image(ix,iy) - image(ix+1,iy+1) using fx,fy as interpolation factors Use interpolated color in lambertian shading U World CS 6965 Fall 2011 7

  8. Miscellaneous details • What happens for points outside of the texture? • Tile texture (mod function) • Clamp (stretch out last value) • Use an “outside” color • What if U/V are not orthogonal? • Solve a 2x2 matrix to get x/y • Other interpolations: • Nearest neighbor • Higher order interpolation • Filter reconstruction (what filter width?) CS 6965 Fall 2011 8

  9. Texturing process • This example illustrated two orthogonal issues of texturing for ray tracing: • Mapping hit position to image space (coordinate transformation), example: linear • Mapping texture coordinate to color or other attributes, example: linear interpolation of an image CS 6965 Fall 2011 9

  10. Texture coordinates • Textures are not always flat • Textures live in a space called “uvw” • Texture coordinate mapping: xyz to uvw • NASA Blue marble project Texture space may not be linear CS 6965 Fall 2011 10

  11. Cylinder projection ( ) x = cos θ R θ ( ) y = sin θ Z inverse mapping: x 2 + y 2 R = θ = atan2( y , x ) atan2 :robust atan(y/x) for all quadrants CS 6965 Fall 2011 11

  12. Cylinder projection x = cos θ R y = sin θ θ inverse mapping: Z x 2 + y 2 R = θ = atan2( y , x ) atan2 :robust atan(y/x) for all quadrants u = θ 2 π ;if(u<1)u+=1, v = z , w = R CS 6965 Fall 2011 12

  13. Sphere mapping • Lots of ways to map a plane (image) to a sphere • Remember grade school geography http://www.colorado.edu/geography/gcraft/notes/mapproj/mapproj_f.html CS 6965 Fall 2011 13

  14. Polar projection Use longitude/latitude angles: φ x = cos θ sin φ y = sin θ sin φ R z = cos φ θ inverse mapping: x 2 + y 2 + z 2 R = φ = cos − 1 z R θ = atan2( y , x ) atan2 :robust atan(y/x) for all quadrants u = θ 2 π ;if(u<0)u+=1, v = 1 − θ π , w = R CS 6965 Fall 2011 14

  15. Arbitrary position/orientation   Z : vector to north pole  Z X : vector to seam      Y = Z × X      φ ( ) ⋅ X x = P − C ʹ″       ( ) ⋅ Y R y = P − C ʹ″       ( ) ⋅ Z z = P − C ʹ″ θ X x = cos θ sin φ ʹ″ y = sin θ sin φ ʹ″ z = cos φ ʹ″ inverse mapping similar CS 6965 Fall 2011 15

  16. Linear projection U x U x V x W x u T x ⎡ ⎤ ⎡ ⎤ ⎡ ⎤ ⎡ ⎤ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ V y U y V y W y v T y = + ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ T ⎢ ⎥ ⎢ ⎥ ⎢ z ⎥ U z V z W z ⎢ w ⎥ T z ⎣ ⎦ ⎣ ⎦ ⎣ ⎦ ⎣ ⎦ W inverse mapping: − 1 x − T x u U x V x W x ⎡ ⎤ ⎡ ⎤ ⎡ ⎤ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ v U y V y W y y − T y = ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ w U z V z W z z − T z ⎣ ⎦ ⎣ ⎦ ⎣ ⎦ CS 6965 Fall 2011 16

  17. Linear special case U x u T x ⎡ ⎤ ⎡ ⎤ ⎡ ⎤ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ y v T y = + V ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ z ⎥ ⎢ w ⎥ T z T ⎣ ⎦ ⎣ ⎦ ⎣ ⎦ W inverse mapping: u x − T x ⎡ ⎤ ⎡ ⎤ ⎢ ⎥ ⎢ ⎥ v y − T y = ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ w z − T z ⎣ ⎦ ⎣ ⎦ CS 6965 Fall 2011 17

  18. Barycentric coordinates  0 ≤ b 1 , b 2 , b 3 ≤ 1 P 1 b 1 + b 2 + b 3 = 1        b 2 P = b 1 P + b 2 P + b 3 P 1 2 3        b 3 ( ) P = b 1 P + b 2 P + 1 − b 1 − b 2 P 1 2 3 b 1     u = b 1 P P 2 3 v = b 2 w = 0 CS 6965 Fall 2011 18

  19. Specified texture coordinates  0 ≤ b 1 , b 2 , b 3 ≤ 1 P 1 b 1 + b 2 + b 3 = 1        P = b 1 P + b 2 P + b 3 P b 2 1 2 3        ( ) P b 3 = b 1 P + b 2 P + 1 − b 1 − b 2 P 1 2 3 b 1   ( ) u 3   u = b 1 u 1 + b 2 u 2 + 1 − b 1 − b 2 P P 2 3 ( ) v 3 v = b 1 v 1 + b 2 v 2 + 1 − b 1 − b 2 ( ) w 3 w = b 1 w 1 + b 2 w 2 + 1 − b 1 − b 2 CS 6965 Fall 2011 19

  20. Other coordinate transforms • Any of those spherical projections • Could transform u/v on the disc or ring (similar to cylindrical) • Conical projections • Many more CS 6965 Fall 2011 20

  21. Implementation choices • Where do these coordinate transforms go? • Object? Might want linear or cylindrical mapping on a sphere • Material? Material doesn’t know about coordinates • Somewhere else? CS 6965 Fall 2011 21

  22. Implementation tradeoffs • Object: different sphere subclasses for different UV mappings • Object: multiple inheritance • Material: similar tradeoffs • Somewhere else: redundant data? • Somewhere else: multiple inheritance CS 6965 Fall 2011 22

  23. What Steve does • Add to primitive base class: TexCoordMapper* tcmapper; void setTexCoordMapper(TexCoordMapper*); TexCoordMapper* getTexCoordMapper(); • Sphere is multiply inherited and default tcmapper is “this” pointer • Objects with no inherent uv space default to linear tcmapper (xyz == uvw) • Default space can be overridden in scene CS 6965 Fall 2011 23

  24.       Compute hit position ( P = O + tV ) Image Call primitive to get tcmapper   Call tcmapper to get UVW coordinates (T )   Textured Interpolate surface color from image using T scaled to image resolution Lambertian  Call primitive to get normal (N ) (normalized)    Shading costheta = − N ⋅ V if ( costheta < 0) normal =-normal Color light = scene.ambient*Ka foreach light source   get C L and L       = L   dist= L , L n L    cosphi = N ⋅ L n if( cosphi > 0) if(!intersect with 0 < t < dist ) light += C L *( Kd * cosphi ) result=light*surface color CS 6965 Fall 2011 24

  25. Checkerboard texture 7 6 5 4 v*scale ( ) u * scale ( ) i 1 = int 3 2 ( ) v * scale ( ) i 2 = int 1 0 0 1 2 3 4 5 6 7 cell = ( i 1 + i 2)%2 u*scale if ( cell = 0) use color1 else use color2 CS 6965 Fall 2011 25

  26. 3D Checkerboard 7 texture 6 5 4 v*scale 3 ( ) u * scale ( ) i 1 = int 2 ( ) v * scale ( ) 1 i 2 = int 0 ( ) w * scale ( ) i 3 = int 0 1 2 3 4 5 6 7 u*scale cell = ( i 1 + i 2 + i 3)%2 if ( cell = 0) use color1 else use color2 http://www.chez.com/jrlivenais/vdesprit/tut_index/check_sphere/check_sphere_eng.htm CS 6965 Fall 2011 26

  27. Checkboard comparisons 3D checker 2 D (or 3D) checker planar mapping spherical mapping http://courses.dce.harvard.edu/~cscie234/projects/Slocum/checker-spheres-4x4-jitt-1.gif http://cgg.ms.mff.cuni.cz/~pepca/lectures/textures/sample/checker.jpg CS 6965 Fall 2011 27

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend