3d object representations ceng 477 introduction to computer graphics fall 2010-2011
Post on 19-Dec-2015
219 views
TRANSCRIPT
![Page 1: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/1.jpg)
3D OBJECT 3D OBJECT REPRESENTATIONSREPRESENTATIONS
CEng 477Introduction to Computer Graphics
Fall 2010-2011
![Page 2: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/2.jpg)
Object Representations
● Types of objects:geometrical shapes, trees, terrains, clouds, rocks, glass, hair, furniture, human body, etc.
● Not possible to have a single representation for all
– Polygon surfaces
– Spline surfaces
– Procedural methods
– Physical models
– Solid object models
– Fractals
– ……
![Page 3: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/3.jpg)
3D Objects
How can you represent this object in a computer?
Michael Kazhdan, JHU
![Page 4: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/4.jpg)
3D Objects
This one?
Michael Kazhdan, JHU
![Page 5: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/5.jpg)
3D Objects
This one?
Michael Kazhdan, JHU
![Page 6: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/6.jpg)
3D Objects
This one?
![Page 7: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/7.jpg)
3D Objects
This one?
![Page 8: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/8.jpg)
Two categories
● 3D solid object representations can be generally classified into two broad categories– Boundary representations
● Inside and outside of objects are defined by this representation. E.g., polygon facets, spline patches
– Space-partitioning representations● The inside of the object is divided into non-
overlapping regions and the object is represented as a collection of these interior components. E.g., octree representation
![Page 9: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/9.jpg)
Polygon Surfaces (Polyhedra)
● Set of adjacent polygons representing the object exteriors.
● All operations linear, so fast.
● Non-polyhedron shapes can be approximated by polygon meshes.
● Smoothness is provided either by increasing the number of polygons or interpolated shading methods.
Levels of detail Interpolated shading
![Page 10: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/10.jpg)
Data Structures
● Data structures for representing polygon surfaces:
– Efficiency● Intersection calculations● Normal calculations● Access to adjacent polygons
– Flexibility● Interactive systems● Adding, changing, removing vertices, polygons
– Integrity
![Page 11: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/11.jpg)
Polygon Tables
● Vertices Edges Polygons
● Forward pointers:i.e. to access adjacent surfacesedges
V1
V2
V3
V4
V7
V8
V6
V5
E1
E2
E3
E4
E6E11
E7
E10E9
E8
E5V1:(x1,y1,z1)V2:(x2,y2,z2)V3:(x3,y3,z3)V4:(x4,y4,z4)V5:(x5,y5,z5)V6:(x6,y6,z6)V7:(x7,y7,z7)V8:(x8,y8,z8)
E1: V1,V2
E2: V2,V3
E3: V2,V5
E4: V4,V5
E5: V3,V4
E6: V4,V7
E7: V7,V8
E8: V6,V8
E9: V1,V6
E10: V5,V6
E11: V5,V7
S1: E1,E3,E10,E9
S2: E2,E5,E4,E3
S3: E10,E11,E7,E8
S4: E4,E6,E11
V1: E1,E9
V2: E1,E2,E3
V3: E2,E5
V4: E4,E5,E6
V5: E3,E4E10,E11
V6: E8,E9,E10
V7: E6,E7,E11
V8: E7,E8
E1: S1
E2: S2
E3: S1,S2
E4: S2,S4
E5: S2 E6: S4
E7: S3 E8: S3
E9: S1 E10: S1,S3
E11: S3,S4
![Page 12: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/12.jpg)
● Additional geometric properties:
– Slope of edges
– Normals
– Extends (bounding box)● Integrity checks
V , Ea , Ebsuch that V E a ,V Eb
E , S such that E S
S , S is closed
S1, S 2 such that S1 S 2
S k is listed in Em Em is listed in S k
![Page 13: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/13.jpg)
Polygon Meshes
● Triangle strips:123, 234, 345, ..., 10 11 12
1 2 3 4 5 6 7 8 9 10 11 12
● Quadrilateral meshes:n×m array of vertices
1 3
2 4
5
6
7
8
9
10
11
12
![Page 14: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/14.jpg)
Plane Equations
● Equation of a polygon surface:
● Surface Normal:
A x B y C z D 0Linear set of equations:A D xk B D yk C D zk 1, k 1, 2, 3
A y1 z2 z3 y2 z3 z1 y3 z1 z2
B z1 x2 x3 z 2 x3 x1 z3 x1 x2
C x1 y2 y3 x2 y3 y1 x3 y1 y2
D x1 y2 z3 y3 z2 x2 y3 z1 y1 z3 x3 y1 z2 y2 z1
N A , B ,Cextracting normal from vertices:N V 2 V 1 V 3 V 1
V1
V2
V3
Counterclockwiseorder.
![Page 15: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/15.jpg)
● Find plane equation from normal and a point on the surface
● Inside outside tests of the surface (N is pointing towards outside):
A , B ,C NN x , y , z D 0P is a point in the surface (i.e. a vertex) D N P
A x B y C z D 0 , point is inside the surfaceA x B y C z D 0 , point is outside the surface
![Page 16: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/16.jpg)
OpenGL Polyhedron Functions
● There are two methods in OpenGL for specifying polygon surfaces.– You can use geometric primitives,
GL_TRIANGLES, GL_QUADS, etc. to describe the set of polygons making up the surface
– Or, you can use the GLUT functions to generate five regular polyhedra in wireframe or solid form.
![Page 17: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/17.jpg)
Drawing a sphere with GL_QUAD_STRIP
void drawSphere(double r, int lats, int longs) {int i, j; for(i = 0; i <= lats; i++) {
double lat0 = M_PI * (-0.5 + (double) (i - 1) / lats); double z0 = sin(lat0);double zr0 = cos(lat0); double lat1 = M_PI * (-0.5 + (double) i / lats); double z1 = sin(lat1);double zr1 = cos(lat1);glBegin(GL_QUAD_STRIP); for(j = 0; j <= longs; j++) {
double lng = 2 * M_PI * (double) (j - 1) / longs; double x = cos(lng);double y = sin(lng); glVertex3f(x * zr0, y * zr0, z0); glVertex3f(x * zr1, y * zr1, z1);
}glEnd();
}}
You will not see it like this untilyou learn “lighting”.
![Page 18: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/18.jpg)
Five regular polyhedra provided by GLUT
Also called Platonicsolids.
The faces are identical regular polygons.
All edges, edge angles are equal.
![Page 19: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/19.jpg)
Tetrahedron
● glutWireTetrahedron ( );● glutSolidTetrahedron ( );● This polyhedron is generated with its center
at the world-coordinate origin and with a radius equal to 3
![Page 20: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/20.jpg)
Cube
● glutWireCube (edgeLength);● glutSolidCube (edgeLength);● Creates a cube centered at the world-
coordinate origin with the given edge length.
![Page 21: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/21.jpg)
Octahedron
● glutWireOctahedron ( );● glutSolidOctahedron ( );● Creates a octahedron with 8 equilateral
triangular faces. The radius is 1.
![Page 22: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/22.jpg)
Dodecahedron
● glutWireDodecahedron ( );● glutSolidDodecahedron ( );● Creates a dodecahedron centered at the
world-coordinate origin with 12 pentagon faces.
![Page 23: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/23.jpg)
Icosahedron
● glutWireIcosahedron ( );● glutSolidIcosahedron ( );● Creates an icosahedron with 20 equilateral
triangles. Center at origin and the radius is 1.
![Page 24: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/24.jpg)
Curved Surfaces
● Can be represented by either parametric or non-parametric equations.
● Types of curved surfaces– Quadric surfaces– Superquadrics– Polynomial and Exponential Functions– Spline Surfaces
![Page 25: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/25.jpg)
Quadric Surfaces
● Described with second degree (quadric) equations.
● Examples:– Spheres– Ellipsoids– Tori– Paraboloids– Hyperboloids
● Can also be created using spline representations.
![Page 26: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/26.jpg)
Sphere
● Non-parametric equation
● Parametric equation using latitude and longitude angles
2222 rzyx
sin
,sincos
,coscos
rz
ry
rx
2/2/
![Page 27: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/27.jpg)
Ellipsoid
● Non-parametric equation
● Parametric equation using latitude and longitude angles
1222
zyx r
z
r
y
r
x
sin
,sincos
,coscos
z
y
x
rz
ry
rx
2/2/
![Page 28: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/28.jpg)
Superquadrics
● Adding additional parameters to quadric representations to get new object shapes.
● One additional parameter is added to curve (i.e., 2d) equations and two parameters are added to surface (i.e., 3d) equations.
![Page 29: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/29.jpg)
Superellipse
1
/2/2
n
y
n
x r
y
r
x
n
y
nx
ry
rx
sin
,cos
yx rr
![Page 30: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/30.jpg)
Superellipse
● Used by industrial designers often
![Page 31: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/31.jpg)
Superellipsoid
11
1222 /2
//2/2
s
z
sss
y
s
x r
z
r
y
r
x
1
21
21
sin
,sincos
,coscos
sz
ssy
ssx
rz
ry
rx
2/2/
![Page 32: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/32.jpg)
Superellipsoid
![Page 33: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/33.jpg)
OpenGL Quadric-Surface and Cubic-Surface Functions
● GLUT and GLU provide functions to draw quadric-surface objects.
● GLUT functions– Sphere, cone, torus
● GLU functions– Sphere, cylinder, tapered cylinder, cone, flat
circular ring (or hollow disk), and a section of a circular ring (or disk)
● GLUT also provides a function to draw a “teapot” (modeled with bicubic surface pathces).
![Page 34: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/34.jpg)
Examples
GLUT sphere
GLUT cone
GLU cylinder
![Page 35: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/35.jpg)
GLUT functions
● glutWireSphere (r, nLongitudes, nLatitudes);
● glutSolidSphere (r, nLongitudes, nLatitudes);
● glutWireCone(rBase, height, nLong, nLat);
● glutSolidCone(rBase, height, nLong, nLat);
● glutWireTorus(rCrossSection, rAxial, nConcentric, nRadial);
● glutWireTorus(rCrossSection, rAxial, nConcentric, nRadial);
● glutWireTeapot(size);
● glutSolidTeapot(size);
![Page 36: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/36.jpg)
GLU Quadric-Surface Functions
● GLU functions are harder to use.● You have to assign a name to the quadric. ● Activate the GLU quadric renderer● Designate values for the surface parameters● Example:
GLUquadricObj *mySphere;
mySphere = gluNewQuadric();
gluQuadricStyle (mySphere, GLU_LINE);
gluSphere (mySphere, r, nLong, nLat);
![Page 37: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/37.jpg)
Quadric styles
● Other than GLU_LINE we have the following drawing styles:– GLU_POINT– GLU_SILHOUETTE– GLU_FILL
![Page 38: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/38.jpg)
Other GLU quadric objects
● gluCylinder (name, rBase, rTop, height, nLong, nLat);
● gluDisk (name, rInner, rOuter, nRadii, nRings);
● gluPartialDisk (… parameters …);
![Page 39: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/39.jpg)
Additional functions to manipulate GLU quadric
objects● gluDeleteQuadric (name);● gluQuadricOrientation (name, normalDirection);
– To specify front/back directions.– normalVector is GLU_INSIDE or GLU_OUTSIDE
● gluQuadricNormals (name, generationMode);– Mode can be GLU_NONE, GLU_FLAT, or
GLU_SMOOTH based on the lighting conditions you want to use for the quadric object.
![Page 40: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/40.jpg)
Spline Representations
● Spline curve: Curve consisting of continous curve segments approximated or interpolated on polygon control points.
● Spline surface: a set of two spline curves matched on a smooth surface.
● Interpolated: curve passes through control points
● Approximated: guided by control points but not necessarily passes through them.
InterpolatedApproximated
![Page 41: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/41.jpg)
● Convex hull of a spline curve: smallest polygon including all control points.
● Characteristic polygon, control path: vertices along the control points in the same order.
![Page 42: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/42.jpg)
● Parametric equations:
● Parametric continuity: Continuity properties of curve segments.
– Zero order: Curves intersects at one end-point: C0
– First order: C0 and curves has sametangent at intersection: C1
– Second order: C0 , C1 and curves has same second order derivative: C2
21 ),( ),( ),( uuuuzzuyyuxx
![Page 43: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/43.jpg)
● Geometric continuity:Similar to parametric continuity but only the direction of derivatives are significant. For example derivative (1,2) and (3,6) are considered equal.
● G0, G1, G2 : zero order, first order, and second order geometric continuity.
![Page 44: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/44.jpg)
Spline Equations● Cubic curve equations:
● General form:
● Ms: spline transformation (blending functions) M
g:
geometric constraints (control points)
zzzz
yyyy
xxxx
ducubuauz
uducubuauy
ducubuaux
23
23
23
)(
10 )(
)(
CU
x
x
x
x
d
c
b
a
uuuux 1)( 23
gs MMU )(ux
![Page 45: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/45.jpg)
Natural Cubic Splines● Interpolation of n+1 control points. n curve
segments. 4n coefficients to determine
● Second order continuity. 4 equation for each of n-1 common points:
4n equations required, 4n-4 so far.
● Starting point condition, end point condition.
● Assume second derivative 0 at end-points or add phantom control points p-1, pn+1.
)0()1( ),0()1( ,)0( ,)1( 111 kkkkkkkk xxxxxx pp
nnxx pp )1( ,)0( 01
0)1( ,0)0(1 nxx
![Page 46: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/46.jpg)
● Write 4n equations for 4n unknown coefficients and solve.
● Changes are not local. A control point effects all equations.
● Expensive. Solve 4n system of equations for changes.
![Page 47: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/47.jpg)
Hermite Interpolation● End point constraints for each segment is given as:
● Control point positions and first derivatives are given as constraints for each end-point.
,)1( ,)0( ,)1( ,)0( 11 kkkk DpPDpPpPpP
d
c
b
a
P 1)( 23 uuuu
d
c
b
a
P 0123)( 2 uuu
d
c
b
a
Dp
Dp
p
p
0123
0100
1111
1000
1
1
k
k
k
k
1
1
1
0123
0100
1111
1000
k
k
k
k
Dp
Dp
p
p
d
c
b
a
![Page 48: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/48.jpg)
Hermite curves
1
1
1
1
1
1
1
0001
0100
1233
1122
0123
0100
1111
1000
k
k
k
k
H
k
k
k
k
k
k
k
k
Dp
Dp
p
p
M
Dp
Dp
p
p
Dp
Dp
p
p
d
c
b
a
)()2()32()132()( 231
23231
23 uuuuuuuuuu kkkk DpDpppP
These polynomials are called Hermiteblending functions, and tells us how to blendboundary conditions to generate the positionof a point P(u) on the curve
![Page 49: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/49.jpg)
Hermite blending functions
![Page 50: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/50.jpg)
Hermite curves
● Segments are local. First order continuity
● Slopes at control points are required.
● Cardinal splines and Kochanek-Bartel splines approximate slopes from neighbor control points.
![Page 51: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/51.jpg)
Bézier Curves
● A Bézier curve approximates any number of control points for a curve section (degree of the Bézier curve depends on the number of control points and their relative positions)
![Page 52: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/52.jpg)
● The coordinates of the control points are blended using Bézier blending functions BEZk,n(u)
● Polynomial degree of a Bézier curve is one less than the number of control points.3 points : parabola4 points : cubic curve5 points : fourth order curve
)!(!
! ,)1()(BEZ
10 ),(BEZ)(
,
,0
knk
n
k
nuu
k
nu
uuu
knknk
nk
n
kk
pP
![Page 53: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/53.jpg)
Cubic Bézier Curves
● Most graphics packages provide Cubic Béziers.
33,3
23,2
23,1
33,0
BEZ )1(3BEZ
)1(3BEZ )1(BEZ
uuu
uuu
3
2
1
0
Bez23 1)(
p
p
p
p
MP uuuu
0001
0033
0363
1331
BezM
![Page 54: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/54.jpg)
Cubic Bézier blending functions
The four Bézier blending functions for cubic curves (n=3, i.e. 4 control pts.)
p0 p1
multiplied with
multiplied withmultiplied with
multiplied with
p2p3
![Page 55: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/55.jpg)
Properties of Bézier curves
● Passes through start and end points
● First derivates at start and end are:
● Lies in the convex hull
npPpP )1( ,)0( 0
nn nn
nn
ppP
ppP
1
10
)1(
)0(
![Page 56: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/56.jpg)
Joining Bézier curves ● Start and end points are same (C0)
● Choose adjacent points to start and end in the same line (C1)
● C2 continuity is not generally used in cubic Bézier curves. Because the information of the current segment will fix the first three points of the next curve segment
)( 11
0
nnn
n
n
npppp
pp
n and n’ are the number ofcontrol points in the first and in thesecond curve segment respectively
![Page 57: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/57.jpg)
Bézier Surfaces
● Two sets of orthogonal Bézier curves are used.
● Cartesian product of Bézier blending functions:
1,0 )(BEZ)(BEZ),(0 0
,,,
vuuvvum
j
n
knkmjkjpP
![Page 58: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/58.jpg)
Bézier Patches
● A common form of approximating larger surfaces by tiling with cubic Bézier patches. m=n=3
● 4 by 4 = 16 control points.
![Page 59: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/59.jpg)
Cubic Bézier Surfaces
● Matrix form
● Joining patches:similar to curves. C0, C1 can be established by choosing control points accordingly.
10001
0033
0363
1331
0001
0033
0363
1331
1
),(
2
3
3,32,31,30,3
3,22,21,20,2
3,12,11,10,1
3,02,01,00,0
23
TTBezBez
v
v
v
uuu
vu
pppp
pppp
pppp
pppp
TMPMUP
![Page 60: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/60.jpg)
OpenGL Bézier-Spline Curve Functions
● glMap1*() to specify control points● glEnable (GL_MAP1_VERTEX_3)
– Activate curve generation routines● glDisable (GL_MAP1_VERTEX_3)
– Deactivate curve generation routines● glEvalCoord1* (uValue)
– Generates the point coordinate at the uValue– It actually generates a glVertex3 function!!
![Page 61: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/61.jpg)
Example
GLfloat ctrlPts [4] [3] = {{0.0,1.0,2.0},……};
glMap1f (GL_MAP1_VERTEX_3,0.0,1.0,3,4,&ctrlPts[0][0]);
glEnable (GL_MAP1_VERTEX_3);
Glint k;
glBegin (GL_LINE_STRIP);
for (k=0;k<=50;k++)
glEvalCoord1f(GLfloat (k) / 50.0);
glEnd ();
![Page 62: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/62.jpg)
Generating uniformly spaced u values
We may replace the glBegin(), inner for loop, and glEnd() with:
glMapGrid1f (50, 0.0, 1.0);
glEvalMesh1 (GL_LINE, 0, 50);
![Page 63: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/63.jpg)
OpenGL Bézier-Spline Surface Functions
● glMap2* () to specify control points● glEnable (GL_MAP2_VERTEX_3)
– Activate curve generation routines● glDisable (GL_MAP2_VERTEX_3)
– Deactivate curve generation routines● glEvalCoord2* (uValue, vValue)
– Generates the point coordinate at the uValue, vValue
– This also generates a glVertex3 function.
![Page 64: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/64.jpg)
Example
GLfloat ctrlPts [4] [4] [3] = {{{0.0,1.0,2.0},……};
glMap2f (GL_MAP2_VERTEX_3,0.0,1.0,3,4,0.0,1.0,12,4,&ctrlPts[0][0][0]);
glEnable (GL_MAP2_VERTEX_3);
glMapGrid2f (40,0.0,1.0,40,0.0,1.0);
glEvalMesh2 (GL_LINE,0,40,0,40);
// GL_POINT and GL_FILL is also available with glEvalMesh2()
![Page 65: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/65.jpg)
Sweep Representations
● Use reflections, translations and rotations to construct new shapes.
P(u)u
v
u
v
TranslationalSweep
RotationalSweep
![Page 66: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/66.jpg)
Translational Sweep
![Page 67: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/67.jpg)
Rotational Sweep
![Page 68: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/68.jpg)
Hierarchical Models
● Combine smaller/simpler shapes to construct complex objects and scenes.
● Stored in trees or similar data structures
● Operations are based on traversal of the tree
● Keeping information like bounding boxes in tree nodes accelarate the operations.
![Page 69: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/69.jpg)
Scene Graphs
● DAG's (Directed Acyclic Graphs) to represent scenes and complex objects.
● Nodes: Grouping nodes, Transform nodes, Level Of Detail nodes, Light Source nodes, Attribute nodes, State nodes.Leaves: Object geometric descriptions.
● Why not tree but DAG?● Available libraries: i.e. www.openscenegraph.org
– Java3D is also based on Scene Graph Model● Efficient display of objects, picking objects, state
change and animations.
![Page 70: 3D OBJECT REPRESENTATIONS CEng 477 Introduction to Computer Graphics Fall 2010-2011](https://reader035.vdocuments.mx/reader035/viewer/2022081515/56649d405503460f94a1a068/html5/thumbnails/70.jpg)
Scene Graph Representation
G
TT
G
T
T
T T T T
T
G
T T
T T
L