Introduction to 3D Computer Graphics Jian Huang 219 Claxton Complex What Is ‘Computer Graphics’? Using a computer as a rendering tool for the generation from models and manipulation of images is called computer graphics. Even better, image synthesis. May 29, 2016 2 Goals of Computer Graphics •(This semester) Generate synthetic images that look real (cool) ! •Do it in a practical way and scientifically sound, and in real time? May 29, 2016 3 Realism Through Synthesis May 29, 2016 4 Play Games … May 29, 2016 5 Major Topics • • • • • • Geometry Processing Rasterization Advanced Lighting and Shading Graphics Architecture Performance Techniques Other Advanced Topics: image-based rendering, volume rendering, non-photo realistic rendering etc. May 29, 2016 6 Modeling • How to represent real environments • shape: curves, surfaces, volumes • appearance: light, color, material, reflectance • How to build these representations • Modeling • Procedurally (fractals, algebraic/geometric Methods, extraction) • 3D scan of the real world • The Primitives -lines, triangles, quads, patches, (sometimes not needed), cylinders, spheres. May 29, 2016 7 Make Cool Objects … May 29, 2016 8 Scanned 3D Objects May 29, 2016 9 Modeling - Algorithmic Primitives ? Design May 29, 2016 Extracted 10 3D Models Primitives ? May 29, 2016 11 Modeling - Procedural Out Of Nowhere ! - Fractals Primitives ? May 29, 2016 12 Rendering • What’s an image? • Distribution of light energy on 2D “film” • How do we represent and store images • Framebuffer: 2D array of “pixels”: p[x,y] • Render: generate images from scenes • Input: 3D description of scene (models), camera, light … • Output: framebuffer Application May 29, 2016 Geometry Rasterizer 13 Rendering Primitives May 29, 2016 14 The Quest for Visual Realism May 29, 2016 15 Examples May 29, 2016 16 Synthesize Special Effects May 29, 2016 17 Interaction May 29, 2016 18 Interaction - Simpler ! cis681 May 29, 2016 19 Visualization … May 29, 2016 20 Visualization May 29, 2016 21 What is It I Expect • Good Programming Background - C/C++ • Basic Linear Algebra - Matrices, Vectors • Basic Computer Science - Data Structures, Computer architecture • Sleep Deprivation :). May 29, 2016 22 I Am Not Going To ! •Teach C/C++ •Teach Data Structures •Teach Linear Algebra •Lab Procedures are your responsibility May 29, 2016 23