Digital Media Dr. Jim Rowan ITEC 2110 So far… • We have compared bitmapped graphics and vector graphics • We have discussed bitmapped images, some file formats and some file compression techniques • Today we are going to talk in a bit more detail about vector graphics • Later we will cover Color • Then 3D vector graphics Vector Graphics… • An elegant way to construct digital images that – have a compact representation – are scalable – are easy to edit • And mandatory for 3-D modeling First… Coordinate systems 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 • 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 Absolute & Relative Coordinates The Bounding Box • It’s a way to locate an object in space • what point is used to place an object? – the center of the object’s mass? – the upper left corner? – the lower right corner? • images can be contained inside a “bounding box” which is the smallest box that contains all the points found in an object Bounding Box 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 To display a vector graphic you need to convert the vector graphic line 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: A jagged line… This is “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) • Lines have ends – ends can be messy when joined so… – mitre, rounded, square, bevel Manipulating objects • Translation: is a simple up/down sideto-side 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 Questions?