-
Notifications
You must be signed in to change notification settings - Fork 7
Home
This course provides an introduction to the field of Computer Graphics with a focus on image synthesis. We will cover the basic mathematical concepts, such as 2D and 3D transformations, examine the interaction of light with geometry to derive suitable shading models, and discuss rendering algorithms such as ray tracing and rasterization. We will investigate how these fundamental components are integrated in current graphics processors and study the corresponding programming APIs. Students will experiment with modern graphics programming and build small demos in C++ and OpenGL (w/ GLSL).
By the end of the course, the student will be able to:
- Explain and apply the fundamental mathematical concepts computer-based image synthesis
- Implement a basic rendering system based on ray tracing
- Implement a basic rendering pipeline based on rasterization
- Explain the core functionalities of the OpenGL graphics API
- Develop simple graphics programs using shader programming
- Design and implement procedural synthesis methods
- Pixels and images
- Fundamentals of ray tracing
- Parametric curves and surfaces
- Rasterization
- Transformations in 2D/3D
- Perspective and visibility
- Interpolation and lighting
- OpenGL graphics API (w/ shader programming)
- Texture mapping
- Procedural modeling
- "Fundamentals of Computer Graphics" (3rd Edition), Peter Shirley and Steve Marschner, A.K. Peters, ISBN: 978-1-56881-469-8
- GLFW 2.7 Documentation
- OpenGL Programming Guide - 8th edition (just google it)
- OpenGL 3.2 Quick Reference Guide
- OpenGL 3.2 Reference Pages
In this course there will be 4 coding based assignments. Assignments are to be done in C++ and will be turned in via the submission system.
Algorithms, performance and code design will all contribute to your assignment grades. For some assignments, we will define a minimum set of requirements. An assignment which implements these features well will receive a grade of B. To get an A, you will need to improve the basic assignment in some way: new features, technical improvements, good design, better interaction, efficiency, etc. We will discuss possible improvements in class and on the assignment description.
# | Weight | Assigned | Due | Topic |
---|---|---|---|---|
1 | 15% | Wed. Week 1 | Sun. of Week 3 | Ray Tracing (spheres, planes) |
2 | 15% | Wed. Week 4 | Sun. of Week 6 | 2D OpenGL (flash-like animation) |
2 | 30% | Mon. Week 9 | Sun. of Week 12 | 3D OpenGL (procedural terrain) |
There will be one final which will cover the theoretical material covered in lectures and readings. The final exam will be scheduled by the University during the examination period. You must pass the final to pass the course.
Coursework | Weight |
---|---|
Assignments | 60% |
Final | 35% |
Participation (class and lab) | 5% |
©Department of Computer Science, University of Victoria, 2015.