Graphics Courses

These are undergraduate (<6000) and graduate (≥6000) level graphics-related courses in the School of Computing at the University of Utah. This list does not include special topics courses that are not regularly offered.

Example images generated by students taking the CS 6620 (Ray Tracing for Graphics) course in Fall 2014.

Graphics Courses

CS 4600Introduction to Computer Graphics
CS 5610Interactive Computer Graphics
CS 5650Visual Perception from a Computer Graphics and Visualization Perspective
CS 6160Computational Geometry
CS 6170Computational Topology
CS 6235Parallel Programming for Many-Core Architectures
CS 6360Virtual Reality
CS 6600Mathematical Foundations of Computer Graphics and Visualization
CS 6610Interactive Computer Graphics
CS 6620Ray Tracing for Graphics
CS 6640Introduction to Digital Image Processing
CS 6650Visual Perception from a Computer Graphics and Visualization Perspective
CS 6660Physics-based Animation
CS 6665Character Animation
CS 6670Computer-Aided Geometric Design I
CS 6680Computer-Aided Geometric Design II
CS 7640Advanced Image Processing

CS 4600 - Introduction to Computer Graphics

Computer graphics is the discipline of generating images though computer programs. This course covers modern computer graphics hardware and software. Students will learn raster algorithms in 2D and 3D, coordinate transformation, projections, projections, lighting/shading, and texture mapping, vertex and fragment shaders and how they work. Students will also learn the differences between raster algorithms and ray-tracing algorithms.

CS 5610 - Interactive Computer Graphics

Meets with CS 6610. Interactive 3D computer graphics, polygonal representations of 3-D objects. Interactive lighting models. Introduction to interactive texture mapping, shadow generation, image-based techniques such as stencils, hidden-line removal, and silhouette edges. Introduction to image-based rendering, global illumination, and volume rendering. Undergraduate students only.

CS 5650 - Visual Perception from a Computer Graphics and Visualization Perspective

Meets with CS 6650. Computer graphics produces images intended to be seen by people, yet relatively few practitioners in the field know much about the specifics of human vision. This course provides an introduction to human visual perception from the perspective of computer graphics and visualization, though it is also relevant to perceptual psychologists using computer graphics to generate experimental stimuli, directly investigating the perceptual effectiveness of some aspects of computer graphics, or interested in perceptual topics relevant to the information content of images but not included in most standard vision science references. In addition to material included in most standard visual perception classes, this course covers perception of material properties, illumination, the perception of pictorial space, image statistics, perception and action, and spatial cognition.

CS 6160 - Computational Geometry

Topics include: Convex hulls, Voronoi diagrams and Delaunay Triangulations, range searching, nearest neighbors, all in low and high dimension. Geometric duality, linear programming, Geometric approximations, High dimensional geometry and its relation to machine learning and data analysis.

CS 6170 - Computational Topology

This course provides a gentle introduction to topology-based techniques for the analysis and visualization of geometric models. Students will learn about fundamental topological invariants (connectedness, Euler characteristic, orientability, etc...) and constructs (Reed graphs, Morse-Smale complexes, etc...). Special emphasis will be given to the analysis of their computation algorithms with respect to: (i) asymptotic complexity, (ii) robustness, and (iii) data structures and implementation issues. Successful completion of the course will enable the students to pursue new research directions in this field and/or apply the most recent topological techniques to related areas such as computer graphics, geometric modeling, mesh generation, data analysis, and scientific visualization.

CS 6235 - Parallel Programming for Many-Core Architectures

This courses examines an important trend in high-performance computing, the use of special-purpose hardware originally designed for graphics and games to solve general-purpose computing problems. Such graphics processing unites (GPUs) have enormous peak performance for arithmetically-intensive computations, and at relatively low cost as compared to their general-purpose counterparts with similar performance levels. Technology trends are driving all microprocessors towards multiple core designs, and therefore, techniques for parallel programming represent a rich area of recent study. Students in the course will learn how to develop scalable parallel programs targeting the unique requirements for obtaining high performance on GPUs. We will compare and contrast parallel programming for GPUs and conventional multi-core microprocessors.

The course will largely consist of small programming assignments, and a larger term project to be presented to the class. Several of these projects from the past three years' classes were presented in conferences, workshops and poster sessions, and contributed to Masters and PhD research. As this course combines hands-on programming and a discussion of research in the area, it is suitable for Masters students and PhD students who wish to learn how to write parallel applications or are engaged in research in related areas.

CS 6360 - Virtual Reality

Human interfaces: visual, auditory, haptic, and locomotory displays; position tracking and mapping. Computer hardware and software for the generation of virtual environments. Networking and communications. Telerobotics: remote manipulators and vehicles, low-level control, supervisory control, and real-time architectures. Applications: manufacturing, medicine, hazardous environments, and training.

CS 6600 - Mathematical Foundations of Computer Graphics and Visualization

Algorithms and techniques in geometric modeling, computer graphics, visualization, image processing, computer vision, robotics, and computation geometry rely on many of the same fundamental approaches. This course provides an overview of such methodologies along with application examples and strengthens the students' grasp of underlying mathematical concepts. Students will continue to build on these foundations in their other graduate classes and in their research. Emphasis is given to breadth of topics to provide a foundation from which discipline specific techniques and methodologies can advance.

CS 6610 - Interactive Computer Graphics

Meets with CS 5610. Interactive 3D computer graphics, polygonal representations of 3-D objects. Interactive lighting models. Introduction to interactive texture mapping, shadow generation, image-based techniques such as stencils, hidden-line removal, and silhouette edges. Introduction to image-based rendering, global illumination, and volume rendering. Graduate students only. Extra work required.

CS 6620 - Ray Tracing for Graphics

This is a project based course covering the fundamental concepts of rendering using ray tracing. Each student implements a ray tracing based renderer step by step with each project. Topics covered in this course include: 3D objects and ray intersections, reflection, refraction, acceleration structures, textures, anti-aliasing, depth of field, soft shadows, and global illumination.

CS 6640 - Introduction to Digital Image Processing

This is an introductory course in processing grey-scale images. This course will cover both mathematical fundamentals and implementation. It will introduce students to the basic principles of processing digital signals and how those principles apply to images. These fundamentals will include sampling theory, transforms and filtering. The course will also cover a series of basic image-processing problems including enhancement, reconstruction, segmentation, feature detection, and compression. Assignments will include several projects with implementations and analysis of real data.

CS 6650 - Visual Perception from a Computer Graphics and Visualization Perspective

Meets with CS 5650. Computer graphics produces images intended to be seen by people, yet relatively few practitioners in the field know much about the specifics of human vision. This course provides an introduction to human visual perception from the perspective of computer graphics and visualization, though it is also relevant to perceptual psychologists using computer graphics to generate experimental stimuli, directly investigating the perceptual effectiveness of some aspects of computer graphics, or interested in perceptual topics relevant to the information content of images but not included in most standard vision science references. In addition to material included in most standard visual perception classes, this course covers perception of material properties, illumination, the perception of pictorial space, image statistics, perception and action, and spatial cognition.

CS 6660 - Physics-based Animation

Physics-based simulation techniques have revolutionized special effects in film and video games, creating extremely realistic effects while allowing unprecedented artistic control and avoiding dangerous situations. this course will explore physics-based simulation methods for computer animation of a wide variety of phenomena and materials including rigid and deformable solids, cloth, liquids, and explosions. Students will be introduced to numerical methods, physical models, data structures, and theoretical results that form the building blocks of these methods. To gain hands-on experience, students will implement basic simulators for several phenomena.

CS 6665 - Character Animation

Characters are one of the most important components of films and video games. Creating natural looking motion for virtual character is an area of very active research in the computer animation and graphics communities. This course will explore the problem of animating characters and a variety of the approaches that have been proposed. This course will be very technical in nature and will involve several programming assignments.

CS 6670 - Computer-Aided Geometric Design I

Introduction to current concepts and issues in CAGD systems with emphasis on free-form surface design; mathematics of free-form curve and surface representations, including Coons patches, Bezier method, B-splines, triangular interpolants, and their geometric consequences; classical surface geometry; local and global design tradeoffs and explicit and parametric tradeoffs; subdivision and refinement as techniques in modeling; current production capabilities compared to advanced research. Laboratory experiments with current CAD systems.

CS 6680 - Computer-Aided Geometric Design II

Project based upon material covered in CS 6670.

CS 7640 - Advanced Image Processing

In-depth study of advanced methods and research topics of current interest in image processing and analysis. Covers PDEs, shape representations, deformable models (snakes, level sets), statistical shape analysis, scale-space and registration. Focus and list of topics might change from semester to semester.