SPECIAL ANNOUNCEMENT: Please NOTE THAT, if you have satisfied the prerequisites (CSE219 and CSE220, or permission of instructor). Anyone with the prerequisites is invited to register. Please see Professor Hong Qin in his office during his office hours if you are interested in registering for this course for the spring semester. If you miss the office hours, please send emails to Professor Hong Qin in order to make an appointment!
This undergraduate course will cover the basic concepts, mathematical foundations, fundamental theory and algorithms, software techniques, hardware and system issues, and application examples of computer graphics. The main topics will center on modeling and rendering. Finally, if time permits, we shall give a brief overview of various advanced graphics research topics.
Primary material of this course will come from the required textbook. In addition, material from recent articles or relevant reference books will be presented. Numerous slides and video tapes on graphics will be shown. Students are advised to attend the class and follow the lecture notes closely.
This course emphasizes a ``hands-on'' approach to both the better
understanding of graphics theory/algorithms and the effective use of graphics
techniques. Each student is required to complete assignments. The assignments
involve both analytic problems as well as programming projects using parts of
graphics packages. The programming projects will be done in C and OpenGL. You
are expected to be a competent programmer in C in this course. The assignments
and projects are counted as 40% of the final grade. The other 60% of the final
grade will be based on a midterm exam (20%) and a final exam (40%). All the
problem sets, projects, and exams are mandatory. All assignment submissions
will be due at the beginning of the class.
The work submitted should be your own. Late assignments will be penalized 25%
per day. Furthermore, because a primary goal of the course is to teach
professionalism, any academic dishonesty (e.g., plagiarism) will be viewed as a
serious academic offense, thus as an evidence that the above goal has not been
achieved and will be grounds for receiving a grade of F. (Please refer to CEAS
Procedures and Guidelines Governing Academic Dishonesty (1/81) for details.)
Machine failure should not be a reason to delay assignment due dates unless
there is a major catastrophe, which will be announced by the instructor.
Considering the possibility that machine failure may happen and then contention
for machines will occur, my advice to all of you is that you please start the
projects as early as possible.
The programming assignments will make use of Unix and PC facilities. In particular, we will use the Windows NT Transaction lab. at Department of Computer Science (Rm. 2114 and Rm. 2126). You should be able to access the website of NT Transaction lab for frequent asked questions about the lab facilities and other relevant programming issues. You should have a NT account at CS Department. Students with access to PCs at home with the compatible computing environment will likely be able to work on some or all of the assignments at home.
Our system manager has already set up your account. Please refer to this document that explains how to get your user ID. You
can also find a similar document at the website of NT Transaction lab. If
you still have problems in accessing our facilities in the Transaction lab,
please email to
NT Transaction lab on the second floor of Computer Science Building is available for CSE 328 students to conduct their course assignments and projects. If you need a NT account, please talk to the instructor! Most of OpenGL examples appeared in various reference books are available on-line. The system manager of our Transaction lab has managed to download OpenGL examples from several publicly-available websites and put them under appropriate directories in order to help CSE 328 students to access OpenGL examples electronically and easily. Please note that, these examples are located in H:\courses\cse328\pkg directory. In general, they come from different sources. In particular, the directory: "H:\courses\cse328\pkg\Opengl examples\Edward Angel second edition" contains all the examples and source codes that have been downloaded from Edward Angel (who is the author of a book entitled : Interactive Computer Graphics A Top Down Approach with OpenGL Second Edition)'s web site (the ftp site is ftp.cs.unm.edu under pub/angel/BOOK in case you are interested in getting more information regarding his book and examples in the first edition, etc.); the directory: "H:\courses\cse328\pkg\Opengl examples\sgi\opengl11" contains OpenGL examples and source codes appeared in the book (OpenGL Programming Guide Version 1.1); the directory: "H:\courses\\cse328\pkg\Opengl examples\sgi\opengl12" contains OpenGL examples and source codes appeared in the book (OpenGL Programming Guide Version 1.2). The ftp site of SGI OpenGL examples is ftp://sgigate.sgi.com/pub/opengl/, in case you are interested in getting more information.
Please note that, the current OpenGL version in the NT translab is V1.1! Other important and relevant software programming resources currently available at the NT Transaction lab include: Windows NT 4.0, Microsoft Internet Explorer 5.5, Netscape Communicator V 4.7, Microsoft Visual C++ 6.0 SP3, Microsoft Office 2000 SR-1, and much more! For details, please consult with the website of NT Transaction lab.
There are many websites that can help you to be familiar with OpenGL programming techniques in particular and computer graphics technology in general. One great place for all sorts of general information is the Official OpenGL Web Site: http://www.opengl.org. This Website contains software, documentation, FAQs, and news! It is a good place to start any search for answers to your OpenGL questions. Please note that the two OpenGL programming books (A. Programming Guide; B. Reference Manual) contain many sample examples of OpenGL. These sample codes along with Mark Kilgard's OpenGL Utility Toolkit (GLUT) can be obtained freely via anonymous ftp (file-transfer protocol): ftp://sgigate.sgi.com/pub/opengl/opengl12.tar.Z or ftp://sgigate.sgi.com/pub/opengl/opengl12.zip, depending on which decompression/extraction tools you are currently using in your computer. For the Windows/NT/X version of GLUT, you can check out the following Web page for the details: http://www.xmission.com/~nate/glut.html. In addition, Nate Robins of University of Utah has written a suite of tutorial programs that demonstrate fundamental OpenGL programming concepts and techniques. You can get the source code for these tutorials at: http://www.cs.utah/edu/~narobins/opengl.html. The above Websites mostly contain information regarding OpenGL Version 1.2. For OpenGL Version 1.1, the source code samples can be found via anonymous ftp too: ftp://sgigate.sgi.com/pub/opengl/opengl/opengl1_1.tar.Z, to uncompress and extract the files from this tar archive, please use the following commands: umcompress opengl1_1.tar, tar xf opengl1_1.tar. Other detailed information about OpenGL and its technical resources (including programming books) can also be found from SGI OpenGL home website.
This course syllabus is also available on-line at the CSE328 course website. The instructor is working hard to put all the course material on the course website! Lecture notes of this course will be divided into many small files. I will put them here along the progress of this course. Note that these notes are intended only as a guide. I will be presenting additional material in class (figures, slides, etc.) not contained in these files.