CS 450/550 -- Fall Quarter 2023
Final Project
100 Points Total
10 points: One-page Project Proposal PDF to be turned into Teach by 23:59:59 PM on Wednesday, November 15,
no Bonus Days
90 Points: Project and Report due: Tuesday, December 12, 23:59:59 PM, no Bonus Days
This page was last updated: September 26, 2023
Click here
to see the FQ 2022 Zoom session where we looked at Final Project reports from previous years.
Requirements:
The goal of this assignment is to give you a chance to apply
all that you have learned to a project of your own choosing.
- It must involve some serious 3D computer graphics.
- It must be worth 100 points
- It must be do-able in 1 week.
- It can involve textures, but doesn't have to.
- It can involve lighting, but doesn't have to.
- It can involve shaders, but doesn't have to.
- It can involve shadows, but doesn't have to.
- It can be based on other work that you have seen, but it must be your own implementation
- It must be adequately explained in your write-up.
Learning Objective:
When you are done with this assignment,
you will have had the chance to apply your newly-discovered graphics knowledge to an application that has significance to you.
Your Proposal
-
Before your project becomes "official", I need to approve a proposal from you.
This needs to be a 1-page PDF suvbmitted to Teach by the date and time listed above.
What you propose must be worth 100 points.
Compare what you are proposing versus one of the 100-point projects, for example.
-
Give me enough detail that I can figure out if it is worth 100 points and if it is doable in a week.
I will get back to you by the end of the following week to tell you if your proposal has been accepted.
-
On the proposal front page, be sure to put your project title, your name, and your email address.
New This Year!
I played with ChatGPT some over the summer.
It was much better at writing non-graphics code and 2D graphics code than it was at writing 3D graphics code.
(It was pretty good at generating OpenGL code to draw a 2D circle.)
But, I expect that you are better at generating prompts than I have been.
So, for this year, one of your Final Project options is to use ChatGPT (or other LLM programs like it)
to generate a 3D scene.
It has to be an interesting-enough scene to earn the full 90 points.
(A sphere won't cut it.)
I kinda suspect that one can use ChatGPT to generate parts of a 3D scene and then surround it with your supporting code.
But I am also expecting that a few people will surprise the hell out of me with what they can do.
If you do this, you need to document what prompts you used and what code it generated with them.
Possible Helps
-
If you want to bring in other 3D objects to work with
(and there are a lot of them on the web),
look for something in a .obj format.
If you want to load a .obj file, incorporate the file loadobjfile.cpp into your own code.
(See the Announcements.)
Warning! Not all obj files have normals and textures.
Take a look at the obj file (it is ascii-editable).
If you see lines of text beginning with vn, it has normals.
If you see lines beginning with vt, it has texture coordinates.
-
If you liked the Bézier curves from the Geometric Modeling notes,
there is a Bézier surface form as well.
It has 16 control points instead of 4 and produces a smooth, slightly-bumpy, surface instead of a smooth, slightly-bumpy, curve.
I'd be happy to show this to you if you would find it useful.
The Turn-In Process:
Your electronic turnin will be done at
http://teach.engr.oregonstate.edu
and will consist of:
- All source files (.cpp, .obj, .bmp, .vert, .frag)
- All texture image files
- All .obj files
- Your PDF report. See below for a description of what belongs in your PDF file.
- Do not .zip the PDF file in with the other files!
I will use a script to collect all the PDFs into a single PDF,
which I can't do easily if your PDF is hidden in a .zip file.
Your electronic submission is due at the date and time listed above.
Note:
Bonus Days cannot be used on this project.
This time, Teach will be setup not to accept late submissions.
Your PDF Report
In addition to doing the project, you also need to write a final report about it:
- Turn the PDF of your report into Teach with your other files
- You report needs to include:
- The text from your proposal
- What you actually did for your project
- How your project differs from what you proposed, and why
- (optional) Any impressive cleverness you want us to know about
- What you learned from doing this project (i.e., what you know now that you didn't know when you started)
- Some images that are especially representative of what you did
- A link to the video showing off your project.
Be sure your video is set to unlisted.
Some Possible Ideas
- Something with displaying 3D data
- Something with creating and traveling through a cityscape
- Displacement-mapped Moon (I have both textures you will need)
Some Comments on Popular Project Ideas
I have noticed some patterns in popular project ideas.
Click here to see those comments.
Grading
Getting the project proposal in on time and in the right format is worth the first 10 points!