Digital Media Dr. Jim Rowan ITEC 2110

advertisement
Digital Media
Dr. Jim Rowan
ITEC 2110
Vector Graphics
• Elegant way to construct digital images
that
– have a compact representation
– are scalable
– are easy to edit
• Mandatory for 3-D modeling
Coordinate systems
• Bitmapped pixel coordinates (integer)
4
3
x
4,0
4,1
4,2
4,9
3,0
3,1
3,2
3,9
0,0
0,1
0,2
0,9
0
1
2
1
0
2
3
4
y
9
Coordinate systems
bitmapped
B
4
A
3
x
2
E
1
0
C
0
D
1
2
3
4
y
A= ( , ) B= ( , ) C= ( , ) D= ( , ) E= ( , )
9
Coordinate systems
• Vector graphics coordinates (real values)
• A point is defined by its x and y coordinate
y
(x,y)
2
Can be fractional
Can be negative
(1.41, 1.74)
1
0
1
2
3
x
Coordinate systems
y
• Vector graphics coordinates (real values)
• A displacement (distance between points or movement
from one point to another) can be defined by a pair of
points
displacement from
point 1
2
point 1 to point 2...
(1.41, 1.74)
= [(x2 - x1), (y2 - y1)]
(3.12 - 1.41, 0.95 - 1.74)
(1.71,-0.79)
1
point 2
(3.12, 0.95)
0
1
2
3
x
AKA vector
y
• Vectors have magnitude (length) and direction
• This vector goes down 0.79 and to the right 1.71
• It is a two dimensional (x&y) vector that goes down and
to the right (1.71,-0.79)
2
(1.41, 1.74)
1
(3.12, 0.95)
0
1
2
3
x
Vector graphics?
• Another grandfathered term
• From the time when displays were directly
“steered” by their programs
• Give the display two points and it would move
the beam from one point to the other drawing a
line...
• This movement could be described as a vector
since it has magnitude (length) and direction
(from one point to the other)
Absolute vs Window
coordinates
(top paragraph of page 88)
• rendering software renders images in a
window
• windows can be moved at will so...
• the rendering program only knows where the
object is relative to the window it is in
• rendering software does not know where the
window is on the screen
• a coordinate transformation must be
performed
Bounding Box
• what point is used to place an object?
• images can be contained inside a
“bounding box” which is the smallest
box that contains all the points found in
an object
• bounding box is placed in relation to its
(0,0) position
Window coordinates
x
(0,0)
y
desktop screen
bounding box
(100,103)
window
window 1
(410,290)
window 1
(150,200)
(760,570)
Vector graphics
• Store shapes (like the line) very economically
in the form of formulas or equations
• But which formula?
• A line is defined by
y = mx + b
(but that is for an infinitely long line)
• In computer graphics we want a line
segment, i.e. it has endpoints
• Since a line segment can also be completely
described by its endpoints…
Here’s the vector we saw
earlier defined by it’s two
endpoints
2
(1.41, 1.74)
(3.12, 0.95)
1
0
1
2
3
x
Now let’s convert this
vector graphic
to a
bitmapped graphic
Convert Vector to Bitmapped
Visually... “completely cover
the vector with pixels”
2
1
0
1
2
3
x
Vector to Bitmapped
2
1
0
1
2
3
x
The artifact created:
The “Jaggies”
This can result in “aliasing”
2
1
0
1
2
3
x
Aliasing
When converting a vector graphic to a
bitmapped graphic we can’t create a
perfect representation
What we end up with is a bitmapped
version of the vector
It’s not really the original but rather an
alias of the original version
Aliasing
• Even we view a bitmapped digital
photograph on a display, the reconstruction is
performed by a display device, and by our
eyes and by our brain.
• If the reconstructed image differs from the
original image, we are seeing an alias.
• http://en.wikipedia.org/wiki/Aliasing
To combat aliasing:
anti-aliasing
• Techniques to mitigate the affect of
aliases
• Smoothes the edges of jagged lines
Using anti-aliasing techniques
on our original line
our pixellated line to be
displayed (the external
model) is in black
2
1
0
1
2
3
x
combating aliases:
anti-aliasing techniques
the original vector graphic line
stored in the internal model is in
red
our pixellated line to be
displayed (the external
model) is in black
2
1
0
1
2
3
x
combating aliases:
anti-aliasing techniques
2
1
0
1
2
3
x
combating aliases:
anti-aliasing techniques
“average the grayness”
2
1
0
1
2
3
x
• So far we have just looked at a line
– The line was stored as its endpoints
• What about other shapes?
vector graphics:
shapes
• connected lines are stored as a polyline
– internally the polyline is stored as a series of
points
• closed polylines form a shape
• open polyline is a jagged line
vector graphics:
rectangles and squares
• rectangles can be described by two corners
• squares are special cases of the rectangle
vector graphics:
ellipses and circles
• ellipses can be described by two points
• circles are special cases of the ellipses
– they are stored as a single point
http://en.wikipedia.org/wiki/Ellipse
vector graphics: curves
• Question: How would you draw a curve
using a computer with a mouse?
• You can’t draw smooth lines very easily
• A line tool with handles (based on the
Bezier curve) can be manipulated by
those handles
Lines and curves
• Bezier curves can be smoothly joined
together
• An anchor point is the point where one
joins the other
• When a curve closes on itself it is
considered a closed curve
• When it doesn’t it’s an open curve
Lines and curves
• Closed (and open for that matter) lines can
be filled
– This is how drawn shapes become objects like the
cowboy on Toy Story (except that the characters in
toy story were created in 3D, not 2D)
– solid color, pattern or gradient (linear or radial)
– Patterns are built of tiles that match across x & y
• Lines have ends
– ends can be messy when joined
– mitre, rounded, square, bevel
Manipulating
objects AKA closed curves
• Translation is a simple up/down side-toside movement
• Scaling: make bigger or smaller
• Rotation about a point
• Reflection about a line
3-D
• Way more complex than 2-D
• 3-D shapes (objects) are defined by their
surfaces
• Made even more complicated by the fact that
a 3-D object inside the computer must be
translated into 2-D to be rendered on a
computer screen...
– This results in the need to specify the viewpoint
Structural hierarchy
• Things in the real world are
compositions of smaller things
• Things in the 3-D graphics world are
also compositions of smaller things
• Hierarchical structure is an excellent
way of coping with complexity
• Also seen in object-oriented
programming like Java and Squeak!
Car
Structural hierarchy
– Wheels (4)
• tire
• wheel
• hubcap
– Doors (2)
• handles
– inside
» lever
– outside
» button
» handle
• window(s)
– Lights
• headlights (2)
• tail lights (2+)
• stop lights (2+)
3-D: additional complexity
• rendering is extremely computationally
expensive (demanding)
– lighting
•
•
•
•
natural
artificial
reflections off other objects in the scene
shadows cast by other objects in the scene
– surface texture affects appearance
Questions?
Download