CS 4554- Computer Graphics I: Assignment 3 : Lighting and Texture Mapping

Requirements

  • Render a room with 4 walls, ceiling, and floor;
  • Place multiple objects in the room;
  • Objects should have appropriate normals, back face removal, and lighting ( ambient, diffuse, and specular );
  • Do texture mapping on the walls, ceiling and floor;
  • Viewer should be able to move and look around the room using keyboard keys;

Upload( blackboard )

  • A description of your project structure (short documentation);
  • Source code with enough comments to make it clear what you are doing;
  • Movie of your animation

Extensions (Preparation for next Lab)

  • Add multiple light sources to the room instead of just one;
  • Do not let the viewpoint penetrate any of the objects and walls;
  • Make one or more objects semi-transparent(remember to draw all triangles, not just the front-facing triangle);
  • Texture map one or more model objects using the objects texture coordinates or generated cooordinates;

Lighting

  • To do lighting in OpenGL, you should not only pass vertex position but also vertex normal to OpenGL;
  • You can calculate normal for each vertex by averaging the normals from its nerighboring faces;
  • To enable/disable lighting, search GL_LIGHTING, GL_LIGHT0;
  • To set up parameters for light source and surface material, search glLightfv, glMaterialfv;

Texture Mapping

Lab Hint