Computer Graphics Overview
Computer Graphics Overview
Computer Graphics Overview
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…
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
“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
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.
14
Textile Industry
• Fashion
design
• Real-time cloth animation
• Web-based virtual try-
on applications
15
Courtesy of Thalmann, Switzerland
Computer-Aided Design (CAD)
17
Medical Applications
• Significant role in saving lives
• Training, education, diagnosis, treatment
20
Scientific Visualization
• Medical imaging & visualization
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
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…
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
– ...
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
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
49
The Camera Analogy
Geometric Geometric
processing Rasterization Display
modeling
52
How Do We Represent Triangles?
• Example
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
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
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
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
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