For your final project you will add a feature to the viewer you've developed so far, and perform a performance evaluation of this feature.
You may work in pairs. If you work in pairs you will to do a more extensive performance comparison (e.g., comparing three ways of implementing a feature instead of two).
You must propose your project (google form link in Zulip) before the final project's "out" date.
Pre-approved example projects are here. (You may just copy-paste these into the proposal form, though please indicate that this is what you've done.)
Scoring: the final project is worth 30 points, total. Thanks to a convenient and intentional construction, each "point" is worth exactly 1% of your final course grade. Points are allocated as follows: the proposal is worth 1 point; the implementation is worth 19 points; the evaluation is worth 10 points.
Points will be awarded for each section based on both the code and a report demonstrating and benchmarking the code. An incomplete report is the same as incomplete code.
Reminder: this class takes a strict didactic, ethical, and legal view on copying code.
If you are working with a partner, you should both turn in the same files. Make sure to indicate who you are working with in your report.
Turn in your code in /afs/cs.cmu.edu/academic/class/15472-s24-users/<andrewid>/F/
.
Your turn-in directory should include:
report/
report describing your code and illustrating that it works. (Feel free to use the same html template as the assignment reports.)
report/report.html
the report itself.report/*.s72,*.b72
benchmarking scenes and data mentioned in your report.report/*
other files (images, animations, cubemaps) needed by your report.code/
the code you wrote for this assignment.
code/.git
your code must be stored in a git repository with a commit history showing your development process.report/
folder.)
We expect your Maekfile.js
to properly build your viewer on at least one of { Linux/g++
; Windows/cl.exe
; macOS/clang++
}.
We will not penalize you for minor cross-platform compile problems; though we would appreciate it if you tested on Linux.
When we compile and run your code, we will set the Vulkan SDK environment variables as described in the LunarG SDK getting started guide.
In addition, we will have GLFW installed system-wide via apt install libglfw3-dev
.
We expect your report to be viewable in Firefox on Linux. You may wish to consult MDN to determine format compatibility for any embedded videos.