I ask for two reasons:
- I need a good CG community - computer-generated images (CGI) or computer-generated animation (CGA) are the preferred emphases, especially 3-D photorealistic rendering and 2-D and 3-D nonphotorealistc rendering (NPR).
I just removed opengl, because it's a mostly-dead community, and I don't have the time to revitalize it.
- I do teach an annual course in computer graphics (CIS 736, Computer Graphics, to become Advanced Computer Graphics) every spring. Its emphases are:
- The 3-D viewing pipeline: OpenGL, RenderMan and other shading engines
- Photorealism: 3-D lighting and shading, mapping (texture/shadow/bump/reflection/environm
ent mapping), global illumination (ray tracing and radiosity)
- Representations for 3-D graphics: boundary representations and spatial partitioning representations (quadtrees and octrees), binary space partitioning (BSP) trees
- Photorealism and high-performance computing (HPC)
- Animation, with entertainment and scientific visualization applications
This year I have a greater emphasis on CGA than in previous years, with a little less on visualization.
- I'm also teaching CIS 636 (Introduction to Computer Graphics) for the first time this spring. It hasn't been offered in my department since around 1998 (eight years ago).
People have been asking a lot about the relationship between CIS 636 and EECE 636, so here is a short answer:
- CIS 636 is primarily about representations (data structures) and algorithms for computer graphics, and emphasizes graphics software design and graphics programming.
- There is more emphasis in CIS 636 on 3-D graphics, especially lighting and shading, than in EECE 636.
- I cover less of: display hardware, color, low-level scan conversion aspects
- The following topics overlap: line/polygon scan conversion, derivation of viewing transformations (translation, rotation, scaling), clipping, projections - about 7-8 lectures
- I cover the following topics not covered in EECE 636: ray-tracing, constructive solid geometry, surface detail (texture mapping), real-time graphics, animation, shading languages, pixel and vertex shaders, potentially visible sets, radiosity (very briefly)
- I cover more of: cubic curves and bicubic surfaces (NURBS), rendering in 3-D game engines (anisotropic rendering, mipmapping), volume graphics, visible surface determination
The way I'm going to run it is as follows:
- 636 will have more homeworks than 736, two hour exams instead of one midterm.
- Both courses will have a lab section during one class meeting per week.
- 736 will have bigger course projects, and students will have more freedom of choice in project topics in that part of the course. More self-sufficiency on projects is also expected.
- In the first 3 weeks of the course, there will be 6 additional OpenGL lectures for 636 students that they will be required to watch on Tegrity, and be responsible for on their first hour exam. These are optional refreshers for 736 students.
- In the 6th through 11th weeks of the course, there will be 6 additional "advanced topics" lectures for 736 students that they will be required to watch on Tegrity, use in their term projects, and be responsible for on their final exams. These are optional for 636 students.