|
|
CSC5870: Computer Graphics I (Fall 2011)INSTRUCTOR: Professor Jing Hua ( CREDITS: 3 (Course Ref. No. 16692; Section 001) PREREQUISITES: CSC 2200 or 5050, MAT 2250. (NOTE: If you do not have the specified prerequisites, please talk to the instructor to see if you are prepared for this course. The prerequisites might be waived.)
LECTURES: 325 State Hall, Tuesday & Thursday, 6:00PM - 7:20PM OFFICE HOURS: Tuesday & Thursday, 5:00PM - 6:00PM, or by appointment
LECTURE NOTES:I will put lecture notes 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.
PROGRAMMING ASSIGNMENTS:Warm-up assignment (5%) Based on Programming lecture performance Assignment 1 (25%) Assignment 2 (25%) Course ProjectGOAL:This course gives a comprehensive overview of the field of computer graphics, provides a deep understanding of the graphics pipeline, and demonstrates state-of-art techniques in computer graphics related fields. It aims to prepare students for graduate research and work in computer graphics. It will also be very fun to study this course. COURSE SYNOPSIS:This 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. REQUIRED TEXTBOOK:
RECOMMENDED (OPTIONAL) TEXTBOOKS:
OTHER SUPPLEMENTAL REFERENCES:
LECTURES: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. GRADING SCHEMES: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/C++/Java and OpenGL. You are expected to be familiar with C/C++/Java programming in this course. The two programming assignments are counted as 50% of the final grade (with 25% each). The other 50% of the final grade will be based on a written exam. Students who like more hands-on experience can also choose to do a final project (bonus 20%). There is no final exam. 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. COMPUTER FACILITIES:The programming assignments will make use of Unix and PC facilities. More information about computer facilities that you can use will be updated shortly. OPENGL PROGRAMMING GUIDE AND ENVIRONMENTS:Most of OpenGL examples appeared in various reference books are available on-line. 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. COURSE TOPICS AND ORGANIZATION:Introduction
Graphics Device and Hardware
Basic Geometry and Mathematics
Scene composition
Rendering
Image-based techniques
Advanced Topics
OTHER ANNOUNCEMENTS:Some special events such as graphics video demonstration and visitors' research presentation in graphics may be held during this semester. The instructor will make announcements here when such events happen. Other important announcements relevant to this course such as the change of assignment due dates or exam dates will also be posted here whenever necessary. Please pay attention to these announcements as we will be updating them on the daily basis. SPECIAL NOTES:If you have any specific concern regarding this course, you are welcome to talk with me in person. |