CISC 454 Goals for Test 2

Shaders (in code openGL/03-shaders)

  Phong fragment shader
  Gouraud vs per-pixel shading
    advantages/disadvantages of each
  Depth shading
  Silhouette shading
  Toon shading

Deferred shading

  multiple rendering passes to compute in several stages
  fragment shader renders to texture in a FBO (i.e. offscreen texture)
  can render Phong parameters into textures, then compute in a second pass (in openGL/06-deferred)

Texture Mapping

  adding texture coordinate attributes to a vertex
  openGL/04-textures/wavefront.frag:
    object colour = kd
    replacing kd with texture colour
    modulating kd with texture colour
    decalling kd with texture colour (i.e. keep kd for background pixels)
 
  Texture Lookup
    nearest
    bilinear
      weights of four closest texels
    mip maps
      creating the next coarsest level from the current level
      lookup at (s,t)
      how to determine the level (log_2( p ), where p = max pixel dimension on texmap)
      variants: use closest mipmap level; interpolate between mipmap levels (i.e. trilinear)

  Texture sampling
    computing nearest, bilinear, mip-map texture lookup
    mip-map storage
    anisotropic sampling
      rip-map
      Feline paper:
         A circular sample in pixel projects to an ellipsoid on texture
         Sample along the major axis of the ellipsoid with radius = minor axis

  Procedural textures
    Perlin noise
      how to generate a multi-scale noise function
      examples of how Perlin noise is used (in openGL/05-proceduralTextures/)

  Environment maps
    computing texture coordinates for a ray

  Bump mapping
    general idea of perturbing surface normals
    silhouettes and shadows are incorrect

Ray tracing

  what happens at each ray bounce
    shadow rays to all point lights
    recursive ray in ideal reflection direction
    apply Phong to every incoming ray

Ray/triangle intersection

  ray parameterization: p + td
  plane equation for plane of triangle: n dot x = d
  Barycentric coordinates
    p = alpha v1 + beta v2 + gamma v0
    for points inside triangle :
      alpha + beta + gamma = 1 
      alpha, beta, gamma >= 0
  idea that alpha, beta, gamma are the SIGNED areas of sub-triangles

Back to Goals