Computer Graphics Overview

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 111

Introduction to Computer Graphics

Techniques and Applications


Hong Qin
Center for Visual Computing (CVC)
Stony Brook University
Presentation Outline
• What is computer graphics?
• 3D graphics pipeline
• Programming basics

2
What is Computer Graphics?
• The creation of, manipulation of, analysis of, and
interaction with pictorial representations of objects and data
using computers.
- Dictionary of Computing
• A picture is worth a thousand words.
- Chinese Proverb
1000 words (or just 94 words), many letters though…

It looks like a swirl. There are smaller swirls at the


edges. It has different shades of red at the outside, and
is mostly green at the inside. The smaller swirls have
purple highlights. The green has also different shades.
Each small swirl is composed of even smaller ones. The
swirls go clockwise. Inside the object, there are also red
highlights. Those have different shades of red also. The
green shades vary in a fan, while the purple ones are
more uni-color. The green shades get darker towards
the outside of the fan … 3
Graphics Definition
• What is Computer Graphics?
– Pictorial synthesis of real and/or imaginary objects from
their computer-based models (or datasets)
• Fundamental, core elements of computer graphics
– Modeling: representation choices, geometric processing
– Rendering: geometric transformation, visibility, simulation of light
– Interaction: input/output devices, tools
– Animation: lifelike characters, natural phenomena, their
interactions, surrounding environments

4
Why Computer Graphics?
• About 50% of the brain neurons are associated
with vision
• Dominant form of computer output
• Enable scientists (also engineers, physicians,
and general users) to observe their simulation
and computation
• Enable them to describe, explore, and
summarize their datasets (models) and gain
insights
• Enrich the discovery process and facilitate new
inventions 5
Why Computer Graphics?
• Applications (In essence, computer graphics
is application-driven)
– Entertainment: Movies, Video games
– Graphical user interface (GUI)
– Computer aided design and manufacturing (CAD/CAM)
– Engineering analysis and business
– Medical applications
– Computer Art
– Engineering Analysis
– Scientific visualization / simulation
– Virtual Reality
– others 6
Movies
• If you can image it, it can be done with computer graphics!
• More than one billion dollars on special effects.
• No end in sight for this trend!

7
Movies

“The Day After Tomorrow” 8


Movies

“Geri’s Game”, Academy Award Winner, Best Animated Short Film, 1997 9
Video Games
• Important driving force
• Focus on interactivity
• Try to avoid computation and use various tricks

10
Games

Quake III Metroid Pride

Halo Doom 11
Computer-Aided Design
• Significant impact on the design process
• Mechanical, electronic design
– entirely on computer
• Architectural and product design
– Migrate to the computer

12
UGS: towards virtual manufacturing
Engineering Design
• Engineering &
Architecture Software
• Buildings, aircraft,
automobile,
computers, appliances,
etc.
• Interactive design (mesh
editing, wire-frame
display, etc.)
• Standard shape database
• Design of structural
component through
numerical simulation of the
physical operating
environment Courtesy of Lana Rushing, Engineering Animation, Inc.

• Testing: real-time animations


13
Architectural Design
• Architecture,
Engineering, Construction
• Final product appearance:
surface rendering,
realistic lighting
• Construction planning:
architects, clients can
study appearance before
actual construction

Courtesy of Craig Mosher & Ron Burdock, Peripheral Vision Animations

14
Textile Industry
• Fashion
design
• Real-time cloth animation
• Web-based virtual try-
on applications
15
Courtesy of Thalmann, Switzerland
Computer-Aided Design (CAD)

Courtesy of Michael Guthe et al.


16
Graphical User Interface: GUI
• Integral part of everyday computing
• Graphical elements everywhere
– Windows, cursors, menus, icons, etc
• Nearly all professional programmers must have an understanding
of graphics in order to accept input and present output to users.

17
Medical Applications
• Significant role in saving lives
• Training, education, diagnosis, treatment

The Visible Human Project


Creation of complete,
anatomically detailed 3D
representation of human
bodies1.8
Scientific Visualization
• Scientific
data
representation
• Picture vs. stream
of numbers
• Techniques: contour
plots, color coding,
constant value surface
rendering, custom
shapes

Display of a 2D slice through the total electron


density of C-60; Created by Cary Sandvig of SGI
19
Scientific Visualization
• Life Sciences
• Providing quantitative,
three dimensional
electron microscopy.
• Scientists can see
structures as they were
before being sectioned
for viewing in the
electron microscope.

Courtesy of H. Lloyd Mogensen, Northern Arizona University

20
Scientific Visualization
• Medical imaging & visualization

Courtesy of Kaufman et al2. 1


Scientific Visualization / Simulation

Electromagnetic potential field Computational Fluid Dynamics (CFD)

Courtesy of Mark Toscinski and Paul Tallon


22
Scientific Visualization / Simulation
• Urban security

Courtesy of Kaufman et al2. 3


Virtual Reality
• User interacts with objects
in a 3D scene
• Special devices
(input, output)
• Virtual walkthroughs
• Equipment training
(pilots, surgeons, etc.)

Force reflecting gripper Haptic devices Force feedback exoskeleton Haptic workstation

24
Virtual Reality
• Education using computer-
generated system & process
models
• Visual simulation:
– Aircraft simulator
– Spacecraft simulator
– Naval craft simulator
– Automobile simulator
– Heavy machinery simulator
– Surgery simulator
• Special hardware required

25
Virtual Reality
• Virtual tour of
historical remains

26
Virtual tour of Ancient Olympia, Courtesy of SGI
Virtual Reality
• Virtual colonoscopy

27
Courtesy of Kaufman et al.
Image Processing, Analysis, and Synthesis

28
Computer Art
• Escher Drawing
– Combine interlocking shapes with tessellation
to convey the beauty in structure and infinity

Image courtesy of Escher

29
Computer Art
• Fine arts, commercial art
• Artistic tools for
digital art:
– Mathematical software
(Matlab, Mathematica)
– CAD software
– Sculpting, painting,
calligraphy systems
• Graphical user interfaces
• Special input devices
(pressure-sensitive stylus,
graphical tablet, etc.)
Baxter and Scheib demonstate their haptic art kit, at UNC

30
Computer Art
• Digital
Sculpting
31
Computer Art
• Digital Painting

32
Courtesy of Kim et al.
Computer Art
• Digital Calligraphy

33
Courtesy of Tai et al.
Prerequisites: Basic Requirements
• Computer science
– Programming language: C/C++, Java, …
– Data structure: array, list, queue, …
• Mathematics
– Linear algebra: scalar, vector, matrix, dot
product, cross product, …
– Calculus: derivatives, function plot,
curves, surfaces, …
– Geometry: Euclidean geometry, analytic geometry
• Computer graphics has a strong 2D/3D geometry
component! 34
Mathematical Background
• Computer graphics has a strong 2D/3D geometry component
• Basic linear algebra is also helpful – matrices, vectors,
dot products, cross products, etc.
• More continuous math (vs. discrete math) than in
typical computer science courses
• Advanced math/physics for research:
– Modeling: Differential Geometry – curves, surfaces, solids
– Animation: Computational Solid Mechanics, Fluid Dynamics
– Rendering: Optics
– …

35
Different Perspectives
• Application-oriented
– Motivation, driven by real problems
– E.g. scientific visualization, simulation, animation, virtual
reality, computer-aided design, …
• Mathematics-oriented
– Mathematical elements
– E.g. computational geometry, differential geometry, PDEs, …
• Programming-oriented
– Modeling and rendering primitives: triangle mesh, point clouds, splines,

– Basic procedural routines: edge flip, edge collapse, subdivision routines,

• System-oriented
– Architecture, hardware, and software components
– E.g. workstation, cluster, GPU, …
36
What’s computer graphics course all about?

Not!
Paint and Imaging packages (Adobe Photoshop)
Cad packages (AutoCAD)
Rendering packages (Lightscape)
Modelling packages (3D Studio MAX)
Animation packages (Digimation)

37
What’s computer graphics all about?
•Graphics programming and algorithms
•OpenGL, Glut, rendering …
•Graphics data structures
• polygonal mesh, half-edge structure…
•Applied geometry, modeling
•Curve, surfaces, transformation, projection…

Well, it is a Computer Science course!

38
Presentation Outline
• What is computer graphics?
• 3D graphics pipeline
• Programming basics

39
Two Approaches
• Don’t care the time/costs, want results
– Special effects, Movie
• Don’t care results, want real-time cheap
– Games, Virtual Reality
• Recently: a lot of convergence
– Movie quality games

40
Two Basic Questions
• What to render?
– Scene representation
– Modeling techniques
– Animation, simulation
– ...

• How to put it on the screen?


– Projection
– Visibility
– Illumination and shading
– …

41
Basic Topics – Undergraduate
• Hardware, system architecture
– Basic display devices
– Raster-scan system (rasterization)
– Input / output devices: keyboard, mouse,
haptics, data glove, scanner, …
– Software packages: standards, APIs,
special- purpose software

42
Basic Topics – Undergraduate
• 2D / 3D transformation
and viewing
– 3D viewing pipeline
– Multiple coordinate
system and their
transformation
– Projection:
parallel,
perspective
– Mathematical
(matrix)
representations
43
Basic Topics – Undergraduate
• Ray-casting and ray-tracing
– Creating photorealistic rendering images

44
Basic Topics – Undergraduate
• Geometric models
– Curves, surfaces, solids
– Polygonal models
– Parametric representations
– Implicit representations
– Boundary representations
– Boolean operations
(union, subtraction, …)
– Editing, Deformation

45
Basic Topics – Undergraduate
• Illumination and
Shading
– Light properties,
light simulation
ambient
– Local
illumination
(ambient, diffuse,
specular)
– Global illumination (ray-
tracing) diffuse & ambient
46
Specular & diffuse & ambient
3D Graphics Pipeline

Animation & Rendering


3D Model Acquisition Geometric Modeling

Point clouds Curves & surfaces Ray tracing


Digital geometry processing Texture synthesis
Multi-resolution modeling Appearance modeling
… Physics-based simulation
47

Graphics Rendering
• Conversion of a 3D scene into a 2D image

48
Rendering Pipeline
• Build a pipeline
• Process 3D information in a series of steps
• Each step generates results for the next one

Geometric Geometric
processing Rasterization Display
modeling

Determine Convert floating Adjust pixels


Create 3D which objects point geometry for special
objects appear and how to integer pixel results

49
The Camera Analogy

Viewing: position position


camera viewing
volume

Modeling: position position


model model
Projection: choose choose
lens v.v. shape
Viewport: choose choose
photo portion
size of screen
50
3D Models
• Arbitrary shapes can be triangulated!
Polygonal approximation of surfaces

Any 2D shape (or 3D surface) can be approximated with locally


linear polygons. To improve, we only need to increase the
number of edges
Geometric Geometric
processing Rasterization Display
modeling
51
How Do We Represent Triangles?
V5 Face table
V1
F1 V1,V3,V2
F3 Vertex table
F2 V1,V4,V3
F2 V1 (x1,y1,z1)
V4 F1 F3 V5,V1,V2
V2 (x2,y2,z2)
V3 (x3,y3,z3)
V2
V3 V4 (x4,y4,z4)
V5 (x5,y5,z5)

Geometric Geometric
processing Rasterization Display
modeling
52
How Do We Represent Triangles?
• Example

mesh with 10k triangles

Geometric Geometric
processing Rasterization Display
modeling
53
Modeling Transformation
• 3D scene
– Many 3D models
– Each one has its own coordinate system –
object/model coordinates
• Modeling transformation
– Place the objects in the world coordinate system
– Translation, scaling, shearing, and rotation
• Result:
– Object/model coordinates (local)  world coordinates (global)
– All vertices of scene in shared 3-D “world” coordinate system

Geometric Geometric
processing Rasterization Display
modeling
54
Modeling Transformation: 2D Example
• Translation

55
Modeling Transformation: 2D Example
• Rotation

56
Modeling Transformation: 2D Example
• Scaling

57
Modeling Transformation: 2D Example
• Shearing

58
Modeling Transformation: 2D Example
• Translation

• Rotation

• Scaling

• Shearing

• Can we represent the above transformations in


a unified format?
59
Homogeneous Coordinates
• Each point (x, y) is represented as (x, y, 1)
– Append a 1 at the end of vector!
• All transformations can be represented as
matrix multiplication!
• Composite transformation becomes much easier

Conventional coordinate homogeneous coordinate

60
Homogeneous Coordinates
• All transformations can be represented as
matrix multiplication!
• Composite transformation becomes much easier!

61
Homogeneous Coordinates
• Composite transformation

• Matrix multiplication
62
Homogeneous Coordinates
• Transformation in homogeneous coordinates

63
Homogeneous Coordinates
• Rotation in homogeneous coordinates

64
Homogeneous Coordinates
• Scaling in homogeneous coordinates

65
Homogeneous Coordinates
• Shearing in homogeneous coordinates

66
Viewing Transformation
• Rotate & translate the world to lie directly in
front of the camera
– Typically place camera at origin
– Typically looking down -Z axis
• Result:
– World coordinates  view coordinates
– Scene vertices in 3-D “view” or
“camera” coordinate system

Geometric Geometric
processing Rasterization Display
modeling
67
Projection
• Projection
transform
– Perspective projection
– Orthographic projection
• Results
– View coordinates  screen coordinates
– 2-D screen coordinates of clipped vertices
Geometric Geometric
processing Rasterization Display
modeling 68
Rasterization & Display
• Convert a vertex representation in the view
coordinate system to a pixel representation on
computer screen

Geometric Geometric
processing Rasterization Display
modeling 69
Basic Topics – Undergraduate
• Hardware, system architecture, raster-scan
graphics (rasterization)
• 2D / 3D transformation and viewing
• Ray-casting and ray-tracing
• Interface
• Geometric models
• Color representations
• Hidden object removal
• Illumination models

70
Illumination and Shading
• Now we’ll look at how to shade surfaces to make them look 3D
• We’ll see different shading models, or frameworks that determine a surface’s color at a
particular point
• These shading models can be easily modified
to incorporate illumination and shading into
the volume rendering pipeline
• A shading model checks what the lighting
conditions are and then figures out what the
surface should look like based on the
lighting conditions and the surface
parameters:
• Amount of light
reflected (and which
color(s))
• Amount of light absorbed
• Amount of light
transmitted (passed
through)
• Thus, we can characterize a surface’s shading
parameters by how much incoming light that
strikes a surface is reflected to the eye, absorbed by the object, and transmitted
71
Ambient Reflection
• Ambient reflection refers to reflected light that
originally came from the “background” and has
no clear source
• Models general level of brightness in the scene
• Accounts for light effects that are difficult to
compute (secondary diffuse reflections, etc)
• Constant for all surfaces of a particular object
and the directions it is viewed from
• Directionless light
• One of many hacks or kludges used in computer
Ambient-lit sphere
graphics since every ray of light or photon has
to come from somewhere!
• Imagine yourself standing in a room with the curtains drawn and the lights off
• Some sunlight will still get through, but it will have bounced off many objects before
entering the room
• When an object reflect this kind of light, we call it ambient reflection
• Ia = ka · IA IA = ambient light ka = material’s ambient reflection coefficient
72
Diffuse Reflection
• Models dullness, roughness of a surface
• Equal light scattering in all directions
• For example, chalk is a diffuse reflector
• Unlike ambient reflection, diffuse reflection is
dependent on the location of the light relative to the
object
• So, if we were to move the light from the front of the
sphere to the back, there would be little or no diffuse
reflection visible on the near side of the sphere Ambient & diffuse
• Compare with ambient light, which has no direction
• With ambient, it doesn’t matter where we position the
camera since the light source has no true position
• Computer graphics purists don’t use ambient lights and
instead rely on diffuse light sources to give some
minimal light to a scene

Diffuse only 73
Specular Reflection
• Models reflections on shiny surfaces
(polished metal, chrome, plastics, etc.)
• Specular reflection is view-dependent – the
specular highlight will change as the
camera’s position changes
• This implies we need to take into account
not only the angle the light source makes
with the surface, but the angle the viewing
ray makes with the surface
• Example: the image you perceive in a
mirror changes as you move around
• Example: the chrome on your car shines in
different ways depending on where you
stand to look at it

74
Specular Reflection

Specular & diffuse & ambient Specular & diffuse

Specular & ambient Specular only 75


Specular Reflection
• Ideal specular reflector (perfect mirror)
reflects light only along reflection vector R
• Non-ideal reflectors reflect light in a lobe
centered about R
• Phong specular reflection model:
Is = ks IL (cos α)ns = ks IL (E·R)ns
• cos(α) models this lobe effect
• The width of the lobe is modeled by Phong
exponent ns, it scales cos(α)
• IL: intensity of light source
• L: light vector
• R: reflection vector = 2 N (N·L) - L
• E: eye vector = (Eye-P) / |Eye-P|
• α: angle between E and R
• ns: Phong exponent
• ks: specular reflection coefficient

76
increasing ns value
Presentation Outline
• What is computer graphics?
• 3D graphics pipeline
• Programming basics

77
Programming in Graphics
• Programming languages
– C/C++, JAVA
• Graphics library -- a software interface to
graphics hardware
– Easy to use
– Programs run efficiently
– Hardware-independent
• Examples:
– OpenGL
– DirectX (Microsoft)
– Java3D

78
OpenGL
• Contains a library of over 200 functions
• Portable
– Implementations available for nearly all hardware and operating systems
• Portability  input or windowing are not included
– Options for Windows: GLUT or MFC
– GLUT = OpenGL Utility Toolkit
– Implementations of GLUT exist for most computing environments
– GLUT is portable
• Controlled by the OpenGL Architectural Review Board
– SGI, IBM, NVIDIA, ATI, … -- some major players in CG
• www.opengl.org

79
Major Elements in OpenGL Programming
• Let us recall the rendering pipeline (which is shown earlier)
Geometric modeling Geometric processing
Rasterization Display

Determine Convert floating Adjust pixels


Create 3Dwhich objects appear and how
point geometry to
forinteger
specialpixel
results
objects

Our task OpenGL’s task

• Our focus now becomes: geometric modeling and processing


• Rasterization & display operations are mostly done for us by
OpenGL (it also supports certain special rendering effects
such as texture mapping and anti-aliasing)

80
Major Elements in OpenGL Progamming
• Geometric primitives
– Points, lines, polygons
– Smooth curves and surfaces rendered in a discrete form
• Appearance
– Color and material
– Definition of geometric objects is separate from definition
of appearance

81
OpenGL Commands: A Quick Look

• Just function calls: type suffix (if variable),


glColor3f(1.0, 1.0, 1.0); can also end with “v”
command name

GL prefix Number of arguments (if variable)

• Same command, different arguments:


glColor3b(255,255,255); -- same result
82
Draw Geometric Primitives
• Example
glBegin(mode); Specify geometric primitivies

glColor3f(1,0,0); Specify appearance

glVertex3f(0,1.5,-2); Specify vertices


glVertex3f(0,0.8,0);
……

glEnd(void); End OpenGL drawing

83
Geometric Primitives Names
• GL_POINTS: individual points
• GL_LINES: pairs of vertices interpreted as individual line segments
• GL_LINE_STRIP: series of connected line segments
• GL_LINE_LOOP: similar to above, with a segment added between last and first vertices
• GL_TRIANGLES: triples of vertices interpreted as triangles.
• GL_TRIANGLE_STRIP: linked strip of triangles.
• GL_TRIANGLE_FAN: linked fan of triangles.
• GL_QUADS: quadruples of vertices interpreted as four-sided polygons
• GL_QUAD_STRIP: linked strip of quadrilaterals
• GL_POLYGON: boundary of simple, convex polygon

84
OpenGL Primitives

• Example
glBegin(GL_TRIANGLE_STRIP);
glColor3f(1,1,1); // color V2 V4

glVertex2f(0,0); // v1
glVertex2f(0,1); // v2 glVertex2f(1,0); // v3 glVertex2f(1,1); // v4 glVertex2f(2,0); // v5
glEnd();
V5
V1 V3

85
OpenGL Primitives
• Demo

86
OpenGL Geometric Processing
• Viewing: specify the view point (camera)
– gluLookAt
• Modeling: place the models
– glTranslate, glRotate
• Projection: set the lens
– gluPerspective, gluOrtho2D
• Viewport: set the size of the photos
– gluViewport

87
OpenGL Geometric Processing
• Place the camera
– gluLookAt(eye_x, eye_y, eye_z, // view point
cen_x, cen_y, cen_z, // center point
up_x, up_y, up_z); // up vector

Center point
Up vector

Eye point

88
OpenGL Geometric Processing
• Set the lens
– gluPerspective (fovy, // view angle in degrees
aspect, // aspect ratio of x (width) to y (height)
zNear, zFar); // near and far clipping plane

89
OpenGL Geometric Processing
• Demo

90
OpenGL Geometric Processing
• Demo

91
Advanced Topics
• Geometric Modeling & Processing
– Editing & deformation
• Interactive
• Intuitive
• Natural
– Variety of tools
• Boolean
– User interface
• 2D sketch
– Other topics
• Reconstruction
• Parameterization
• …

92
Courtesy of Microsoft Research Asia
Advanced Topics
• Computer Animation & Simulation
– Solving PDEs
– Speed vs. accuracy
– Physics/semi-physics
– Numerical stability
– Solid
• Linear: fast,
distortion
• Nonlinear: slow,
accurate
– Fracture
• Connectivity
• Topology
– Fluid
93
Courtesy of Muller, O’brien, Fedkiw et al.
Advanced Topics
• Human-Computer Interaction, Virtual Reality
– Dynamic manipulation
– Computational power
– Low-end devices

94
Courtesy of James, Igarashi et al.
Other Advanced Topics
• Programmable graphics hardware
• Visualization
• Medical Imaging
• Non-photorealistic rendering
• Image-based rendering
• …
• Each topic can be a course of its own!!!

95
Graphics Textbooks
• If you want to study computer graphics seriously:
• Computer Graphics with OpenGL, 3rd Edition, Donald Hearn
and M. Pauline Baker, Prentice Hall, 2004.
• Computer Graphics: Principles and Practice, 2nd edition,
Foley, van Dam, Feiner, and Hughes, Addison-Wesley
Professional, 1995
• Many other textbooks and/or reference books are available
in bookstores…

96
Conclusions
• Bigger picture about Computer Graphics
– Animation, computer-aided design, medical application,
entertainment, and other applications relevant to
Computer Graphics
– Key components for undergraduates
– Advanced topics for senior undergraduates, and
graduate research
• Graphics rendering pipeline
– Geometric modeling
– Modeling/viewing transformation
– Rasterization & Display
• Programming basics
– OpenGL
97
Conclusion

98
Questions?

99
Questions?

100

You might also like