Computer Graphics
Requirements Prerequisites CS 255 : Data Structures Math 253 Experience with C/C++ Programming Language
Grading Assignments/Labs 45% Midterm 15% Final Exam 40%
What is Computer Graphics Computer graphics: generating 2D images of a 3D world represented in a computer. Main tasks: modeling: (shape) creating and representing the geometry of objects in the 3D world rendering: (light, perspective) generating 2D images of the objects animation: (movement) describing how objects change in time
Computer Graphics/Image Processing / Computer Vision Computer graphics create pictures and images based on some description, or model, in a computer. Image Processing : process an image to enhance certain aspects: examples: remove noise from an image, enhance its contrast, sharpen its edges, and fix its colors Computer Vision : Derive the models/descriptions from an image.
Course Goals Learn the principles of modeling and synthesis Acquire expertise in tools used
Graphics: Conceptual Model Real Light Human Eye Real Object Synthetic Light Source Synthetic Camera Human Eye Synthetic Model Real Object Display Device Graphics System
Applications of Computer Graphics Display of information Design Simulation and animation User interface
Displaying Simulations Flight simulator: the system is a plane with a shape and flying characteristics, along with a world consisting of a landing field, mountains, other planes, and air, all modeled appropriately.
Computer-aided Design E.g., drills, or houses. The computer version is easy to alter if necessary. Analysis and simulation can be used also. The shape of the drill might look nice, but the casing might be too weak or too heavy, or might be uncomfortable to grip. Algorithms can be applied to the model of the drill to analyze its weight and heft, and to test whether the inner workings of the drill will fit properly inside the casing.
Computer Aided Design (CAD)
Volume Visualization Areas of different colors immediately inform a physician about the health of each part of the brain.
Medical Visualization Image from David Brogan’s notes
Displaying Mathematical Functions E.g., Mathematica®
Computer graphics are widely used in the production of movies, television programs, books, games, and magazines. Pixar: Monster’s Inc.
Field of Computer Graphics Computer graphics also often means the whole field of study that involves these tools and the pictures they produce. The special interest group in graphics, SIGGRAPH, was formed in 1969. (The must-not-miss annual SIGGRAPH meeting now attracts 30,000 participants a year.) SIGGRAPH is a Special Interest Group in the ACM: the Association for Computing Machinery.
Software Library Device independent graphics libraries that allow the programmer to use a common set of functions within an application, and to run the same application on a variety of systems and displays are available. OpenGL is such a library, and is the tool we will use in this class. The OpenGL way of creating graphics is used widely in both academia and industry.
Topics Outline
OpenGL Basics Primitives and attributes Color Viewing Control functions
Input and Interaction Clients and servers Event driven programming Text and fonts
Objects & Transformations Linear algebra review Coordinate systems and frames Rotation, translation, scaling Homogeneous coordinates OpenGL transformation matrices
Viewing and Projection Orthographic projection Perspective projection Camera positioning Projections in OpenGL Hidden surface removal
Light and Shading Light sources Ambient, diffuse, and specular reflection Normal vectors Material properties in OpenGL
Textures and Pixels Texture mapping OpenGL texture primitives Image filtering
Rendering Clipping Bounding boxes Hidden-surface removal Line drawing Scan conversion Antialiasing
Hierarchical Models Graphical objects Animations OpenGL routines Parameters and transformations
Curves and Surfaces Review of 3D-calculus Explicit representations Implicit representations Parametric curves and surfaces Hermite curves and surfaces Bezier curves and surfaces Splines Curves and surfaces in OpenGL
Other Topics Curves and Surfaces Ray tracing Scientific visualization Programmable shades Procedure methods