Gary Meyer regularly teaches the three computer graphics courses in the UM computer science curriculum. CSci 4107 is an undergraduate course that provides an introduction to computer graphics with an emphasis on graphics programming techniques including OpenGL, pixel shaders, and game engines. CSci 5107 is a graduate course that also presents an introduction to computer graphics with an emphasis on implementing the graphics algorithms such as perspective projection, hidden surface removal, and ray tracing. CSci 5108 covers advanced computer graphic techniques including surface reflectance, global illumination, and volumetric rendering. Professor Meyer also occasionally teaches special CSci 8980 seminars that address specialized topics in computer graphics including color appearance simulation and the computer graphic techniques for design.

CSCI 4107 - Introduction to Computer Graphics Programming

The objective of this course is to provide students with an introduction to the hardware, drawing methods, geometrical transforms, and shape representation schemes that are important in computer graphics. The hardware surveyed includes contemporary graphics cards and flat panel displays. Line and polygon clipping techniques are addressed. Two and three dimensional geometric transforms are covered and various projection schemes are presented. Local and global illumination simulation are discussed. Finally, we look methods for modeling three dimensional objects.Another major objective of this course is to give students "hands-on" experience with graphics hardware and software systems. The programming assignments are performed on a PC running Windows. Students work in C++ and, for their initial assignments, they use the OpenGL application programmer's interface on these machines. In the programming assignments in this course students develop interactive graphics programs that produce pictures of two and three dimensional objects. They also get exposure to a graphics engine that is used to create computer games. All programming assignments are done individually. The final project involves the development of a simple computer game and it is done in a group.

CSCI 5107 - Fundamentals of Computer Graphics I

The objective of this course is to provide students with an introduction to the hardware, drawing methods, geometrical transforms, and shape representation schemes that are important in computer graphics. The hardware surveyed includes raster graphic systems, color displays, and graphics processors. Two and three dimensional geometric transforms are covered and various projection schemes are presented. Hidden surface and polygon clipping techniques are addressed. Local and global illumination simulation, including ray tracing, are discussed. Finally, students look at methods for modelling three dimensional objects.Another major objective of this course is to give students "hands-on" experience with a graphics hardware and software system. The programming assignments are performed using either the Windows or Linux operating systems. Students work in C or C++ and use publicly available graphics software. In the programming assignments in this course students develop, from scratch, a simple rendering system that can produce shaded pictures of three dimensional objects and a ray tracer that can generate images of a complex scene including color appearance and inter-reflections. All programming assignments are done individually.

CSCI 5108 - Fundamentals of Computer Graphics II

This course presents advanced topics in computer graphics. Its coverage includes hidden surface algorithms, sampling theory, local illumination models, volumetric rendering, image based rendering, advanced ray tracing, and radiosity. It also incorporates material that is not likely to be found in existing computer graphics textbooks and has only recently appeared in publications such as SIGGRAPH and ACM Transactions on Graphics. It is a "hands on" course in which students implement several of the algorithms discussed in class. There is a final project but no final exam. The course is intended for individuals who have already had at least one semester or two quarter courses in computer graphics. It will be assumed that students are familiar with basic rasterization algorithms, two and three dimensional geometric transformations, perspective projection, and simple illumination models. Individuals who have implemented a basic ray tracer would be ideally prepared to take this course. Others who have programmed at least one hidden surface algorithm should also be able to handle the material. The topics that are covered fall into the following six categories: global illumination models, local illumination models, modeling techniques, hidden surface algorithms, image based techniques, and animation.

CSCI 5980 - Color and Image Science

Color science and image science are both important topics for those concerned with the digital representation of pictures. At their most basic level, these two fields of study are concerned with how the spectral and spatial information in a picture is reduced to three separate two dimensional arrays of numbers. Traditional color science involves the computation of tristimulus values from spectral energy distributions, the transformation of these tristimulus values from one color space to another, and the measurement of color difference using perceptually uniform color spaces. Conventional image science concerns the sampling of spatially continuous pictorial information, the compression of still and moving images, and the printing of pictures using halftoning and dithering algorithms. This is a lecture format course with programming assignments given to reinforce the lecture material. In addition to established color and imaging science topics, advanced material in these two areas are covered and applications to computer graphic rendering are noted. For example, color science includes the measurement of appearance parameters such as gloss and haze, and the implications that this has for computer graphic surface reflection models. Also, image science incorporates image quality metrics and the use of these measurements in perceptually based image synthesis algorithms. Programming assignments include the implementation of a surface shader using Renderman, an image compression algorithm, an image quality metric, and a halftoning technique. Some background in Fourier transforms and digital signal processing is helpful but not essential.

CSCI 8980 - Simulation of Color Appearance

Advances in computer graphics hardware and software have led to recent dramatic developments in the area of color appearance simulation. For example, the clever use of digital cameras as data acquisition devices has improved the ability to measure and record complex surface reflectances from objects in an environment. Impressive enhancements in per-pixel shading hardware for consumer grade graphics cards have made it possible to display and manipulate those acquired reflectances in real time on a PC television monitor. The decreasing cost of digital video projectors has led to imaginative ways of “painting” non-planar surfaces with projected light so that these surfaces appear to be made from a different colored material. Finally, surface reflection models have been improved so that photo-realistic renderings of complicated reflectance phenomena, such as skin and hair, are now possible.This course examines the new computer graphic algorithms and equipment that are making these striking breakthroughs in color appearance simulation possible. Students read and discuss the papers on this subject that have recently appeared in the computer graphics literature. Depending on the number of credits for students register, there are also opportunities to implement one or more of these techniques as projects for the class.

CSCI 8980 - Color in Computer Graphics and Design

The unprecedented ability to simulate and manipulate color appearance has made it essential for individuals who are developing the underlying computer graphic algorithms to learn more about how color is used in the field of aesthetic design. This class and DHA 8361 bring together students from the computer science and design fields so that they can learn more about each others' disciplines and so that they can work together on collaborative group projects. Among the topics covered are the perception and measurement of color, color organization systems, color selection (including color harmonies and color forecasting), basic material models in computer graphics (including wavelength effects, participating media, and subsurface scattering), special types of materials in computer graphics (including skin, hair, fur, plants, gemstones, fabrics, and paints), instrument based and image based appearance measurement techniques, processes that affect appearance (including patination, corrosion, scratches, cracking, and weathering), and the rendering of color appearance using rendering systems (pbrt, Renderman, 3D Studio Max, Maya) and newer shading languages (CG, DirectX, OpenGL 2.0).

CSCI 8980 - Computer Graphics and Design

Creating an effectual computer graphic image, for any purpose, requires some basic design skills. In simple two dimensional graphics, composing the elements of the picture, choosing appropriate type faces, and using white space effectively are all techniques that come from the field of graphic design. To make a three dimensional rendering one must apply methods commonly used in the fields of architectural, interior, and product design including: scaling and positioning of objects in a scene, choosing material properties, selecting the lighting arrangement, and determining critical viewpoints. Finally, in today’s world, it is important for technical students to appreciate the unique problem solving approach, so-called design thinking, that is employed by designers in many different design fields. In this course students study the relationship between the field of design, broadly defined, and the field of computer graphics. Drawing on the rich selection of design disciplines taught at the UM, guest lectures are presented by faculty from both the College of Design and the Institute of Technology. Among the design fields that are surveyed are graphic design, architectural design, apparel design, mechanical design, interior design, electrical design, lighting design, and product design. Students also read and discuss recent papers from the computer graphics literature. These papers may directly address a problem taken from a design field or they may cover a relevant computer graphic technique that could be used in a design application.