CSE 5542 - Realtime Rendering

Lab Assignment #3 - Shadow Maps

Shadow Map example

Due: December 3, 2017 11:59 PM

Lab overview: Create a scene that has several objects, at least one light source and a ground plane. Add shadows using a shadow map.

Objective: Upon finishing this lab, you will have an example of creating and using shadow maps..

Tasks:

  1. (10%) Create a scene with multiple objects and/or instances of objects, along with a ground plane.
  2. (10%) Add at least one light source that casts shadows on the ground plane as well as on some of the objects.
  3. (20%) Create transformation matrices (aka a scene) to render the scene from the light source(s) and create a Shadow Map texture.
  4. (20%) Create a shader for use in shadow maps that is effiicient (compared to lighting-based shader).
  5. (20%) Write a shader that adds shadow maps to the lighting and texturing of the objects.
  6. (5%) Add viewport(s) along the right edge of the display of size at least 128 by 128. Display the shadow maps in these viewport(s).
  7. (10%) Add an abient occlusion texture to at least one model and modify your shader to utilize it.
  8. (5%) Create 2 images show casing your work for the course web site. These images must have a pleasant backdrop and your name on them (use GIMP or photoshop). You will get zero credit for an image with a pure saturated color, black or white background. Points will be docked if your models use a pure saturated color.
  9. Provide a readme.txt file for the grader that explains how to use your program.
  10. Extra Credit(5% each)

  11. Add Variance shadow maps.
  12. Attach an examiner to the light and toggle between the light and camera control with a keypress. This will give dynamic shadows. Note, you can use the same scene instance, but you cannot read and write to the shadowMap at the same time, so you have to change materials. The MaterialManager will let you do this.

Hints

Lab submission

Submit your source code (.cpp and .h, .cs files),  and Visual Studio project and solution files. Do not submit any executable files. Submit an html or pdf file specifying what is being submitted and how to run your program. Zip your source and project files into an archive. Double check that your zip file does not have extraneous junk in it, including the hidden .vs folder.

Use the following command on stdsun to submit your lab1

> submit c5542aa lab3 Lastname.zip

Late Penalty

You should submit your lab on time. We are on a quarter schedule, which is pretty tight. Being late for one lab could affect the time left for you to complete subsequent labs. All labs are due at 11:59 pm. of the specified due data, and there is a 10% penalty each day (including weekends) for up to 60%. After that, you get zero.

Grading Criteria

The grader will grade the labs. If you have problems with the grade you received on your lab, see the grader first. If you can't resolve the dispute with the grader, then see me. However, in order to maintain consistent grading for everyone in the class, I am not very inclined to alter grades that are assigned by the grader.

Don't copy labs. Discussion of lab assignments is allowed and encouraged. However, you need to complete the lab all by yourself. Labs which are too similar will be given a zero.