1 / 9

Course Overview, Introduction to CG

This course provides an overall understanding of 3D graphics programming using the OpenGL API in C++. Students will learn event-driven programming, rendering complex scenes, and dealing with transformations, viewing, and lighting. Prerequisites include C++ programming and mathematical knowledge, and required software includes a C++ compiler, OpenGL, and GLUT.

semerick
Télécharger la présentation

Course Overview, Introduction to CG

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Course Overview,Introduction to CG Glenn G. ChappellCHAPPELLG@member.ams.org U. of Alaska Fairbanks CS 381 Lecture Notes Friday, September 5, 2003

  2. Course Overview:Topic • This class is aboutCOMPUTER PROGRAMMING. • Our major topic will be three-dimensional graphics programming in C++ using OpenGL. CS 381

  3. Course Overview:Goals • Students will: • Gain an overall understanding of 3-D graphics, based on the synthetic-camera model, implemented with a rendering pipeline. • Learn to use a professional-quality graphics API (OpenGL) to do 3-D graphics. • Learn simple event-driven programming. • Learn to deal with issues and tools involved in 3-D graphics: transformations, viewing, hidden-surface removal, lighting. • Understand and be able to use facilities for rendering complex scenes using simple primitives (hierarchical objects, texturing, etc.). • Understand basic issues/algorithms involved in rasterization, clipping. • Demonstrate proficiency by writing 10–11 short graphics programs in C/C++. CS 381

  4. Course Overview:Prerequisites • What YOU need to know: • How to program in C++ (CS 202) • How to toss around mathematical symbols (MATH 200X) • Experience with vectors & matrices is helpful (MATH 314) • What your COMPUTER needs to know: • C++ Compiler • OpenGL • GLUT (you may need to install this) CS 381

  5. Introduction to CG:What is CG? • CG = Computer Graphics • Or “computer-generated”. • What is it? • Making pictures with a computer. • What is it for? • All visual computer output is graphics these days. • In the past this was not true; many screens & printers were text-only. • Our interest is mainly in 3-D scenes composed of lines and arbitrary shapes, as seen in: • Movies • Games • Simulations • Visualization • CAD Systems • Virtual Reality/Augmented Reality CS 381

  6. Introduction to CG:The 3-D Scene • In 2-D CG, we often think in terms of screen positions. • Put this object in that spot in the image. • So the scene “lives” on the screen. • In 3-D CG, the user is (usually) inside the scene. • The screen (or other image) is a (movable?) window through which the user looks at the scene. • Therefore, we base our graphics on the synthetic camera model. CS 381

  7. Introduction to CG:Synthetic Camera Model • We base our 3-D viewing on a model similar to a camera. • A point is chosen (the center of projection). • Given an object in the scene, draw a line from it, through the center of projection, to the image. • The image lies in a plane, like film in a film camera, or the sensor array in a digital camera. • Where this line hits the image is where the object appears in the image. • This model is similar to the way the human visual system works. CS 381

  8. Introduction to CG:Modeling & Rendering • Images of 3-D scenes are generated in two steps: • Modeling • Rendering • Modeling means producing a precise description of a scene, generally in terms of graphics primitives. • Primitives may be points, lines, polygons, bitmapped images, various types of curves, etc. • Rendering means producing an image based on the model. • Images are produced in a frame buffer. • A modern frame buffer is a raster: a 2-D array of pixels. • This class focuses on rendering. CS 381

  9. Introduction to CG:Rendering Pipeline • In modern graphics architectures, rendering is accomplished via a pipeline. • Why are pipeline-style designs good (in general)? • Vertices enter. • A vertex might be a corner of a polygon. • Fragments leave. • A fragment is a pixel-before-it-becomes-a-pixel. • At the end of the pipeline, values are stored in the frame buffer. • The above picture differs from that in the book. Both are over-simplifications; but they are over-simplified in different ways. Later in the class, we will be adding more detail to this picture. VertexOperations Rasterization FragmentOperations Vertex enters here To framebuffer Vertices(objectcoordinates) Vertices(windowcoordinates) Fragments Fragments CS 381

More Related