This entry-level
graduate course will focus on mathematical concepts, theory, and tools,
geometric (and graphical and visual) modeling techniques, and fundamental
algorithms, that are relevant to graphics, visualization, and other visual
computing areas. The goal is to provide graduate students a comprehensive
knowledge on geometric concepts and demonstrate the significance of these
mathematical tools and geometric algorithms in graphics and relevant areas.
Specific emphasis is on a "hands-on" approach to both understanding
of geometric theory/algorithms and the effective use of geometric techniques. Course
topics include geometric algorithms for both polygonal and curved objects,
theory of parametric and implicit representations, modeling methods of curves,
surfaces, and solids, in-depth spline theory, rudiments of wavelet theory and
multi-resolution shape representations, and differential geometry fundamentals.
If time permits, we will also cover general data and material modeling
techniques, novel spline/subdivision schemes and their effective computation,
reverse engineering, and shape deformation, as well as other sophisticated
topics and latest advances in the field (that are all research-oriented and
representing the most sophisticated ones). Throughout the course, we will
emphasize the application relevance in graphics, visualization, animation,
digital geometric processing, medical imaging analysis, and human-computer
interface.
1. Mathematical skills in calculus and linear
algebra
2. Undergraduate graphics or visualization
course
REFERENCES:
THERE IS NO SINGLE TEXTBOOK FOR
THIS COURSE! MATERIALS FROM THE FOLLOWING RELEVANT REFERENCE BOOKS WILL BE
PRESENTED!
1.
Curves and Surfaces for Computer Aided Geometric
Design: A Practical Guide Fourth Edition,
2. Geometric Modeling, Second Edition, Michael E. Mortenson, John Wiley & Sons, January 1997.
3. The NURBS book, Second Edition, Les A. Piegl and W. Tiller, Springer Verlag, January 1997.
OTHER BOOKS:
1. Computer Graphics with OpenGL, Hearn and Baker, 3rd Edition, Prentice Hall, 2003.
2. Computer Graphics: Principles and Practice, James D. Foley, Andries van Dam, Steven K. Feiner, and John F. Hughes. 2nd edition, Addison Wesley, 1990.
3. An Introduction to Splines for use in Computer Graphics and Geometric Modeling, R.H. Bartels, J.C. Beatty, and B.A. Barsky, Morgan Kaufmann Publishers, Inc., 1987.
4. Computational Geometry for Design and Manufacture, I.D. Faux and M.J. Pratt, Ellis Horwood, Chichester, England, 1979.
5. Geometric and Solid Modeling: An Introduction, C.M. Hoffmann , Morgan Kaufmann Publishers, Inc., San Mateo, CA, 1989.
6. Differential Geometry of Curves and Surfaces, M.P. do Carmo, Prentice--Hall, Englewood Cliffs, NJ, 1976.
7. Introduction to Applied Mathematics, G. Strang, Wellesley Cambridge Press, 1986.
8. Numerical Recipes: The Art of Scientific Computing, W.H. Press, B.P. Flannery, S.A. Teukolsky, and W.T. Vetterling, Cambridge University Press, Cambridge, UK, 1986.
9. Wavelets for Computer Graphics: Theory and Applications, E.J. Stollnitz, T.D. DeRose, and D.H. Salesin, Morgan Kaufmann Publishers, July 1996.
10. Texturing and Modeling, Second Edition, David S. Ebert, F. Kenton Musgrave, Darwyn Peachey, Ken Perlin, and Steve Worley, Morgan Kaufmann Publishers, June 1998.
11. Warping and Morphing of Graphical Objects, Jonas Gomes, Lucia Darsa, Bruno Costa, and Luiz Velho, Morgan Kaufmann Publishers, October 1998.
THE FOLLOWINGS ARE RELEVANT
JOURNALS:
1. Computer Graphics (Proceedings of ACM SIGGRAPH)
2. IEEE Computer Graphics and Applications
3. ACM Transactions on Graphics
4. IEEE Transactions on Visualization and Computer Graphics
5. Computer-Aided Design
6. Computer Aided Geometric Design
7. Computer Graphics Forum (Eurographics
Journal)
8. The Visual Computer
9. Graphical Models
10. and others!
LECTURES:
Primary material of this course will come from the recommended reference books listed above. Additionally, material from recent articles or other 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 lecturing notes closely!
NO MIDTERM TESTS! NO FINAL EXAMS! 100% ON PAPER
READING/PRESENTATIONS AND PROJECTS!
Specifically, throughout this
semester, each student is expected to study 10 papers!! Among them, each should
present two papers in class (paper presentation), and work on a course project
which is based on one paper (from your paper pool of 10 papers). Please note
that, the course project paper should be different from the two papers that you
are presenting in the class. Once
again, the course requirements include reading/presentation and course project !!!
This course emphasizes a ``hands-on'' approach to both the better understanding of geometric theory/algorithms and the effective use of geometric techniques. Each student is required to read a set of research papers (10 papers total throughout the semester), present two paper in the class during the paper presentation week (right now it is set to be on November 18 and 19) and complete one course project. As programming practice exercises, a student might choose to practice on 1-4 programming assignments for extra, bonus points (up to 20% of the entire grade for bonus points). Paper reading and paper presentation require students to build up both breadth and depth knowledge for the course, and the course project as well as the additional (bonus) programming assignments require students to do programming using graphics packages to further improve their programming skills. The assignments/project can be done in C and OpenGL. You are expected to be a competent programmer in C (or C++) in this course. The course grading schemes are breaking down as follows:
· Paper reading and literature review technical report (10 papers, throughout the semester, technical report due November 21, Friday, at 11:59pm, 8-10 pages long): 20%
· Paper presentation (November 18 and 19): 20%
· Class attendance and asking questions during office hours: 10%
· Course project: 50%
In addition, there are extra, 20% bonus points for programming assignments!!! For the programming assignments (bonus), I am making four assignments available to all students here (see below), each assignment is worth 5% of the entire grade!!! It is totally up to students themselves to decide if they would like to do any of these programming assignments, since they are extra, bonus points!!!
The work submitted should be your own! Late submission 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 massive catastrophe, which will be announced by the instructor. Consider the possibility that machine failure may happen and then contention for machines will occur, my advice to all of you is that please start the assignments/project as early as possible!
All graduate students should have access to the Grad PC Lab (located in Rm.1239). The version of OpenGL in the Grad PC Lab is V1.1, the same as the TransLab. If you don't have access to the lab, please talk to the instructor and email to root requesting the (grad) course account.
Lecture notes of this course will be put here into many small files. Please note that, the following files are course lecture notes from the previous semesters. I am providing them here mainly for your convenience! Currently available files (gzip-ed postscript files) include: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, Please note that, besides the above notes, I also created supplementary material relevant to the course. These extra notes can be roughly classified into the following topics so far: (1) Nonuniform B-spline formulation and B-spline discretization, (2) The fundamentals of physics-based modeling and mass-spring system formulation (which is relevant to your projects if you are interested in physics-based modeling, note that, several project suggestions are also included here), (3) Triangular Bezier patches and their properties (the detailed formulation and properties can be found from pages 38 -- 47 of the paper: A survey of curve and surface methods in CAGD by W. Bohm et al.), (4) Implicit functions and some examples, Their corresponding pdf files are here: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, Non-uniform B-splines, mass-spring system, triangular Bezier splines, implicit functions.
In addition to the above files, I am also adding some new lecture notes here. Please note that the S2009 version of CSE530 is different from the S2006 one and the ones in the previous years, therefore, I will add new notes here along the progress of this course. If you are interested in learning more about geometric foundations, physics-based simulation, and their applications for visual computing, you are welcome to attend our seminar: CSE665, Seminar on Geometric Modeling and Physics-Based Simulation and CSE621: Physics-based Modeling for Visual Computing (more technical papers and notes are available there).
The following lecture notes are NEW ones for this semester in the form of ppt files and pdf files:
fundamental-techniques-for-graphics-visualization,
cse530-geometry-fundamentals (parametric splines, implicit functions, solid modeling),
from discrete geometry to continuous geometry
subdivision curves,
surfaces, and solids
physics-based
geometric modeling and CAGD
PDE-based geometric modeling and applications
COMPUTER FACILITIES:
The programming assignments will make use of Unix and PC facilities at Department of Computer Science. In particular, all graduate students should have access to the Grad PC Lab (located in Rm.1239). The version of OpenGL in the Grad Lab is V1.1, the same as the TransLab. If you don't have access to the Lab, please talk to the instructor and email to root requesting the (grad) course accounts. Students with access to PCs at home and/or their own laptops with the compatible computing environment will likely be able to work on some or all of the assignments and the course project at home and/or give demos from their laptops.
OPENGL PROGRAMMING GUIDE AND
ENVIRONMENTS:
In previous years, NT Transaction labs both upstairs and downstairs (in Computer Science Building) were available for CSE530 students, however, this year students in CSE530 will have to move to Grad PC Lab to conduct programming assignments and course projects. Meanwhile, if you can access Transaction Lab, you should be able to access some OpenGL examples (which should help you get familiar with OpenGLin case you knew little about it before) stored in its file system. Most of OpenGL examples appeared in various reference books are available on-line, generally speaking. The system manager of our Transaction lab has kindly managed to download OpenGL examples from several publically-available websites and put them under appropriate directories in order to help students to access OpenGL examples electronically and easily. Please note that, these examples are located in H:\cse328\pkg directory (this is because that the instructor also teaches CSE328 every fall semester). In general, they come from different sources. In particular, the directory: "H:\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:\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:\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. In previous years, examples were also available in `H:\CSE530\OpenGL Examples'. These examples contain source codes which have been downloaded from Edward Angel (who is the author of a book entitled : Interactive Computer Graphics A Top Down Approach with OpenGL)'s web site. But, the directory is most like moved to elsewhere. Note that, the instructor has talked to our system manager to see if it is possible to also copy the OpenGL source codes from the above directories to the appropriate places in our Grad. PC Lab soon. Please stay tuned about this matter. I will update the links as soon as possible.
Please note that, the current OpenGL version in the NT translab is V1.1 only! 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://reality.sgi.com/opengl/glut3/gluts.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 important information about Version 1.1 are available at http://www.sgi.com/Technology/openGL. Other detailed information about OpenGL and its technical resources (including programming books) can also be found from SGI OpenGL home website
PROJECT
PLAN AND COURSE DEADLINES:
· Study a set of relevant papers (10 papers, throughout the semester), literature review technical report (8-10 pages long, due November 21, Friday, at 11:59pm)
· Submit your own one-page course project proposal (October 1, Wednesday).
· Implement basic functionalities and user interface before the mid-term check point (November 5, Wednesday).
· Paper presentation week (November 18 and 19, Tuesday and Wednesday).
· Oral presentation and final project demonstration in class (at the end of the semester, right now it is set on December 7 & 8).
· Final course project technical report (at the end of the semester, right now it is set on December 5, Friday, at 11:59pm)!
Please note that, individual project or group project
ARE allowed!
The entire course project (50%) is further breaking down as follows for its grading scheme (they add up to 50%):
· One-page project proposal outlining the project plan: 5%
· Mid-term demo with preliminary results: 10%
· A working system + software codes: 20%
· Final course project technical report at the end of the semester: 7%
·
Oral
presentation and final demo in class at the end of the semester: 8%
In addition, Programming Assignments for Bonus points (20% total), these Programming Assignments are completely optional, but in order to receive bonus points you will have to complete them before these deadlines!
·
Assignment one
(5% bonus): due September 22, MONDAY!
·
Assignment two
(5% bonus): due October 20, MONDAY!
·
Assignment three
(5% bonus): due November 10, MONDAY!
·
Assignment four
(5% bonus): due December 1, MONDAY!