280 likes | 466 Views
CMPT 361. Week 1. Prerequisites. Good programming skills in C (or C++) Basic Data Structures Linked lists Arrays Geometry Simple Linear Algebra. Applications of Graphics. Entertainment Visualization HCI Virtual Reality Computer Aided Design. What is Computer Graphics.
E N D
CMPT 361 Week 1
Prerequisites • Good programming skills in C (or C++) • Basic Data Structures • Linked lists • Arrays • Geometry • Simple Linear Algebra
Applications of Graphics • Entertainment • Visualization • HCI • Virtual Reality • Computer Aided Design
What is Computer Graphics • Uses a computer as a rendering toolfor • Generation of images from models • Manipulation of images
Goals of CG • Simulate (or rather fake) Physics! • We need techniques that are • Fast ... Real time? • Practical • Elegant
Modeling • Interactive • CAD • Scanning (3D scanners) • Procedural • Fractals • Can be mixed...
Modeling in CMPT 361 • Concentrate on polygonal models for geometry • 2D: points, lines, and polygons • 3D polygonal meshes • A little bit of parametric curves and surfaces • OK, we have a geometric model, what now? • Rendering...
Rendering in CMPT 361 • Add in viewing information: • Transformation: transform our geometric model • depending on position and orientation of camera • Visibility: determine what can be seen (do not draw what cannot been seen) • Add in light: illumination and shading • Add in texture: texture mapping • Add in color: some coverage on color models/representations
Animation • Temporal change of images...
Topics • Image formation • Programming with OpenGL • 2D and 3D geometric transformations • rotation, • translation, • use of homogenous coordinates, etc.
Topics • Hidden surface removal, clipping • Illumination and shading • Rasterization • Curves and surfaces • TBA
What is expected... • Good programming background • C/C++ • OpenGL? • Data structures, algorithms • Basic math • Numerical integration • Linear algebra, system of Linear Eqns • Vectors, matrices
I am not going to... • Teach C/C++ • Teach data structures • Teach linear algebra and basic numerical methods • Questions about C/C++ are low priority • Lab procedures are your responsibility
Raster display basics • Pixels! • 1080p = how many pixels? • Bit depth
Synthetic Camera Model • How to see 3D?