Math 155B - Introduction to Computer Graphics – Spring 2019
Instructor: 
Sam Buss,  University of California, San Diego

Final Project, Create an individual project
Due date: Sunday, June 9 at 9:00pm.
            
Project plans must be discussed in person (or by Skype!) with Professor Buss by Wednesday, June 5. (Preferably sooner.) If you discuss the project in depth with Nick, a less in-depth discussion with Professor Buss is OK, but still, you must discuss it with Professor Buss.
            Projects may be graded starting Wednesday, June 5.

Goals: Design and create a significant OpenGL or RayTrace program. Create a PDF file documenting your project.  Evaluation will be based on technical and artistic merits.  One-on-one grading with Professor Buss and/or; in addition, an executable with all accompanying files needed to run the progam must be uploaded to gradscope, along with your most significant source code.

What to hand in: Grading will be in the computer lab as usual.  Turn into gradescope:

1.      A PDF document describing your project,  Include your name, but not your PID.  Unless you request otherwise, it may be shown to the class during the project demo session during finals week. This should be 1-3 pages in length, and include (a) A paragraph or several paragraphs describing what is included in your project. (b) Documentation explaining how to run the program, including keyboard controls, etc. (c) One or more pictures showing your scene.  To create images, you use may use CNTL-ALT-PRINTSCREEN. You may also use RgbImage to export high-quality bitmap files, from either OpenGL or from the RayTrace project.

2.     An executable file and any necessary texture files or .glsl files. Professor Buss should be able to run your code inside this folder.  Check this works on the lab computers in a separate folder before doing the upload. (Please!) Do NOT include files generated by Visual Studio. Please try to keep texture maps reasonable size, as long as this does not degrade your images.

3.     A separate folder with you significant source code. Do not upload project files, solution files, or files you did not modify.

We will schedule a Demo session on either Tuesday or Wednesday (finals week) to demo everyone’s projects to the rest of the class.

INSTRUCTIONS:

1.     Pick a project of your choosing.  Guidelines for this include:

a.      Your program must use the RayTrace code or OpenGL or GLSL in the spirit of this course. 

b.     You should spend approximately 10-15 total hours of work on the final project.  If you find yourself spending over 10 hours, please think about how to complete a good project within the time limit.

c.      Design a project that can be implemented in stages, so if you get stuck on one part and cannot complete everything as planned, you will still have a project to demo!

d.     Grading is based on technical merits, artistic design, and creativity.

e.      Your project should not be an adaptation of code from outside Math 155A/B (e.g., downloaded code).   In some cases, we can give an exception to this, but only if your project includes a substantial extension of the other code and only if you discuss this with Professor Buss ahead of time.

f.      Some suggested projects are listed below under "4.". 

2.     You must discuss with Professor Buss your plans for the the final project by Wednesday June 5, and optionally with Nick Sieger. Discussion must be verbal (by Skype if necessary)

3.     Turn in the items listed above.

4.     Some suggested project areas include: (see also last quarter’s suggestions for final projects).

a.      A RayTrace scene.  

b.     Build a scene with animation. A few sample ideas.

                                               i.     Use quaternions or B-splines/Bezier curves to control motion or orientation. Try to combine this with an interesting scene.

                                             ii.     Extend the Glsl water waves project to include more features, e.g. include water in a scene and simulate reflection and/or refraction with texture mapping.

                                            iii.     Make a simple video game.  Warning: lots of work!

                                            iv.     Make a movie by exporting a sequence of RayTrace images.

c.      Try some new uses of Shader programs; or multi-pass OpenGL rendering. For example, look up how to do shadow mapping.

5.     Grading is based on technical merit, artistic merit, and creativity.