Graphics Course Group Status Report


Computer Graphics Courses

Course no.

Title

Credit
Hours

Reqd (R)/
Elective (E)/
Capstone(C)

581

Interactive Computer Graphics

4

E

681

Introduction to Computer Graphics

4

E

682

Computer Animation

4

C

683*

Computer Animation: Algorithms & Techniques

4

E

781

Introduction to 3D Computer Graphics

4

E

782

Advanced Image Generation

3

E

784

Geometric Modeling

3

E

786

Computer Games: Design & Implementation

4

C

694L**

Introduction to Visualization

4

E

* - will be offered for the first time as 683 in Autumn '08;
** - Course to be piloted for the first time


1. Summary

Graphics is a popular applications area of Computer Science and one of the focus areas of the Department.

The field of Computer Graphics continues to evolve at a rapid pace, fueled mainly by the research and development taking place in industry at companies such as Microsoft, EA, nVidia, ATI, PIXAR and ILM, just to name a few. In addition, graphics is becoming a ubiquitous tool in a variety of application areas because of advances in scientific visualization, virtual reality, and the use of the web. We are constantly evolving the curriculum to keep pace with the rapid development of the field, the interests of the students, and the demands of the employers.

We have nine courses in computer graphics (counting 694L), as explained in detail below. Fitting all of the important graphics topics into these courses is a continual challenge. We currently lack regular courses in the important areas of Visualization and User Interface Design. In addition to the regular courses, the graphics faculty also offers research seminars that cover recent developments in Animation, Geometric Modeling, and Visualization. 581 is our service course that gives a wide variety of students an introduction to client-side graphics programming. We have recently received approval for a Games and Animation Track in the Individualized Option in the undergraduate curriculum. Additional details on the graphics faculty and courses can be found at:

http://www.cse.ohio-state.edu/graphics

The graphics curriculum satisfies many of the CSE and ABET objectives. As an application area, Computer Graphics is an area in which students can exercise the principles of software design, databases, algorithms, architecture, data structures, user interfaces, and programming languages, much of which students have learned in the CSE foundation courses. Typically graphics courses meet for 3 hours a week, but because of the heavy programming load, many of the courses are worth 4 credit hours. The graphics courses rely heavily on the application of various principles from areas of mathematics such as vector algebra, affine transformations, linear interpolation, perspective and parallel projections, the use of interpolating splines, geometry, and trigonometry. The advanced graphics courses use material common to Engineering such as heat transfer theory to explain radiosity, inverse kinematics to facilitate human figure animation, Fourier analysis to explain aliasing, and physically based simulations, including spring-mass systems, collision detection, rigid body dynamics, and particle systems. The graphics sequence is intimately concerned with developing the principles of physics into computational models for illumination and shading. User interface techniques are common concerns that appear throughout the graphics curriculum. Courses related to games and computer animation incorporate techniques from AI, physics, networking, and electronic media. Students who study graphics in the Department receive a good grounding in the area, are usually ready for graduate studies in graphics and are very employable.

2. Detailed Analysis

Section 2.1 is a summary of each of the individual courses in the group. Section 2.2 explains how the group is related to the rest of the CSE program. Section 2.3 explains how the group helps meet a range of EC 2000 Criterion 3 oobjectives. Section 2.4 summarizes the changes we have made to the graphics curriculum in responding to concerns raised in the last report. Section 2.5 summarizes additional changes we made to the graphics curriculum. Section 2.6 discusses continuing concerns about the graphics curriculum and our current thoughts and actions addressing them.

2.1 Summary of the courses

We have nine courses in the computer graphics area: 581, 681, 682, 683, 781, 782, 784, and 786, and 694L being prototyped for the first time. A few years ago, 784 was renumbered from 881 in order to allow undergraduate students to take the course. The first course, 581, was designed as stand-alone, or terminal, course for students wanting some practical computer graphics, but not necessarily continuing on in the theory and advanced algorithms of graphics. 681 has been redesigned to serve as the foundations or core theory course for the area, covering the basic physics, algorithms, and data structures involved in rendering images. The remaining courses focus on specific sub-areas within computer graphics including 2 capstone design courses, 682 and 786.

CSE 581: Interactive Computer Graphics is an basic computer graphics course offered to OSU undergraduate and non-CSE graduate students designed to teach useful skills and a basic understanding of the graphics pipeline when taken as a stand-alone course. This is a relatively new course designed in 2001 aimed at providing students with practical programming skills using one of the most widely used graphical APIs - OpenGL. Along with a thorough discussion of 2D and 3D algorithms such as graphics display technology, transformations, lighting and shading, texture mapping, and color theory, students are asked to perform four individual programming labs using OpenGL. In the labs, students need to construct simple graphical models and perform real-time rendering using OpenGL. They also need to design basic interface and input event handlers to provide the user with interactive control of the graphical scenes. Usually at the end of the quarter, an image/animation competition is held where students will enter their best OpenGL images and animations produced from their labs. The top three entries from the students are chosen by the entire class.

CSE 681: Introduction to Computer Graphics is a foundational course in computer graphics offered to undergraduates who have taken 581 and to graduate students. Accompanying a thorough discussion of ray-tracing algorithms, students are asked to perform four individual programming labs using C/C++ and the OpenInventor object-oriented toolkit. The ray-tracing algorithm was chosen since it forms a natural foundation to inform the students about local shading models, material reflectance properties, sampling and aliasing problems. Additionally, the students are exposed to basic tenets of scene modeling and layout. In the laboratory assignments, the students are exposed to an increasing amount of sophistication and complexity of the algorithms. They end up writing a fairly sophisticated image generator from scratch. The first assignment requires them to build a basic ray tracer that can only render spheres. The second requires the addition of local shading models and the inclusion of reflection and refraction to achieve global illumination effects. The third allows the students to consider a variety of objects and explore the power of texturing. The final and fourth laboratory assignment allows for the exploration of stochastic sampling or distributed ray tracing and the pursuit of a wide-range of projects. An informal competition is often held to judge the best renderings produced by the students in all of the assignments. In addition to the laboratory assignments, a midterm and final examination are conducted along with two non-programming homework of smaller scope.

CSE 682: Computer Animation is a capstone design course that provides professional practice experience in the design and production of a computer animation. This course was originally designed to survey a wide variety of animation techniques. Over the years, it has morphed into a course more appropriate to the capstone design paradigm. As a result, there is less time devoted to new technical information being introduced in this course. (683 is the new animation-algorithm survey course; see its description below for details.) The name of this course is changing to reflect the new emphasis: Computer Animation: Design and Practice. The course is offered once a year and is usually populated by 15-20 students; the students are mostly undergraduates along with a few graduate students. The course is organized around a single quarter-long, interdisciplinary group, animation project. During most offerings, the class is co-located with a class from The Advanced Computing Center for Art and Design (ACCAD) usually consisting of 4-5 graduate students from the College of the Arts. Project groups usually consist of 1 art student and 3-5 technical students. The students use the MAYA animation environment to create models, animate them and then render frames of the animation. The technical students are required to write MEL (Maya Embedded Language) scripts (or write a C++ plug-ins) that implement some type of algorithmically controlled motion as well as participate in the overall production of the animation. Procedural animation algorithms include particle systems, flocking behavior, rigid body dynamics, articulated linkages, and fluids. The art student in the group typically becomes the artistic director and generally manages the project, taking responsibility for most of the design, modeling, shading, and keyframe animation although technical students are free to help out. Likewise the art student is free to participate in the procedural animation. Projects are chosen by each group individually at the beginning of the quarter. During the first few classes, groups are formed and prepare concept papers, storyboards, and animatics as they present, defend, and modify their project idea. Every two weeks, an oral progress report is required from the group and the projects are judged against prescribed milestones. A finished project is judged for its technical strengths and artistic sensibilities. Class instruction includes an overview of animation algorithms and techniques, the basics of Maya, MEL, C++ plug-ins, animation production techniques, and a brief history of computer animation. Additional technical lectures are formulated around the specific procedural tasks planned for the projects. In recent years, Technical Directors from Dreamworks (in 2007) or Pixar (in 2008) have visited the class and offered critiques of the ongoing projects, giving the student an even richer practical experience.

CSE 683: Computer Animation: Algorithms and Techniques is a course that compliments 682 and to some extent 786. As 682 has evovled into more of an animation production course, there is a need to provide the technical survey that 682 was first designed as. 683 is that course. It is based on a number of short programming projects to give the students basic experience in implementing a wide variety of algorithms and techniques commonly used in computer animation and computer games including: path following with ease-in/ease-out control and banking, various inverse kinematics algorithms, particle systems, spring-damper-mass systems, rigid body dynamics, flocking, and crowd behavior.

CSE 781: Introduction to 3D Image Generation is an advanced course focused on real-time rendering of polygonal models using OpenGL. It is a natural extension to 581. The target student population for this course are advanced CSE undergraduate and CSE graduate students who have a solid background in basic graphics algorithms such as transformations, projections, lighting and shading, and OpenGL programming. In the past, about 70% of the students in the class were graduate students and 30% were undergraduates. A common theme for the topics discussed in this course is to add realism to the final rendered images. The algorithms discussed in the course include shadows, anti-aliasing, advanced texture mapping, occlusion culling, non-photorealistic rendering, shaders, and GPU programming. Students in this course need to complete three labs, each of which involves a substantial amount of programming, and a final project for which students can form teams. Besides the standard OpenGL features, students will learn advanced programming of graphics hardware and many of the extensions to OpenGL that are continually being developed (and later added to the standard).

CSE 782: Advanced Image generation is a continuation of 681. CSE undergraduate students and graduate students (some from other disciplines) often enroll in this course. The methods of ray-tracing are studied further and a larger range of topics are examined. The emphasis is on photorealistic rendering. Monte-Carlo methods (including path tracing and photon map methods) form the staple of algorithms that allow the rendering of large complex scenes and of participatory media. Other topics include tone reproduction operators to deal with high dynamic range images and acceleration techniques based on spatial sub-division. The course relies on the software PBRT (physically based ray tracer). PBRT allows users to practice a dialect of literate programming. Access to an elaborate set of C++ classes and methods are provided through a literate programming interface. Students enrolled in the course are required to complete four laboratory assignments. In lieu of the final exam, they also complete a final project. The first laboratory assignment allows the student to gain familiarity with PBRT. The second laboratory assignment requires the students to render a complex model while exploiting spatial sub-division methods to accelerate ray-tracing. The third assignment when completed will inform the users of the power of tone reproduction operators. Students are allowed to choose from a list of options for the final laboratory assignment. The choices are mostly in the topic of Monte-Carlo algorithms. For the final projects, the students are given much latitude. A project suggested by the instructor can be pursued. Or, the students can choose a project that matches their interest. It should be noted that given the complexity of the projects and assignments, teams of two students are allowed to complete all programming tasks. The midterm exam requires the discussion of important topics and the students are not allowed to co-operate.

CSE 784: Geometric Modeling surveys the representations, generative procedures, manipulative operations, and data structures important in modeling geometric objects. Basic curve design techniques such as Bezier, B-splines and surface design techniques such as Bezier, B-splines, NURBS, subdivisions are covered. Polyhedral construction and manipulations including extrusion, revolution, sweep operations, Euler operations, Boolean operations, lofting are surveyed and implemented in the laboratory work. Advanced materials such as triangulations, reconstructions and simplifications are discussed. The course includes three labs, first one on Bezier and B-spline curve designs, the second one on polyhedral constructions using the result of the first lab and the third one on surface designs using subdivision techniques.

CSE 786: Game Design and Development Project is a capstone design course that provides professional practice experience as a team-based development of a quarter long project writing a complex computer game. The course is offered once a year, usually populated by 15-25 students, mostly undergraduates with a few graduate students. The course is organized around a single quarter-long, interdisciplinary group project. An Agile software approach is used with four deadlines or timeboxes due at regular intervals. The first version of the student's game provides a basic skeleton and has a fairly rigid specification. Further timeboxes are scoped out by the student teams before the beginning of each timebox. The students are expected to integrate three-dimensional graphics, three-dimensional sound, artificial intelligence, finite-state machines, in an event-based architecture. Students are grouped orthogonally into technology teams which are expected to research a different technical aspect of computer games and provide a technical presentation to the class. As part of their writing requirement, students are expected to develop and update a game design document throughout the quarter for each game group.

CSE 694L: is a course that explores data and information visualization as applied to engineering and medicine. It will be offered at the undergraduate level for majors in computer and computational science and at the graduate level for majors in the sciences and engineering. Additionally, this course will be offered as an elective towards a minor in Computational Science offered under the auspices of The Ralph Regula School of Computational Science. The content will require students to understand the capabilities of current visualization systems, acknowledge the role of the perception and especially the human visual system, and familiarize themselves with various visualization algorithms for scalar, vector data and data derived from sources other than physical systems. The latter set of data will help familiarize the students with newer techniques of information visualization. Case studies from computational fluid dynamics, medical imaging and expression data will be used in class.

2.2 Relation of the courses to the rest of the CSE program

Computer Graphics is a very popular elective area. As an application area, students can exercise the principles of software design, databases, algorithms, data structures, and programming languages they have learned in the foundation courses (1a). All of the graphics courses require at least a fair amount of programming and thus require at least basic programming skills. Currently the prerequisite chain within the graphics courses is fairly flat. Courses above 681 require 681. 681 requires 581 or grad standing. 581 requires basic programming. 781 has a prerequisite of 560 to ensure a more solid foundation in programming. 682 and 786, as capstone design courses, require 560 and 601. None of the graphics courses are prerequisites to any courses outside of the graphics curriculum.

2.3 Relation to program objectives

The courses in this group play a key role in meeting overall program objectives. As an application area, Computer Graphics is an area in which students can exercise the principles of software design, databases, algorithms, data structures and programming languages which they have learned in the foundation courses. 581 and 781 utilize a pervasive standard in OpenGL that quickly allows the user to develop full-functioning programs and results. The courses also stress the interaction with the program and user interface elements to control the various graphical elements, including the camera. 681 delves into spatial databases and partitioning, as well as hierarchical representations. Both 581 and 681, as well as all of the graphics courses, are heavily project oriented and students heavily exercise the design and implementation of practical systems, meeting criteria 3a, 3b, and 3c.

The graphics sequence is intimately concerned with developing the principles of physics into computational models for illumination and shading. Computer Graphics relies heavily on basic mathematical and scientific principles. 581 depends on matrix manipulation, clipping procedures, 2D and 3D linear mappings, affine transformations, perspective projections and perspective transformations. 681 uses vector algebra, line intersection, polygon intersection, normal vector calculation, dot product, cross products, trigonometric identities, geometric arguments, ray tracing, complex spatial data organization and processing, and hierarchical data structures. 681 covers the basic illumination models including diffuse and specular illumination, reflectance, and refraction. 683 is concerned with physically based simulation and resulting issues with numerical integration techniques. 782 includes radiosity (heat transfer theory), photon transport and anti-aliasing (Fourier analysis). 784 deals with interpolation properties and surface reconstruction from discrete samples. These contribute heavily to meeting Criterion 3a.

User Interface design issues are a common theme which run through the graphics curriculum. 581 provides an introduction to the use and design of graphical user interfaces and how information can be effectively communicated from user to system. In addition, various input devices are surveyed in 581. In 784, students are also required to design their own graphical interfaces to drive their own geometric modeling packages which they develop in the course. While a user interface is stressed, rather than good user interface design and principles, the courses provide some measure towards Criteria 3c and 3e.

The complexity of the programming assignments seems to encourage more student interaction as students seek out help from fellow students. 682 and 786 are relatively new capstone courses, satisfying the goals of team-oriented design. 682 is typically taught in conjunction with faculty and students from the School of Art through the graphics faculty’s close relationship with the Advanced Center for Computer Art and Design (ACCAD). This provides a nice interdisciplinary teamwork and a capstone experience that more closely mimics the computer animation industry. 786, in addition to a group project organization, has orthogonal teams that report back to the class on technology common to all groups. Both classes require bi-weekly progress reports of the student groups as they work towards a 10-week final project. Organization and well-thought out design are critical during these courses. 781 and 782 also have team projects in which the students not only work together but must come up with their own design and research issues for their final projects. These courses heavily meet the objectives in Criteria 3d, 3f, and 3g.

As a result of increased bandwidth of the Internet, cheaper processing power and storage devices, and more sophisticated display devices, computer graphics is becoming part of the computing infrastructure. As a consequence, it is becoming more important to industry in everything from web pages to Hollywood films to interactive kiosks. The graphics curriculum in the Department covers the basics of graphics very thoroughly. Students who study graphics in the Department receive a good grounding in the area, are usually ready for graduate studies/research in graphics and are very employable. Evidence for this is anecdotal in the successful employment of many of our graduates in the graphics industry as well as several students continuing on for advanced studies at Ohio State and other institutions. The project-based approach in the graphics courses also provides the students with additional materials for a portfolio, which can aid in the discussions and possible interviews. The continual updating of the courses is critical to staying on this leading edge, particularly for a very rapidly changing field such as computer graphics. Finally, a key ingredient to continued success is the networking between our alumni and colleagues working in the field and our students. This is supported through invited talks and recruiting events. These activities contribute to meeting Criteria 3h, 3i, 3j, and 3k. We will continually strive to satisfy these criteria through refinement of the curriculum, and continued interaction between alumni and students.

Engineering programs must demonstrate their graduates have:

a. an ability to apply knowledge of mathematics, science, and engineering
b. an ability to design and conduct experiments, as well as analyze and interpret data
c. an ability to design a system, component, or process to meet desired needs
d. ability to function on multi-disciplinary teams
e. an ability to identify, formulate, and solve engineering problems
f. an understanding of professional and ethical responsibility
g. an ability to communicate effectively
h. the broad education necessary to understand the impact of engineering solutions in a global and societal context
i. a recognition of the need for, and an ability to engage in life-long learning
j. a knowledge of contemporary issues
k. an ability to use techniques, skills, and modern engineering tools necessary for engineering practice.

This group of courses strongly contributes toward meeting ABET criteria 3a, 3c, 3g (with 682 and 786) and 3k; moderately towards criteria 3e, 3i and 3j; and to a limited extent 3b, 3d and 3h. Results of the various software engineering and development assignments attest to meeting criteria 3c and 3k. Section 2.3.1 explains how 681, 683, 781, 782, and 784 are heavily focused on the mathematics and underlying physics in illumination, as well as in dynamics (movement) to meet criteria 3a. Section 2.3.1 also explains in detail the capstone courses (682 and 786) outcomes that contribute towards criteria 3g. All of the courses stress a progression from understanding the basic mathematics and physics towards algorithms and finally towards efficient implementations either in software or under the constraints of the graphics hardware and APIs.

The contributions that these courses make toward meeting various ABET objectives are summarized in the following table:

Summary of Relation to ABET Criterion 3 Outcomes

CSE Course

ABET
3a

ABET
3b

ABET
3c

ABET
3d

ABET
3e

ABET
3f

ABET
3g

ABET
3h

ABET
3i

ABET
3j

ABET
3k

581

X


XXX


XX




XX

XX

XXX

681

XXX

X

XXX


XX




XX

XX

XX

682

XXX

X

XXX

XX

XX

X

XXX

X

XX

XX

XXX

683

XXX

X

XX

 

X

 

X

 

X

X

XXX

781

XX

X

XXX


XX


X


XX

XX

XXX

782

XXX


XXX


XX


X


XX

XX

XX

784

XXX


XXX


XX




XX

XX

X

786

XXX

X

XXX

XX

XX

X

XXX

X

XX

XX

XXX

694L

XXX

XXX

X

XX

XX

 

X

XX

X

X

XXX

2.4 Responses to concerns raised in the previous report

We have responded to most of the concerns raised in the previous report, to wit:

2.5 Additional major changes since the previous report

In addition to the changes that were prompted by the last report, we (the graphics faculty) have continued to develop a more robust curriculum and worked to make it more attractive to the undergraduate student population in order to increase enrollment. These changes include:

2.6 Continuing Concerns

There are several continuing concerns that we periodically revisit in our graphics faculty meetings. We are currently working to address a few concerns (low enrollement, the content of the 681-782 sequence, no visualization course). Several concerns stem from conditions that we are monitoring (course proliferation, 581 API, lack of OpenGL knowledge in some 781 students, no user interface course); we are ready to spring into action when necessary. The concerns in more detail are:

3. Conclusions

The Computer Graphics group is a popular application area for the CSE program and serves as a testbed for the mainstream programming concepts and techniques taught in the spine of the curriculum. The courses, as they currently stand, are doing very well; students are generally satisfied with the courses, we are placing students in with top-notch employers and graduate programs in the field and there is strong faculty commitment to the courses.

Course

Coordinator

Recent Instructors




581

Shen

Crawfis, Machiraju, Parent, Shen

681

Machiraju

Machiraju, Parent, Wenger

682

Parent

Machiraju, Parent

683

Parent

Parent

781

Shen

Crawfis, Shen

782

Machiraju

Machiraju, Parent

784

Dey

Dey

786

Crawfis

Crawfis

694L

Machiraju

N/A

People involved in preparing report: Roger Crawfis, Tamal Dey, Raghu Machiraju, Rick Parent (contact person), Han-Wei Shen, Yusu Wang, Rafe Wenger

Date of report: May, 2008