Docstoc

Computer Graphics

Document Sample
Computer Graphics Powered By Docstoc
					Computer Graphics                               Inf4/MSc




                Computer Graphics


                      Lecture 6
         Rasterisation, Antialiasing, Texture
                      Mapping,
Computer Graphics                          Inf4/MSc

   Some Tutorial about the Project
 • I have alreadystcovered all the topics needed
   to finish the 1 practical
 • Today, I will briefly explain how to start
   working on it.
 • I have already provided you a program to
   import an obj file.




                                                   2
Computer Graphics                                       Inf4/MSc
                           Steps
•Apply transformations to all vertices
•Prepare the frame buffer and Z-buffer
•For each triangle
    • Project it to the screen space
    • Find the 2D bounding box
    • For each pixel in the bounding box
       • Check if it is inside the triangle by computing its
         barycentric coordinates
       • If yes, use barycentric coordinates to compute the depth
         and colour at the pixel
       • If (depth < zbuf[pixel]) {
            framebuffer[pixel] = colour
            zbuf[pixel] = depth
        }
•Export the frame buffer data into a PPM file                  3
Computer Graphics                                 Inf4/MSc




 • For each pixel in the bounding box
     • Check if it is inside the triangle by computing
       its barycentric coordinates

     • If yes, use barycentric coordinates to compute
       the depth and colour at the pixel
         z = αz + β z2 + γ z3
                    1


         c = αc + β c2 + γ c3
                    1


     • If (z < zbuf[pixel]) {
          framebuffer[pixel] = colour
               zbuf[pixel] = c
     }
Computer Graphics                                                   Inf4/MSc
          Computing the baricentric
       coordinates of the interior pixels
• The triangle is composed of 3 points p0 (x0,y0), p1 (x1, y1), p2(x2,y2)‫‏‬




(α,β,γ) : barycentric coordinates
Only if 0<α,β,γ<1, (x,y) is inside the triangle
Depth can be computed by αZ0 + βZ1 +γZ2
Can do the same thing for color, normals, textures
                                                                             5
Computer Graphics                           Inf4/MSc


                     Today
 • Anti-aliasing
 • Texture mapping
     – Common texture coordinates mapping
     – Texture coordinates




                                                  6
 Computer Graphics   Rasterisation         Inf4/MSc

• Converts the vertex information output by
  the geometry pipeline into pixel information
  needed by the video display
   – Anti-aliasing
   – Z-buffer
   – Texture mapping
   – Bump mapping
   – Transparent objects
   – Drawing lines



                                                 7
 Computer Graphics   Anti-aliasing                       Inf4/MSc
• Aliasing: distortion artifacts produced when representing a
  high-resolution signal at a lower resolution.
• Anti-aliasing : techniques to remove aliasing




       Aliased polygons             Anti-aliased polygons       8
       (jagged edges)‫‏‬
Computer Graphics                                                       Inf4/MSc

         Nyquist Limit




• The signal frequency (fsignal) should be no greater than half the sample
  frequency (fsample)
• fsignal <= 0.5 fsample
• In the top, fsignal = 0.8 fsample -> cannot reconstruct the original signal
• In the bottom fsignal =0.5 fsample -> the original signal can be reconstructed
  by slightly increasing the sampling rate
Computer Graphics                                    Inf4/MSc


        Screen-based Anti-aliasing
 Each pixel is subdivided (sub-sampled) into n regions,
 and each sub-pixel has a color;
 Compute the average color value


                                                n
                                      p x y)  ic i, x y)
                                       (,      w( ,
                                               i1

                                       (,         color y)
                                      p x y):pixel at(x,
                                       ( ,          color
                                      c i, x y):sample
                                      w : weight
                                       i



                                                           10
Computer Graphics                          Inf4/MSc

  Accumulation Buffer (A-Buffer)‫‏‬
• Use a buffer that has the same resolution as
  the original image
• To obtain a 2x2 sampling of a scene, 4
  images are made by shifting the buffer
  horizontally/vertically for half a pixel
• The results are accumulated and the final
  results are obtained by averaging
• Various sampling schemes are available
                        Pixel center
                      Subsampled point
       Different Sampling Schemes
Computer Graphics              Inf4/MSc
Computer Graphics   Inf4/MSc
Computer Graphics                           Inf4/MSc

  Accumulation Buffer (A-Buffer)‫‏‬
• The lighting computation is usually done
  only once per vertex
• Not doing the lighting computation at each
  sample point
• The A-buffer‟s focus is on the edge anti-
  aliasing
• Also useful for rendering transparent
  objects, motion blur (will be covered later in
  the course)
                    Edges
Computer Graphics                                 Inf4/MSc

               Stochastic Sampling
 • A scene can be produced of objects that are
   arbitrarily small
 • A regular pattern of sampling will always
   exhibit some sort of aliasing
 • One approach to solve this is to randomly
   sample over the pixel
     – Jittering : subdivide into n regions of equal size
       and randomly sample inside each region
Computer Graphics                     Inf4/MSc




 The oversampling
 rate is 1 and 2 from left to right
Computer Graphics                           Inf4/MSc


                     Today
 • Anti-aliasing
 • Texture mapping
     – Common texture coordinates mapping
     – Texture coordinates




                                                  17
Computer Graphics                          Inf4/MSc


  Texture Mapping : Why needed?
 • We don't want to represent all this detail
   with geometry
Computer Graphics                      Inf4/MSc


                    Texture mapping.

  • Method of
    improving surface
    appearance by
    adding details on
    surface.




                                             19
Computer Graphics                                Inf4/MSc


                    Texture mapping.
 • Image is „pasted‟ onto a polygon.
 • Image is called a Texture map, it‟s pixels are often
   referred as a Texels and have coordinates (u,v)‫‏‬
 • Texture coordinates are defined for each vertex of
   the polygon and interpolated across the polygon.
                                y
          v
                                    v
                                            u
                    u
                                        x

                                                       20
Computer Graphics                    Inf4/MSc


                    Photo-textures
   Computer Graphics                          Inf4/MSc


                 Texture Interpolation
• Specify a texture coordinate (u,v) at each vertex
• Can we just linearly interpolate the values in screen
  space?
                             (0,1)‫‏‬




                             (0,0)‫‏‬           (1,0)‫‏‬
Computer Graphics                            Inf4/MSc

   Interpolating the uv coordinates
     Again, we use baricentric   u1 v1
     coordinates
                                                    u3 v3
      u= α u + β u2 + γ u3
               1


      v = α v + β v2 + γ v3
                   1




                                     u2 v2
Computer Graphics                          Inf4/MSc
         Interpolation - What Goes
                  Wrong?
 • Linear interpolation in screen space:




 texture source     what we get|     what we want
Computer Graphics                        Inf4/MSc


              Why does it happen?
• Uniform steps on the image plane does not
  correspond to uniform steps along the edge
Computer Graphics                                 Inf4/MSc


           How do we deal with it?
 • Use hyperbolic interpolation
     – (u,v) cannot be linearly interpolated, but 1/w and
       (u/w, v/w) can
     – w is the last component after the canonical view
       transformation
                          2n      r l   
                               0       0 
                     pw  
                     x  r l       r l    
                                            x
                     w           t      
                     y  0                
                               2n     b
                     p              0 y
                                           
                             tb t  b   z
                     z  
                     pw          f   fn 
                                     n  2 
                          0  0           
                     w         f      1
                                     n f  
                                         n
                          0            0 
                              0    1     
 Computer Graphics                         Inf4/MSc

        Texture Mapping Examples




• Linear interpolation vs. Hyperbolic interpolation
• Two triangles per square
    Computer Graphics                                       Inf4/MSc
         Computing the uv coordinates at the
                  internal points
• For three points of the triangle, get

                      1u v
                i
                r [ i, , i , i ]
                  p
                      www
                       i i   i


                 1 u v
                [ , i, i]
• Compute        w w w
                  i i  i
                            at the internal points of the
  triangle by interpolation
• Compute wi by inverting 1/wi, and multiply them
  to (ui /wi, ,vi /wi) to compute (ui,vi)‫‏‬
 Computer Graphics               Inf4/MSc
         Common Texture Coordinate
                Mappings
• Orthogonal
• Cylindrical
• Spherical
Computer Graphics                                                                 Inf4/MSc


   Texture Mapping & Illumination
 • Texture mapping can be used to alter some or all
   of the constants in the illumination equation:
        – pixel color, diffuse color ….



                                       Phong’s Illumination Model




Constant Diffuse Color   Diffuse Texture Color
                                                 Texture used as Label   Texture used as Diffuse Color
Computer Graphics                                    Inf4/MSc

                      Readings
 • Chapter 5.1-2 of Real-Time Rendering
   Second edition
     – http://books.google.co.uk/books?id=mOKEfBT
       w4x0C&printsec=frontcover&source=gbs_v2_
       summary_r&cad=0#v=onepage&q=&f=false

 • “Hyperbolic Interpolation” IEEE Computer
   Graphics and Applications, vol12, no.4, 89-
   94, 1992
 • Demoed Software
http://www-ui.is.s.u-tokyo.ac.jp/~takeo/java/smoothteddy/index.html

				
DOCUMENT INFO