CSE 5542 - Realtime Rendering

Extra Credit Lab Assignment #4 - Choices

Due: December 12, 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..

1. Volume Rendering

Tasks:

  1. (20%) Read in a volume data set:
  2. (10%) Create a 1D (or 2D) tranfer function texture. Hint use alpha < 0.05.
  3. (40%) Render the volume using either a slice-based volume rendering or a raycaster using accumulation. Color and opacity should come from the transfer function.
  4. (20%) Add a (hard-coded) procedural cut-out (i.e., remove anything in the upper right front octant).
  5. (10%) Add an x-ray shader (using transfer function but different blending).
  6. Provide a readme.txt file for the grader that explains how to use your program.

2. Terrain, tesselation, displacement map

Tasks:

  1. (15%) Read in a large height map (preferrably 16-bit). It should be at least 1024x1024.
  2. (10%) Draw a tesselated square (aka Floor?) with a descent tesselation of 256x256.
  3. (25%0 Add a Tesselation Control shader that computes the triangle's area and whether the triangle is within camera-space (inside the frustum). Use this to determine the tesselation factors up to a unifrom variable max (depending on the hieght map size)
  4. (15%) Add a Tesselation Evaluation shader to look up the new height from the height map.
  5. (15%) Add a geometry shader to calculate a triangle normal and perhaps do the lighting.
  6. (15%) Add a 1D or 2D texture to add color.
  7. (5%) Add a DrawMode node to switch between wireframe and solid.
  8. Provide a readme.txt file for the grader that explains how to use your program.

Hints

  1. http://victorbush.com/2015/01/tessellated-terrain/

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 lab4 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.