Tutorial Solutions
Meshing and Global Illumination

  1. A T-vertex is a vertex which belongs to one polygon, but does not belong to a neighbouring polygon, even though the vertex falls on the edge of the neighbouring polygon. In other words, although the T-vertex touches the neighbouring polygon, the polygon does not "know" about it; it is not in the polygon's list of vertices.

    T-vertices create artifacts in Gouraud shading, because there are two sources of information for the colour of the pixel the T-vertex falls on:

    1. The T-vertex itself.
    2. The endpoints of the edge that the T-vertex touches.
    In general, the colours computed from these two sources will be different, and there will be an obvious discontinuity.

    T-vertices arise from improper mesh subdivision. For some reason, some polygon in the mesh may need to be sub-divided into several smaller polygons. This happens, for example, in radiosity solvers, where the search for a shadow's boundary leads the solver to cut some patches in half. Improper subdivision happens when we cut the polygon without considering neighbouring polygons. Cutting polygons adds new vertices, and some of these new vertices need to be explicitly added to the neighbours.

    Preventing T-vertices requires us to store information about polygon neighbours. One popular data stucture for this purpose is called the Winged-Edge. A winged edge stores information about an edge, including:

               \       /              
              e3\   e4/               
                 \   /                
                  \ /     e5          
                 v1*---------------   
                   |                  
                   |                  
                   |                  
          F1       |       F2         
                   |                  
                   |                  
             e8    |                  
         ----------*v2                
                  / \                 
               e7/   \e6              
                /     \               
    

  2. Algorithms:

    1. Local illumination:
      • Specular highlights (through the Phong term and Phong shading)
    2. Ray tracing
      • Specular highlights, through the local illumination computation, and by tracing reflected rays.
      • Soft shadows, if we sample area sources.
      • Generalized BRDF's, if we account for them when we compute the colour of reflected rays.
    3. Radiosity
      • View-independent illumination, because all surfaces are diffuse and contain no specular highlights.
      • Soft shadows, because form factor evaluation takes into account partially-occluded area sources.
      • Colour bleeding. This occurs when a patch takes on some of the colour of a neighbouring patch. It is due to light from one patch bouncing onto the neighbour. Radiosity methods compute the energy transferred between patches, and take into account the colour.