Introduction to 3D Computer Graphics Jian Huang 219 Claxton Complex

advertisement
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
Download