Professional Documents
Culture Documents
Instance Transformation
Model
Coordinates
UML
04/30/16 03:06
Instancing in OpenGL
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(...);
glRotate(...);
glScale(...);
glutSolidCylinder(...); /*or some other symbol*/
Symbol
Cylinder
Cylinder
Scale
sx, sy, sz
Rotate
x,y, z
Translate
dx,dy,dz
...
Sphere
Tabular Representation
UML
04/30/16 03:06
x
z
UML
04/30/16 03:06
h2
Base : R y ( )
h1
UML
04/30/16 03:06
Robot Construction
Base : R y ( )
LowerArm : R y ( )T(0, h1 , 0)R z ( )
UpperArm : R y ( )T(0, h1 , 0)R z ( )T(0, h2 , 0)Rz ( )
display()
{
glRotate(theta, 0.0, 1.0, 0.0);
base();
glTranslatef(0.0, h1, 0.0);
glRotatef(phi, 0.0, 0.0, 1.0);
lower_arm();
glTranslatef(0.0, h2, 0.0);
glRotatef(psi, 0.0, 0.0, 1.0);
upper_arm();
}
UML
04/30/16 03:06
Hierarchical Structure
Transform
Base
* Draw Func.
* Child(ren)
display()
{
glRotate(theta, 0.0, 1.0, 0.0);
base();
glTranslatef(0.0, h1, 0.0);
glRotatef(phi, 0.0, 0.0, 1.0);
lower_arm();
glTranslatef(0.0, h2, 0.0);
glRotatef(psi, 0.0, 0.0, 1.0);
upper_arm();
}
Lower
Arm
Upper
Arm
UML
04/30/16 03:06
Torso
Head
Left Upper
Arm
Left Lower
Arm
Right Upper
Arm
Right Lower
Arm
Left Upper
Leg
Left Lower
Leg
Right Upper
Leg
Right Lower
Leg
UML
04/30/16 03:06
Torso
Th
Head
Tlua
Left Upper
Arm
Tlla
Left Lower
Arm
Trua
Right Upper
Arm
Trla
Right Lower
Arm
Tlul
Left Upper
Leg
Tlll
Left Lower
Leg
Trul
Right Upper
Leg
Trll
Right Lower
Leg
UML
04/30/16 03:06
Torso
Th
Head
Tlua
Left Upper
Arm
Trua
Right Upper
Arm
Tlla
Trla
Left Lower
Arm
Right Lower
Arm
Tlul
Left Upper
Leg
Tlll
Left Lower
Leg
Trul
Right Upper
Leg
Trll
Right Lower
Leg
Current
Transform.
T
TTh
T
glTranslatef(...);
glRotatef(...);
TTua
LeftUpperArm();
glTranslatef(...);
glRotatef(...);
TTuaTlla
LeftLowerArm();
glPopMatrix(...);
glPushMatrix(...);
glTranslatef(...);
glRotatef(...);
TTrua
RightUpperArm();
glTranslatef(...);
glRotatef(...);
TTruaTrla
RightLowerArm();
UML
04/30/16 03:06
10
Scene Graphs
Scene
Translate
Translate
Rotate
Translate
Rotate
Object 1
Object 2
Object 3
Object 4
UML
04/30/16 03:06
11
Scene Graphs
Traversing the Graph
glPushMatrix();
glTranslate(...);
glRotate(..._;
Object1();
Scene
glPopMatrix();
glPushMatrix();
glTranslate(...);
Translate
Rotate
Translate
Translate
Object 4
Object2();
glPopMatrix();
glPushMatrix();
Rotate
glTranslate(...);
glRotate(...);
Object 1
Object 2
Object 3
Object3();
glPopMatrix();
glPush Matrix();
Object4();
UML
04/30/16 03:06
12
Model
Application
API
UI
Graphics
Pipeline
Display
Browser
Model
Server
TCP/IP
Graphics
Pipeline
TCP/IP
Browser
UI
Display
Graphics
Pipeline
UI
Display
TCP/IP
Network/Internet
UML
04/30/16 03:06
13
UML
04/30/16 03:06
14
Transformation
Shape
UML
04/30/16 03:06
15
VRML 2.0
Node Format
Node_Name {
field_name field_value
field_name field_value
.
.
.
field_name field_value
}
04/30/16 03:06
16
VRML 2.0
Field Types
SFBool
SFFloat
SFInt32
SFTime
SFVec2f
SFVec3f
SFColor
SFRotation
04/30/16 03:06
17
VRML 2.0
Field Types
SFImage
SFString
SFNode
MFFloat
MFInt32
MFVec2f
MFVec3f
MFColor
MFRotation
MFString
04/30/16 03:06
18
VRML 2.0
Composing Node Hierarchies
Node_name_1 {
field_name field_value
field_name Node_name_2 {
field_name field_value
field_name field_value
}
field_name Node_name_3 {
field_name field_value
field_name field_value
}
}
UML
04/30/16 03:06
19
VRML 2.0
The Shape Node Definition
Node Name
Shape
}
Field Class
Field Name
{
exposedField SFNode appearance NULL
exposedField SFNode geometry NULL
Field Type
Default Value
04/30/16 03:06
20
VRML 2.0
Geometry Nodes
0 Predefined shapes
0
0
0
0
0
0
- Cone
- Box
- Cylinder
- Sphere
PointSet
IndexedLineSet (polyline)
IndexedFaceSet (polygonal object)
ElevationGrid
Extrusion
Text
UML
04/30/16 03:06
21
VRML 2.0
Cone Definition
Cone {
field
field
field
field
SFFloat
SFFloat
SfBool
SFBool
bottomRadius
height
side
bottom
1
2
TRUE
TRUE
UML
04/30/16 03:06
22
VRML 2.0
Box Definition
Box {
}
2 2 2
UML
04/30/16 03:06
23
VRML 2.0
Cylinder Definition
Cylinder {
field
field
field
field
field
}
SFBool
SFFloat
SFFloat
SFBool
SFBool
bottom
height
radius
side
top
TRUE
2
1
TRUE
TRUE
Sphere Definition
Sphere {
field SFFloat
}
radius 1
UML
04/30/16 03:06
24
VRML 2.0
Indexed Face Set - Partial Definition
IndexedFaceSet {
exposedField
field
field
field
field
...
}
SFNode coord
NULL
SFBool ccw
TRUE
SFBool convex
TRUE
MFInt32 coordIndex []
SFBool solid
TRUE
Coordinate {
exposedField MFVec3f
}
point
[]
UML
04/30/16 03:06
25
VRML 2.0
Simplest Possible World
Geometry
Field
Shape Node
Shape{
}
geometry Cone { }
UML
04/30/16 03:06
26
VRML 2.0
Appearance & Material Nodes
Appearance {
exposedField SFNode
exposedField SFNode
exposedField SFNode
}
Material {
exposedField
exposedField
exposedField
exposedField
exposedField
exposedField
}
SFFloat
SFColor
SFColor
SFFloat
SFColor
SFFloat
material
NULL
texture
NULL
textureTransform NULL
ambientIntensity 0.2
diffuseColor
0.8 0.8 0.8
emissiveColor 0 0 0
shininess
0.2
specularColor 0 0 0
transparency
0
UML
04/30/16 03:06
27
VRML 2.0
Transform Node Definition
Transform {
enventIn
eventIn
exposedField
exposedField
exposedField
exposedField
exposedField
exposedField
field
field
}
MFNode
MFNode
SFVec3f
MFNode
SFRotation
SFVec3f
SFRotation
SFVec3f
SFVec3f
SFVec3f
addChildren
removeChildren
center
children
rotation
scale
scaleOrientation
translation
bboxCenter
bboxSize
0 0 0
[]
0 0 1 0
1 1 1
0 0 1 0
0 0 0
0 0 0
-1 -1 -1
Order of application:
T(translation) T(rotation) T(scale) {children}
UML