# CSE 313 Computer Graphics (3)

### Instructor

Xiaolei Huang (Fall 2018)

### Current Catalog Description

Computer graphics for animation, visualization, and production of special effects: displays, methods of interaction, images, image processing, color, transformations, modeling (primitives, hierarchies, polygon meshes, curves and surfaces, procedural), animation (keyframing, dynamic simulation), rendering and realism (shading, texturing, shadows, visibility, ray tracing), and programmable graphics hardware. Prerequisite: CSE 109 and (MATH 043 or MATH 205 or MATH 242).

### Textbook

Francis S Hill Jr., Stephen M Kelley, "Computer Graphics Using OpenGL", 3rd Edition, Prentice Hall (2006), 978-0131496705

### COURSE OUTCOMES

### Students will have:

- A broad understanding of current topics in the field of computer graphics
- A grasp of basic principles and core techniques commonly used in the graphics industry, such as in computer animation, games, and production of special effects
- Ability to write substantial graphics themselves
- Ability to produce 2D and 3D graphics, animations, using OpenGL - the graphics application programming interface (API)
- Ability to propose and implement computer graphics solutions to design arts

### RELATIONSHIP BETWEEN COURSE OUTCOMES AND STUDENT ENABLED CHARACTERISTICS

### CSE 313 substantially supports the following student enabled characteristics:

**A.** An ability to apply knowledge of computing and mathematics appropriate to the discipline

**B.** An ability to analyze a problem and identify and define the computing requirements appropriate to its solution

**I**. An ability to use current techniques, skills, and tools necessary to computing practices

**J.** An ability to apply mathematical foundations, algorithmic principles, and computer science theory in the modeling and design of computer-based systems in a way that demonstrates comprehension of the tradeoffs involved in design choices

**K.** An ability to apply design and development principles in the construction of software systems of varying complexity

### Prerequisites by Topic

- Software and programming: data structures, programming in C/C++, object-oriented design and implementation, practical methods for implementing medium-scale programs
- Linear algebra: matrices, vectors, vector spaces, elementary matrix transformations, linear differential equations, systems of linear equations, eigenvalues and applications to linear systems of differential equations

### Major Topics Covered in the Course

- Definitions and application domains for computer graphics
- Displays
- Images, image formation, color spaces
- Graphics input and output primitives, drawing lines and curves
- Image processing and manipulation
- Introduction to OpenGL/Glut for graphics programming
- Vector tools for graphics
- 2D and 3D geometric transformations
- Viewing: camera transformations, perspective projection, orthographic projection
- Drawing 3D scenes using OpenGL
- Modeling: primitives, geometry, polygon meshes, curves and surfaces, heirarchies, fractals and procedural methods
- Animation: keyframing, forward vs. backward kinematics, physics-based animations/simulation, behavior-based computer animation
- Rendering and visual realism: illumination, shading, texturing, shadows, visibility (hidden surface removal), ray tracing, nonphotorealistic rendering, volume rendering
- Graphics hardware, programmable graphics hardware
- Graphics processing unit )GPU) programming using CUDA as an example
- Miscellaneous (as time permits)
- Virtual reality, augmented reality
- Sound simulation
- User interface design principles
- Image recognition

### Assessment Plan for the Course

The students are given three homework assignments, three mid-size to large-size programming assignments, a midterm exam, and a final exam. Each programming assignment is given over a two to four week period. The students are given a skeleton program to start with, but must design a solution that implements one or two algorithms discussed in class, for a particular context given in the assignment description. I track the performance of the student on each homework assignment, each programming assignment, and each question on the midterm and final exam.

### How Data in the Course are used to Assess Program Outcomes (unless adequately covered already in the assessment discussion under Criterion 4).

Each semester I include the above data from the assignment plan for the course in my self-asssessment of the course. This report is reviewed, in turn, by the Curriculum Committee.