Graphics Course Group Status Report


Computer Graphics Courses

Course no.

Title

Credit
Hours

Reqd (R)/
Elective (E)

581

Interactive Computer Graphics

4

E

681

Introduction to Computer Graphics

4

E

682

Computer Animation

4

E

781

Introduction to 3D Computer Graphics

4

E

782

Advanced Image Generation

3

E

784

Geometric Modeling

3

E



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, 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 have evolved the curriculum continuously to keep pace with the rapid development of the field, the interests of the students, and the demands of the employers.

We have a six courses in computer graphics, as explained in detail below. Fitting all of the important graphics topics into these courses is a continual challenge. The graphics faculty also offers research seminars that cover recent developments in Animation, Geometric Modeling, and Visualization. Developing new advanced courses on these topics is a priority of the graphics faculty. 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, data structures, user interfaces, and programming languages which they have learned in the foundation courses. 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, computational science simulations, including spring-mass systems, collision detection and particle systems and Fourier analysis to explain aliasing. The graphics sequence is intimately concerned with developing the principles of physics into computational models for illumination and shading. User interface issues are a common theme, which run through the graphics curriculum. 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 describes 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 CSE and ABET objectives. Section 2.4 provides information on the feedback we have received from students, recruiters, etc. about the courses in the group. Section 2.5 summarizes the changes we are considering in the various courses.

2.1 Summary of the courses

We have six courses in the computer graphics area: CSE 581, 681, 682, 781, 782, and 784. (784 was renumbered from 881 in order to allow undergraduate students to take the course.) The first course was design as a survey or terminal course for students wanting some computer graphics, but not necessarily continuing on towards the theory and advanced algorithms. CSE 681 has been redesigned to serve as the foundations or core theory course for the area, covering the basic physics, algorithms, data structures and theory behind the area. The remaining courses focus on specific sub-areas within computer graphics.

CSE 581: Interactive Computer Graphics is an introductory computer graphics course offered to OSU undergraduate and non-CSE majored graduate students. This is a new course designed in 2001 aiming to provide the students with practical programming skills using state-of-the-art graphics accelerators and the OpenGL API. Accompanying 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 C/C++ and OpenGL. In the labs, students need to construct simple graphics models and perform real-time rendering using OpenGL. They also need to design basic interface and input event handlers to provide with the user an interactive control of the graphic scenes. By 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 an introductory computer graphics course offered to OSU undergraduate and graduate students. This course was completely re-designed in 2001 aiming to provide the students a strong foundational basis. 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. 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 course that imparts the basic tenets of computer animation. The course is populated by both undergraduate and graduate students. However, the past offering only attracted undergraduate students. The topics include storyboarding, vignettes, key-framing and procedural animation. The stress really is on procedural animation. All techniques that can produce character and physical motion (fluids) are examined. Where necessary, the students were shown video recordings of well-known animations. The course is project-driven and strives to engender a team-oriented approach. The students used MAYA animation environment to create the models, as well as to animate and render them. They were required to write MEL (Maya Embedded Language) scripts that realized procedural animation. The projects were chosen at the beginning of the quarter. The projects were conceived after the students met the artists and faculty at Advanced Center for Arts and Design (ACCAD). In effect the students were responding to needs of animators and artists mimicking the environment of production studios. Every two weeks, a progress report was required and the projects were judged against the prescribed milestones. These milestones were laid down by the instructor and ACCAD faculty. A finished project was judged for its technical strengths and artistic sensibilities. In addition to faculty instruction on computer algorithms, adequate lab instruction on Maya and production techniques was provided by a teaching assistant. Artistic judgment was delivered by ACCAD faulty. In addition to the project, the students completed several mini projects.

CSE 781: Introduction to 3D Image Generation is an advanced course focused on real-time rendering of polygonal models. The target students of this course are CSE advanced undergraduate and 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, advanced transformations, 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. This course is a continuation of CSE681. CSE undergraduate students and graduate students (also 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 complete an implicit surface ray tracer 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 required the discussion of seminal papers and the students were 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, second one on polyhedral constructions using the result of the first lab and third one on surface designs using subdivision techniques.

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, it is an area in which 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 fairly intensive programming; CSE560 is a prerequisite to CSE581 in order to ensure significant programming experience among the students. CSE781 has a prerequisite of CSE675 because it covers some hardware issues related to frame buffers and color look-up tables. CSE541 is a prerequisite to CSE784 because of the dependence on numerical techniques when analyzing sculptured surfaces. None of the graphics courses are prerequisites to any courses outside of the graphics curriculum.

2.3 Relation to CSE and ABET objectives

The courses in this group play a key role in meeting both CSE program objectives as well as ABET Criterion 3 objectives. In section 2.3.1 we consider the CSE objectives that this course group helps us meet, and in section 2.3.2 we consider the ABET objectives.

2.3.1 CSE Outcomes

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. CSE 581 utilizes a pervasive standard in OpenGL that quickly allows the user to develop full-functioning programs and results. The course also stresses the interaction with the program and user interface elements to control the various graphical elements, including the camera. CSE 681 delves into spatial databases and partitioning, as well as hierarchical representations. Both CSE 581 and CSE 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 Objective I.

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. CSE581 depends on matrix manipulation, clipping procedures, 2D and 3D linear mappings, affine transformations, perspective projections and perspective transformations. CSE681 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. CSE681 covers the basic illumination models including diffuse and specular illumination, reflectance, and refraction. CIS782 includes radiosity (heat transfer theory), photon transport and anti-aliasing (Fourier analysis). CSE 784 deals with interpolation properties and surface reconstruction from discrete samples. These fully meet Objective II.

User Interface design issues are a common theme which run through the graphics curriculum. CSE581 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 CSE581. In CSE784, 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 Objective III.

The complexity of the programming assignments seems to encourage more chatter on the newsgroups and dialog within the labs as students seek out help from fellow students. CSE 682 is a new capstone course, satisfying the goals of team-oriented design. In fact, this course 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. Bi-weekly progress reports are required of the student teams as they work towards a 10-week final project. Organization and well-thought out design are critical during this course. CSE 781, CSE 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 Objective IV.

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. Objective V has been met, and we will continually strive to satisfy this objective through refinement of the curriculum, and continued interaction between alumni and students.

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

Summary of Relation to CSE Outcomes

CSE Course

CSE
I.i

CSE
I.ii

CSE
I.iii

CSE
II.i

CSE
II.ii

CSE
II.iii

CSE
III.i

CSE
III.ii

CSE
IV.i

CSE
IV.ii

CSE
V.i

CSE
V.ii

CSE
V.iii

581

XXX

X

XX




X




XX

X


681

XXX

XXX

X

X

XX

X



X

X

X

XX

XXX

682

XXX

XX

XX


XX




XXX

XXX

XX

XX

XXX

781

XXX

XX

X


XX




XX


XX

XX

XXX

782

XX

XXX

X

XX

XX




XX


XX

XX

XXX

784

XX

XXX

X

XX



X


X

X

XX

XX

XXX
















2.3.2 ABET Criterion 3: Program Outcomes and Assessment

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 CSE 682) and 3k; moderately towards criteria 3e, 3i and 3j; and to a limited extent 3b, 3d and 3h. Highlights of the various software engineering and development assignments attest to meeting criteria 3c and 3k. These have been collected by the individual faculty member, but probably should be placed within the graphics web-page domain. Section 2.3.1 explains how CSE 681, CSE 682, CSE 781, CSE 782 and CSE 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 the in detail the capstone course (CSE 682) outcomes contributing 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

CIS 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


XXX

X

XX

XX

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

2.4 Responses to concerns raised in the 1999 report

One of the major concerns in our last report was the difficulty current students had with our first course, CIS 681 at the time. This course required the students to develop their own transformation, clipping and rasterization implementations, which at the end of the quarter provided very crude graphical representations. With the strengthening of OpenGL as an industrial standard, and the promulgation of OpenGL textbooks, we pushed for both a new course surveying the components and issues in computer graphics. We utilized the OpenGL standard to focus the initial user's interest on the capabilites and limitations of the current consumer hardware, rather than the nitty-gritty implementation details of the underlying algorithms. We also successfully pushed for a dedicated PC-based computer lab where students could program the graphics hardware and have interactive results. This was done for both CSE 581 and CSE 781 where real-time interaction and customization are heavily stressed. This lab was equipped with state-of-the-art graphics cards and has served the students well. This course now exposes students who are interested in a survey of the field, as well as an introduction to the field and the toolkits used for those students intending to seriously study the field.

With many of our graduates seeking employment at various animation houses and game companies, we indicated a desire to provide a project-based animation course. The graphics area also lacked a designated capstone course. The animation course was developed and designed to fullfill the requirements for a CSE capstone course.

As visualization is one of our key research areas, there was also a desire to provide a core visualization course. This course has been developed and just went through its third pilot (Spring 2005).

2.5 Additional major changes since the 1999 report

Since the last report, several major changes have been made to the CSE graphics curriculum. First of all, we introduced an introductory graphics course CSE 581 for undergraduate students. This course is designed as a terminal course for students who will only take one graphics course before they graduate. To give students some skills needed by industry, we put a particular focus on programming OpenGL, an industry standard API so that the students can develop hands-on experience in graphics programming. As CSE 581 replaces CSE681 as the introductory graphics course, we modified the course contents for CSE 681 and CSE 781 accordingly. CSE 681 is now targeted as an intro course for CSE graduate students who already have background in graphics, or undergraduate students who have taken CSE 581. Topics discussed in CSE 681 include ray tracing algorithms and related issues, which were taught previously in CSE 781. For the revised CSE 781, right now we are focused on interactive techniques for advanced graphics algorithm using OpenGL and graphics accelerators. This course is designed primarily for CSE graduate students who major in graphics, with a few advanced undergraduate students.

Another new course that we offered since last course report is the computer animation course CSE 682. This course is also the capstone course for the graphics series. More information about the course can be found in section 2.

Finally, we changed the course number for Geometric Modeling from CSE 881 to CSE 784. The rationale behind is that the 800 course number can be intimidating to some of the undergraduate students (and they need special permission) even though the course can be handled by most of our undergraduate students who are interested in graphics.

Textbooks for the mainstream of Computer Graphics display and illumination are well-developed at this point and, while we continually fine tune, there are no major problems. Some of our seminars lack good texts, but papers from the literature are used effectively.

Other possible courses which might be introduced include a course in Visualization. This course is currently going through the piloting stage.

2.6 Feedback and Continuing Concerns

We are now in the third year of our migration to the new curriculum and it appears to be a very successful switch. With six courses now instead of four, enrollment in the upper courses has wavered some, but recent enrollments are consistent with previous years. The piloted Visualization course has not drawn in the students from other disciplines as we had hoped and the rational and format for this course is still be evaluated. The new survey course, CSE 581, is extremely popular, but is only offered twice throughout the year. As demand continues, it is hoped that this course can be offered more frequently. This will provide a larger audience for the remaining graphics courses. It also might be a good idea to drop 560 as a prerequisite to 581, which would make it accessible to students in the proposed Applied Software Engineering graduate minor. This prerequisite is mostly for programming maturity, not necessarily its team project.

We have successfully redesigned the curriculum, but still need to change the official titles and descriptions to more closely reflect the new content. The course desciptions provide the updated content. All courses have undergone significant changes.

While user interfaces are not an area associated with any of the existing computer graphics faculty, this is some concern about the lack of a good user interface course.

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

Shen, Crawfis

681

Machiraju

Machiraju, Parent, Wenger

682

Parent

Machiraju, Parent

781

Shen

Shen, Crawfis

782

Machiraju

Machiraju, Crawfis

784

Dey

Dey

People involved in preparing report: Roger Crawfis, Han-Wei Shen, Raghu Machiraju, Tamal Dey, Rick Parent

Date of report: Tuesday, May 17, 2005