This course is an introduction to 3D computer graphics programming. It begins with a short unit on ray-tracing followed by an in-depth exploration of OpenGL using JOGL. Topics include ray tracing, the 3D rendering pipeline, geometric transformations, modeling, scene graphs, graphics data structures, lighting & shading, textures, and shaders. Extensive programming in Java and OpenGL will be required. See the schedule for more details.
CS241 or equivalent.
CS 343 Analysis of Algorithms and Math 253 Linear Algebra are recommended but not required.
Class: TuTh: 12:50-2:20pm in Ford 202
Lab: You should be signed up for one of the following labs:
Final Exam: Saturday, Dec. 18, 2010, from 2-5 pm
Interactive Computer Graphics: A Top-Down Approach Using OpenGL, 5/E , by Edward Angel
Class attendance is required. More than 4 absences will hurt your grade.
Unless you have completed the current lab assignment, you are expected to attend the lab.
Labs assignments will be assigned approximately every 1-2 weeks. Instructions and due dates will all be posted online. It is strongly recommended that you start the assignments early if you want to be certain of finishing on time. Starting the night before the due date will mean 1) you probably won't have enough time to finish, 2) you will be up all night, 3) you won't be able to get help from the instructor and 4) the instructor will have little sympathy.
If you must miss class on the day the assignment is due, you are still expected to turn in your assignments electronically by the due date.
Late assignments are problematic for several reasons. First, it is difficult to catch up once you are behind. Second, you won't be able to contribute to the class discussion and assignment review. For these reasons - don't be late! To provide a strong incentive to get assignments done on time, late assignments will be penalized as follows:
There will be a midterm and a final.
Final course grades will be based in the following:
Labs |
45% |
Attendance and Participation |
10% |
Midterm |
20% |
Final |
25% |
If you do a search on the web or look in books, you will find a significant amount of code available. You are not to use this material without explicit permission from instructor. The purpose of this class is for you to learn the concepts and coding. Copying material from other sources defeats this purpose.
In the context of this class, plagiarism is defined as representing someone else's work as your own. Cheating is defined as violating stated rules for an exam or an assignment. Plagiarized work will receive a grade of 0 as will any assignment in which cheating occurred. Both plagiarism and cheating will be reported to the university. (Also see student handbook and college catalogue for more details)