






|
|
CS 494/594
Computer Graphics
|
Fall 2009
Tue/Thu 8:10am
Claxton 205
Dr. David C. Banks
TA: A. Skinner
askinne2@utk.edu
M 10-12, W 11-2
Claxton 109A
|
|
| |
|
|
|
|
|
|
|
12/08 Tue Final Exam 8am
12/02 Wed Class Over
11/26 Thu Thanksgiving
Homework 09 Nov 18 23:59
Homework 08 Nov 04 23:59
Octahedron
10/27 Tue Midterm Exam, Ch 1-6, 14, lectures through 10/20
10/15 Thu Fall Break
10/11 IEEE VisWeek
Homework 07 Oct 21 23:59
Homework 06 Oct 07 23:59
Homework 05 Sep 30 23:59
Homework 04 Sep 23 23:59
Lecture 05
Homework 03 Sep 16 23:59
Lecture 04
Lecture 03
Homework 02 Sep 09 23:59
Homework 01 Sep 02 23:59
Lecture 01
Homework 00
Aug 26 23:59
pgm.tgz tarball
|
|
|
|
The accounts for CS 494/594 are ready for pickup in Claxton 106
Textbook: Fundamentals of Computer Graphics, 3rd Ed. (P Shirley et al)
|
|
|
|
This course is concerned with algorithms for creating
2D images of objects in 3-dimensional space.
To make objects that look real, one simulates the way light
is emitted and then reflects from objects.
The result is sampled and reconstructed on a rectangular
grid of color pixels.
Students who took this course have gone to work at
film studios (Pixar, Rhythm and Hues), game companies
(ESPN Games, Naughty Dog, Infinite Games),
research labs (NASA, Army CEWES, ORNL, Lockheed-Martin),
and technology companies (Apple, Intel, Nvidia, Microsoft).
|
|
|
|
Computer graphics at other places
Pixar
Stanford
MIT Media Lab
Caltech
UNC Chapel Hill
|
|
|
|
This course is about how to develop good software for
computer graphics. But it is fun
to experiment with writing really incomprehensible
code.
Here's a graphics program
I wrote to show that 4 lines
of C-code
can transform,
illuminate, and z-buffer a torus.
Save this code as as torus.c,
then type (in a UNIX shell) cc torus.c -o torus -lm.
Run it in a terminal window.
char G[]="^<VL8CO! ",C[80][80],*P,k,j;double sin(),cos(),c,x,z,L,M,N,i,I=.01;
main(){for(;i<629;){N=sin(i*I);c=cos(i*I);M=sin(i);L=cos(i+=I);x=c+3;z=3*M*x+
60-N;if(z>*(P=&C[k=z+5*N][j=40+x*L*9])){*P=z;c*=L+M-N/c;P[-3200]=G[k=c<0?0:
c*5];}}for(P=*C;P<=C[40];)putchar((P++-*C)%80?*P+32:10);}
It was submitted to the
Obfuscated C
Contest.
|
|
For a minimal ray tracer, see Paul Heckbert's
example.
|
|
|
|
|
|
|
|
|