Text Box:  
Class logo:  Broadway (2007)

 

Comp 360

Intro to Computer Graphics

 

 

 

 

 

 

Overview      Comp 360   Class information   Class details   Lectures    Labs/Homework

 

Overview

The good news is that Computer Graphics is fun: fun to look at, fun to use, and when done properly even fun to program and debug. There are also many fun applications of Computer Graphics, ranging from video games, to animated cartoons, to full length feature movies. If you learn Computer Graphics and Geometric Modeling, you might even get a job in a field where you can have lots of fun. Art and architecture, biomedical imaging, computational photography: whatever you can see, or whatever you imagine you can see, you can design with Geometric Modeling and you can display with Computer Graphics.


Broadly, the major themes of Computer Graphics can be divided into three categories: graphics, modeling, and mathematical foundations. Graphics consists of lighting and shading -- reflection and refraction, recursive ray tracing, radiosity, illumination models, polygon shading, and hidden surface procedures. Modeling is the theory of curves, surfaces, and solids -- planes and polygons, spheres and quadrics, algebraics and parametrics, constructive solid geometry, boundary files, and octrees, interpolation and approximation, Bezier and B-spline methods, fractal algorithms and subdivision techniques. The mathematical foundations are mostly linear algebra, but from a somewhat idiosyncratic perspective not typically encountered in standard linear algebra classes -- vector geometry and vector algebra, affine spaces and Grassmann spaces, affine maps and projective transformations, matrices and quaternions.


Unlike some Graphics courses at other universities, this course focuses on more advanced graphics, modeling, and mathematical methods -- ray tracing, polygon shading, radiosity, fractals, freeform curves and surfaces, vector methods, and transformation techniques. Low level graphics algorithms such as line drawing, polygon filling, and clipping are bypassed to give more time and space to high level graphics techniques such as ray-tracing, polygon shading, and radiosity.


I have tried to write lecture notes for this course that are exciting to read without being superficial, rigorous without being pedantic, and innovative without being idiosyncratic: I have kept the notes for each lecture relatively short in the expectation that students will read them in full. Lots of exercises and projects are included to flesh out the text. Your job in this class will be to read and absorb the lecture notes, and to work on a few fun projects that will give you a feel for the excitement and the power of Computer Graphics. We hope you have lots of fun and that you learn a lot while enjoying this class.

 

Text Box:  

Concept art from Bomberman 3D (2005)

Comp 360

This class will teach the fundamental techniques and mathematical background of computer graphics. The topics of this class include 2D fractals, affine/projective transformations, ray-tracing, shading, radiosity, and curves, surfaces and solids. These concepts form the backbones of modern-day graphical applications in computer gaming, computer animation, and scientific visualization.

 

Class information

 

Prerequisites:  You should be comfortable with the following concepts.

 

Text Box:  
UI sketch from McGee/Broadway (2007)Time and Location:  TTh 10:50-12:05, DH 1046

 

 

Instructor: 

Dr. Ron Goldman

Duncan 3116

Office Hours: TTh 2:30-3:30pm

rng@cs.rice.edu

 

Teaching assistant: 

Powei Feng

Duncan 3114

Office Hours: MW 2:00pm-3:30pm, or by appointment

powei.feng@rice.edul

 

Class details

Lecture Notes

Lecture notes will usually be posted on the web page at least one week BEFORE each lecture. Class Discussion will be informal. You should answer all the questions on the content of each chapter. Preparation is crucial. You should read the text BEFORE coming to class and submit a brief written summary with questions you have about the chapter. Attendance is MANDATORY. One point will be taken off of your final grade for each class missed without a valid excuse or each class attended without sufficient preparation.

Written Summary

The purpose of the written summary is to prepare you for the class discussion. The summary should be one typed page which can consist either of bullet points or general text. The summary should cover:

Required Labs

There will be 4 programming assignments (or labs), each lasting between 2 and 3 weeks. You will work on these assignments in pairs. You may choose your partner, but you must work with a different partner on each lab. Graduate students must work with undergraduates on at least 2 of the 4 labs. If you have trouble finding a partner, send your labby an email and we'll try to pair you up.

Labs must be implemented in C or C++, using the OpenGL API for drawing. There will be a tutorial on C++ and OpenGL during the first week of classes (either Thursday or Friday in Symonds II at 7:00PM).

The labs involve a fairly significant amount of work: we estimate 0.5 to 1.5 hour of coding per person per day. This means over 80 hours of coding over the 15 weeks of the semester.

NOTE: You will need a PC Password for Symonds II (talk to the labby for instructions on obtaining a password).

Grading

Late Policy

If you submit a programming lab late, your grade will be adjusted as follows:

(Late Grade) = (On-time Grade) - (2 * 2^(H/24))

where H is the number of hours after the deadline that the lab was submitted. You are aollowed to consult different sources, however, copying code is considered cheating and will not be tolerated.

Honor Code Policy

Exams are pledged, and you should discuss them with nobody except Dr. Goldman until everyone in the class has finished.

Once again you are encouraged to consult with each other on the programming projects, but sharing or copying code between groups is forbidden.

Disabilities

Any student with a disability requiring accommodations in this course is encouraged to contact Dr. Goldman after class or during office hours; all discussions will remain confidential. Additionally, students will need to contact Disability Support Services in the Ley Student Center.

References

All texts listed above are on reserve at Fondren Library.

Online References

Lectures

Date Topic Resources
8/26 Introduction
8/28 Turtle Graphics Lecture, Slides
9/2 Turtle Fractals Lecture
9/4 Fractals cont. Lecture
9/9 Affine Transformations Lecture
9/11 Affine Graphics Lecture
9/16 Iterated Function Systems Lecture
9/18 The Fixed Point Theorem Lecture

Labs/Homework

Due Date Assignment Resources
9/1, Monday Lab 0: Learning OpenGL Base Code, Tutorial 1
9/15, Monday Lab 1: Turtle Graphics Base Code


This page is maintained by Powei Feng