Moving to 3D

The basic ideas we will be studying for much of the rest of the course are very briefly introduced here. Details on all of this will be covered in class and in other items on the InClass.html page from which we just came.

  1. 3D Scene Modeling
  2. 3D Scene Rendering
    1. 3D View Generation (parameters specified on CPU; applied in vertex shader):
      • View orientation (new in 3D)
      • Projections (generalization of compute2DScaleTrans)
    2. Lighting Models (Attributes specified on CPU; model implemented in fragment shader):
      • Uses the 3D normal vectors mentioned above as well as other per-vertex and/or per-primitive attributes.
    3. Visible Surface Determination (VSD; implemented in "black-box" portion of graphics pipeline after the fragment shader completes)
    4. Interactive view and scene manipulation (implemented primarily in your code on the CPU):
      • Mouse-based dynamic rotation, pan, zoom
      • General animation

A quick glimpse at the structure of the approach we will take in "defineModel" and "render" (CPU) and in the vertex shader (GPU)

Our general plan will be to study each of these aspects of scene modeling and rendering in multiple passes. We will study "101" versions that contain the material you will need to understand in order to do project 2. We will then study "102" versions that will be required for project 3. Finally, we will examine some of these and other techniques that support more advanced features, and you will implement some of those in our final project 4.