UNB/ CS/ David Bremner/ teaching/ cs4735/ topics

See also the list of Prerequisite topics.

Rendering: 2D pictures from 3D models

Rendering a surface

Rendering meshes

Framebuffers

3D models

Projection

Rasterization

OpenGL

GLSL

WebGL pipeline

Vertex Shaders

Fragment Shaders

Basics of Interactivity

Animation via redraws

Event handlers

Asynch IO

Linear algebra for graphics

inner and cross product

Coordinate systems and bases

Homogeneous coordinates

Transformations via matrix multiplication

Geometry for graphics

Parametric equations

  1. lines
  2. planes
  3. spheres, cylinders

Intersection detection

  1. Intersections of planes
  2. Barycentric coordinates
  3. intersection of triangles with planes :clipping:

Transformations

  1. translation
  2. rotat

Surface Normals

Geometric Pipeline

Projection

  1. parallel projection
  2. perspective projection
  3. View Frustum
    1. Camera transformation

Clipping

  1. clipping triangles
  2. where in the pipeline to clip

Culling

  1. culling triangles
  2. culling bounding volumes

Pixel/Fragment Pipeline

Textures

  1. Linear interpolation
  2. Texture arrays (2D)
  3. Perspective correction
  4. Noise (optional)

Shading

  1. Global / Ambient
  2. Lambertian / Diffuse
  3. Blinn-Phong / Specular
  4. Custom: spotlight, etc…

Shadows

  1. Shadow maps
  2. Shadow volumes (stencil buffer)

3D Modelling

Intersection detection

  1. Intersecting lines with planes :clipping:
  2. Intersecting lines with spheres :bounding:

Hierarchical Models

Bounding Volumes

Collateral skills

Using git

Using the linux command line

Elementary JavaScript programming