CSSE351 - Computer Graphics
Rose-Hulman Institute of Technology Computer Science and Software Engineering Department Fall 2018-2019
Course description
This course is an introduction to computer graphics with rasterization. It also covers very basic animation and modeling. You will learn the theory behind computer graphics and implement many graphics algorithms. There will be large programming problems and written assignments due nearly every week. Smaller programs and quizzes will be assigned per topic session. A course capstone team project is required. You will be required to interact with your classmates and participate in many group projects.
Official course description: Computer graphics algorithms, hardware and software. Line generators, affine transformations, line and polygon clipping, interactive techniques, perspective projection, solid modeling, hidden surface algorithms, lighting models, shading, and graphics standards. Programming assignments and a final project are required.
Course prerequisites
CSSE 220 - OOP and design
MA 212 - matrix knowledge
Technical prerequisites
- Knowledge of C-style programming languages
- Ability to use and manage software repositories
- Ability to use modern internet tools
Social prerequisites
- Interact with others in technical setting
- Communicate online effectively
- Maintain professional communication in course matters
Schedule
See the main course page for schedule details.
Schedule
Section 1 : MTRF 7 : O259
Instructor
Micah Taylor
Moench F205 - check my schedule
812-877-8396
taylormt@rose-hulman.edu
Course objectives
This is what you will learn through this course.
- Develop interactive computer graphics applications using a modern graphics API
- Model geometric objects, curves, and surfaces
- Project a three-dimensional scene onto a two-dimensional viewing surface
- Apply lighting and shading to a scene
- Describe the mathematical foundations of computer graphics (e.g. Bresenham's algorithm, transformation matrices, projection matrices)
- Use shader programs to transform, light, and texture objects.
Required resources
Book: Fundamentals of Computer Graphics, 4th edition
Peter Shirley, Steve Marschner
A K Peters/CRC Press, 2009
The authors maintain a page which should list any errate known.
Hardware: Computer supporting OpenGL version 3+.
Software:
- Modern HTML5 capable browser
- C++ compiler toolchain
- OpenGL
- SFML 2.x
- git client
I will help with any difficulties for the above tools. For other technical problems, consult EIT.
Reading
It would be to your benefit to do the reading. You are responsible for all the material in the assigned sections of the book, whether discussed elsewhere or not.
Assignments
There will be many short programs to complete individually. These should not require very much time to complete. Contact me if you get stuck! There will also be several large programming assignments. These will be completed in groups and will require significant time investment. Near the end of the term, there will be a programming project. This is an open-ended group assignment that will require you to use the algorithms and techniques from the course.
All programming assignments are to be written in C++ in a manner that ensures I will be able to run them on my machine(s). Programming assignments will be graded primarily on correctness, but style and efficiency are considered. You are not permitted to use any external libraries in your programming assignemnts.
Final Project
Starting in the seventh week of the course you will be working on a project of your choosing. You may work in groups of 3 or 4. Project presentations will likely be held Wednesday or Thursday of 10th week.
Grading
Written assignments | 10% |
Programs | 40% |
Quick code | 20% |
Project | 30% |
Every effort should be made to turn programming projects on time. Late programming projects will be penalized in accordance with the degree of lateness. No other late work will be accepted.
Collaboration
Collaboration is encouraged on quick code projects and written assignments. It is required on programs and the project; failure to collaborate will result in a penalty grade. Each individual is responsible for understanding the entire solution. When you collaborate, you must properly credit your collaborators and clearly indicate the extent of the collaboration.
Failure to properly acknowledge collaboration is considered cheating. Directly copying code and ideas is cheating. Cheating will result in a penalty grade on the assignment and Student Affairs will be notified. See this page for details.
Resources
Rose provides a number of resources to help you:
- For accessibility information, see Rose's Disability Services policies.
- Be aware of relevant services and policies regarding student life.
- Make sure you know academic policies
Concerns or Feedback
If you have any concerns about any course matters, you should find someone to contact. You can email your instructor, speak to your instructor, or leave anonymous feedback in Moodle. You can also contact the department head, Student Affairs, or another Rose employee you feel comfortable with.