CS 651-4/551-3: Real-Time Rendering
Synopsis: Add support for LOD and visibility calculations to your rendering engine.
Due: As before, this assignment has multiple components and I am requiring you to turn in a checkpoint to gauge your progress and help you stay on track:
Oct 24, 2002 - Checkpoint: view-frustum culling and
simple distance-switched LOD (50%)
Oct 31, 2002 - Final assignment: Everything else (50%)
Details: For this assignment you will add LOD and visibility calculations to your scene-graph rendering engine. As a base level, you are expected to implement by the checkpoint:
Doing the above correctly will earn you full credit on the checkpoint. For the final assignment, you should extend either LOD support or visibility support -- you can of course extend both, but this is not necessary for full credit. Examples of extensions you could implement include:
Resources: 3D Studio Max should now be installed on all the machines in the Olsson 002a lab. I also have a nine-CD collection of 3DSMax models, each with 3 LODs, that should be available by tomorrow (Wednesday Oct 16). I will send out mail with the location (it will be a Windows share). Remember that these models are licensed intellectual property and we do not have permission to distribute them. Maya is another modeling package; right now it does not appear to work in 002a. If you want to use Maya we should be able to accommodate you in the graphics lab. As usual, there are a number of valuable resources available on the web and in the various required/recommended books for the course.
Policy on code reuse: As before, you may use code from outside sources as long as you attribute exactly what you used and where you found it, and share any particularly valuable finds with the rest of the class. You are of course welcome and expected to build on the code that you turned in for assignment 1, though you may well find that you need to rewrite or redesign some portions of the codebase. Obviously if you reuse a significant amount of code that raises the bar for the assignment, and you will be expected to do additional work to get the same grade that you would get if you did all the coding yourself. As always, if you have any questions about code reuse or attribution, please ask me.
Platform: As before, I expect that your code will compile and run on the machines in 002a, either in Windows or Linux. If you want to use a particular input device, talk to me first...you may have to lend it to me so I can grade your assignment.
Turning in the assignment: Put all your code and models in a folder, along with a detailed README.txt file that describes what you did, what code you wrote and what code you used from elsewhere, and how to run your assignment. Zip up the file and e-mail it to me, or put it somewhere I can download it. Be sure to include workspace and project files so that I can compile your code. I will read (and grade you on) your source code, so follow good programming practices. Naming convention: for (my) convenience, please name the zip file and the enclosing folder of your project with just your last name, e.g. "luebke.zip".
Advice: Again, it's a big assignment in a short time frame, but if you are organized and start early you should find it easier than assignment 1. Please talk to me if you have any questions or want to discuss your plan for the beyond-the-checkpoint extensions. I can help you find the information you need to pull it off, steer you away from overly ambitious projects, and talk over the difficulties you may encounter.