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 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 IS NOT ON THE TEST