|CPSC 424||Fundamentals of Computer Graphics||Spring 2008|
While the applications of computer graphics are by no means limited to entertainment, the most familiar examples of computer-generated imagery (CGI) probably come from film, television, and video games. CGI has progressed beyond the realm of the occasional special-effect to become a supporting character (and sometimes even the lead); advances in hardware have made ever more complex and photorealistic scenes possible.
The goal of this course is to gain an understanding of the fundamental issues at the heart of 3D computer graphics, including 3D viewing and projection, illumination and color, the polygon pipeline and its components, raytracing, scene representation, and animation. OpenGL, a common graphics API, will be introduced. Time permitting, additional topics such as texture- and bump-mapping, more sophisticated lighting models, and modeling natural phenomena will be studied.
A series of homeworks and programming assignments will provide experience in these topics, and will culminate in a final project allowing students to explore a topic of interest in more depth.
|Course Web Page||
Computer Graphics using OpenGL, 3rd edition
Additional material will be handed out or posted on the course webpage.
C- in CPSC 225, or instructor permission
|Rationale & Aims||
This course, like the other 300- and 400-level computer science courses, explores a particular subdiscipline of computer science. The most visible application of photorealistic 3D computer graphics is perhaps in entertainment - movies, TV, and video games. However, there are many other areas which benefit from 2D and 3D graphics: computer-aided design, virtual reality environments (for education and training, as well as entertainment), data and scientific visualization, art, image processing, and even the graphical user interfaces which are standard these days.
This course will address aspects of rendering, modeling, and animation. Because entire courses can be taught on just one of these areas, this course will necessarily be something of a survey rather an in-depth study of any one area. The intent is to provide a solid foundation in the core terminology and concepts in computer graphics (as a basis for further study, and to facilitate the learning of a particular graphics API or package), and to push far enough into each topic to indicate what it is about, provide some glimpses of what can be achieved and how, and whet one's appetite for more exploration.
|Course Content Overview||
The topics covered in the course can be grouped into several categories.
Basic 3D Graphics: Modeling and rendering are at the core of computer graphics; modeling deals with how to specify the geometry of an object or scene, while rendering is the process of turning a geometric description of an object into an image on the screen. As a result, much of the course focuses on the basics of modeling and rendering. Topics include:
Photorealism: Often the goal of rendering is to produce images which are as realistic-looking as possible, so we will study some techniques which lead to more realistic images. Topics include:
Animation: Rendering produces a single image; animation strings together a series of images to form a scene which varies over time. The key issue in animation is how to specify this variation without explicitly describing every image in the animation sequence. Our consideration of animation will focus on methods for specifying the motion of objects, though many of the techniques are applicable to other kinds of variation.
OpenGL: OpenGL is a well-established, commonly used API for computer graphics. While there is far more to OpenGL than will be covered in this course, the key ingredients for creating 2D and 3D images with OpenGL will be studied.
Advanced Topics: Time permitting, several additional topics will be studied, including:
By the end of the course, the successful student should be able to:
Depending on the additional topics covered, the successful student should also be able to: