Key Points Points can be identified by coordinates. Lines and shapes can be described by equations. Approximating abstract shapes on a grid of finite pixels leads to `jaggies'. Anti-aliasing can offset this effect. Bezier curves are drawn using four control points. Bezier curves can be made to join together smoothly into paths. Paths and shapes can be stroked and filled. Geometrical transformations — translation, scaling, rotation, reflection and shearing — can be applied easily to vector shapes.
Key Points Three approaches to 3-D modelling are: constructive solid geometry, free-form modelling and procedural modelling. 3-D rendering models the effect of light and texture, as well as displaying the modelled objects in space. Ray tracing and radiosity are computationally expensive rendering algorithms that can produce photo-realistic results. Specialized 3-D applications, such as Bryce and Poser, are easier to use, and may be more efficient, than more general 3-D modelling and rendering systems.
Introduction Vector Graphics –Compact –Scaleable –Resolution independent –Easy to edit –Attractive for networked multimedia
Introduction The compactness of vector graphics makes them particular attractive for network multimedia, since the large sizes of the images files lend to excessive download times. Absence of any standard format for vector graphics prevents it from popularization. –As SVG and SWF standards are adopted, this will change.
Introduction In vector graphics, images are built up using shapes that can easily be described mathematically. Vector graphics has been eclipsed ( 衰 退 ) in recent years by bitmap graphics for 2D images. Vector graphics is mandatory ( 強制性 ) in 3D graphics, since processing voxels is still impractical in modern machines.
Coordinates and Vectors Image stored as a rectangular array of pixels. Coordinates (x,y), Fig. 4.1 –Integer Real coordinate, (2.35, 2.9), Fig. 4.2 Drawing programs allow to display axes (ruler) along edges of your drawing Vectors Approximating a straight line, Fig. 4.4
Coordinates and Vectors A B O A(3,7) B(7,3) O(0,0) Points
Anti-aliasing Approximating a straight line Using intermediate grey values Brightness is proportional to area of intersection At the expense of fuzziness
Shapes A simple mathematical representation –Stored compactly and rendered efficiently Rectangles, squares, ellipses and circles, straight lines, polygons, Bezier curves –Spirals and stars, sometimes Fills with color, pattern or gradients
Hermite parametric cubic curves C = C(t) = a 0 + a 1 t+ a 2 t 2 + a 3 t 3 – Four vectors a 0, a 1, a 2, a 3 (12 coefficients, 3D) are required to define the curve. – Usually these vectors can be specified by curve’s behavior at end points t=0 and t=1 Assume endpoints C(0), C(1) tangent vectors, C’(0), C’(1) are given, then a 0 = C(0) a 0 + a 1 + a 2 + a 3 = C(1) a 1 = C’(0) a 1 +2 a 2 + 3 a 3 = C’(1) Hermite Curves
a 0 = C(0) a 1 = C’(0) a 2 = 3( C(1) - C(0)) - 2C’(0) - C’(1) a 3 = 2 ( C(0) - C(1)) + C’(0) + C’(1) C(t) = (1-3t 2 + 2t 3 ) C(0) + (3t 2 -2t 3 ) C(1) + (t - 2t 2 + t 3 ) C’(0) + (-t 2 + t 3 ) C’(1)) C(t) = [1 t t 2 t 3 ] 1 0 0 0 C (0) 0 0 1 0 C (1) -3 3 3 -2 C’(0) 2 -2 1 1 C’(1) T0T0 T1T1
Bezier Curves Given four control points b 0, b 1, b 2, b 3, then the corresponding Bezier curve is given by C(t) = (1-t) 3 b 0 + 3t(1-t) 2 b 1 + 3t 2 (1-t)b 2 + t 3 b 3 C’(t) = -3(1-t) 2 b 0 + 3(1-4t+3t 2 )b 1 + 3(2t-3t 2 )b 2 + 3t 2 b 3 C(0)=b 0 C(1)=b 3 C’(0)=3(b 1 -b 0 ) C’(1)=3(b 3 -b 2 )
Bezier Curves C(t) = [1 t t 2 t 3 ] 1 0 0 0 b 0 -3 3 0 0 b 1 3 -6 3 0 b 2 -1 3 -3 1 b 3 b0b0 b1b1 b2b2 b3b3
Bezier Curves Four control points –Two endpoints, two direction points –Length of lines from each endpoint to its direction point representing the speed with which the curve sets off towards the direction point –Fig. 4.8, 4.9
Bezier Curves –Constructing a Bezier curve Fig. 4.10-13 Finding mid-points of lines
Bezier Curves –Figs. 4.14-18 Same control points but in different orders
Bezier Cubic Curves x(t) = a x t 3 + b x t 2 + c x t + x 1 y(t) = a y t 3 + b y t 2 + c y t + y 1 p 1 = (x 1, y 1 ) p 2 =(x 1 + c x /3, y 1 + c y /3) p 3 =(x 2 + (c x + b x )/3, y 2 + (c y + b y )/3) p 4 =(x 1 + c x + b x + a x, y 1 + c y + b y + a y )
Smooth Joins between Curves Fig. 20 –Length of direction lines is the same on each side Smoothness of joins when control points line up and direction lines are the same length Corner point –Direction lines of adjacent segments ate not lines up, Fig. 4.21
Changing a smooth curve to a corner and vice versa convert-anchor-point tool
Paths Joined curves and lines Open path Closed path
Each line or curve is called a segment of the path Anchor points: where segments join Pencil tool: freehand –Bezier curve segments and straight lines are being created to approximate the path your cursors follows –A higher tolerance leads to a more efficient path with fewer anchor points which may smooth out of the smaller movements you made with pencil tool
Stroke and Fill Apply stroke to path –Drawing program have characteristics such as weight and color, which determine their appearance. –Weight= width of stroke –Dashed effects Length of dashes Gaps between them
Line Caps & Joins Line cap –Butt cap –Round cap –Projecting cap Line Joins –Miter –Rounded –Bevel
Fill Most drawing programs also allow to fill an open path –Close the path with straight line between its endpoints –Flat color, pattern or gradients –Gradient: linear, radial –Texture
Fill Pattern –Tiles: a small piece of artwork –Use pattern to stroke paths, a textured outline Arrange perpendicular to path, not horizontally Include special corner tiles If you want to fill a path, you need to know which areas are inside it. (Fig. 4.27) –Non-zero winding number rule Draw a line from the point in any direction Every time the path crosses it from left to right, add one to winding number; every time the path crosses from right to left, subtract one from winding number If winding number is zero, the point is outside the path, otherwise it is inside. Depends on the path’s having a direction
Transformations and Filters Transformations –Translations: linear movement –Scaling, rotation about a point –Reflective about a line –Shearing: a distortion of angles of axes of an objects
Filters Free manipulation of control points Roughening –moves anchor points in a jagged array from the original object, creating a rough edge on the object
Scribbling filter –randomly distorts objects by moving anchor points away from the original object
Rounding –converts the corner points of an object to smooth curves –Filter > Stylize > Round Corners Only relatively few points need to be re- computed
3-D Graphics Axes in 3D: Fig. 4.35 Rotations in 3D: Fig. 4.36
3-D Graphics Right-handed coordinate system, Fig. 4.37 2D: define shapes by paths 3D: define objects by surfaces Hierarchical modeling –A bicycle consists of a frame, two wheels, …
Rendering In 3D, we have a mathematical model of objects in space, but we need a flat picture. –Viewpoint –Position of camera –Scaling with distance –Lighting: position, intensity, type Interaction of light: underwater, smoke-filled room –Texture –Physical impossibilities: negative spotlights, absorbing unwanted light
3D Models Constructive solid geometry –A few primitive geometric solids such as cube, cylinder, sphere and pyramid as elements from which to construct more complex objects –Operators: union, intersection, and difference, Figs. 38-40 –Physical impossibility
Free Form Modeling Mesh of polygons A certain regular structure or symmetry from 2D shapes –Treat a 2D shape as cross section and define a volume by sweeping the cross section along a path Extrusion –To produce more elaborate objects Curved path can be used Size of cross section can be altered Lathing
Procedural Modeling Models described by equations Fractals, Fig. 4.42 –Coastlines –Mountains –Edges of cloudy –Fig. 4.43, snowflake –Fractal mountainside, Fig. 4.44
Procedural Modeling Metaballs –Model soft objects –Fig. 4.47 –Complex objects can be built by sticking metaballs together Particle systems –Features made out of many particles –Rains, fountains, fireworks, grass
Metaballs Metaballs are also included and make a great addition to helping create base models for further editing. A Metaball can be used in either a positive or negative way in trueSpace 5.
Phong Shading with different material settings and shininess
Ray tracing –Tracing the path of a ray of light back from each pixel, Plate 8 –Photo-realistic graphics –High-performance workstations Radiosity –Interactions between objects –Model complex reflections that occur between surfaces that are close together
POV-Ray Persistence of Vision Ray Tracer http://www.povray.org/, Free http://www.povray.org/
Radiosity (a) Actual photo (b) Radiosity image More accurately based on physics of light than other shading algorithms
Texture Mapping Adding surface details –Mathematically wrapped over surface of object –Produce appearance of object Bump mapping –Apply bumpiness or roughness and transparency mapping and reflection mapping, which modify the corresponding optical characteristics on the basis of a 2D map
Bump Mapping St.Mattew head model is first simplified, reducing its geometry from 4 millions of faces (left) to just 5 hundreds (middle). The detail lost is then reproduced with an ad- hoc bumpmap (right). The resulting model is dynamically shaded, very similar to the original, but rendered incomparably faster.
Specialized Types of 3D Graphics Build a body out of arms and legs Rendering engine can use algorithms that are optimized for the characteristic models produced within limits set by the modeller –MetaCreations Bryce for landscapes and Poser for human and animal figures
Bryce Corel Constructed from a grayscale image whose brightness represents height of 3D terrain model Terrains can be based on an imported image, or one painted by hand; they can be generated using fractals or built from satellite data. Sky, atmosphere, clouds, fog, haze, sun, moon, stars, rainbows
Poser Curious Labs Manikins ( 人體模型 ) Physically realizable: hand on a figure of a person cannot turn 360