Titre : |
X3D : Extensible 3D graphics for Web authors |
Type de document : |
texte imprimé |
Auteurs : |
Don Brutzman ; Leonard Daly |
Editeur : |
Amsterdam : Elsevier |
Année de publication : |
2007 |
Importance : |
1 vol (441 p.) |
Format : |
24 cm |
ISBN/ISSN/EAN : |
978-0-12-088500-8 |
Note générale : |
978-0-12-088500-8 |
Catégories : |
Informatique
|
Mots-clés : |
Three-dimensional display systems
XML (Document markup language)
XML (langage de balisage)
Imagerie tridimensionnelle
Sites Web : Conception |
Index. décimale : |
006.6 Infographie |
Résumé : |
|
Note de contenu : |
Sommaire
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix
1. Goals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix
2. Motivation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi
3. Reader background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi
4. Software support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi
5. Book structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi
5.1. Typographic conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi
5.2. Chapter organization. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxii
6. Chapter descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxii
6.1. Chapter topics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxii
6.2. Appendices. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiv
6.3. How to use this book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiv
Contributor List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxv
About the Authors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvii
CHAPTER 1
Technical Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2. Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.1. Historical background: VRML, ISO,
and the Web3D Consortium . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.2. X3D browsers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.3. X3D specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.4. Scene graph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Contents
Brutzman-FM.qxd 2:28:07 08:51 PM Page vii
viii Contents
2.5. File structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.5.1. File header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.5.2. X3D header statement. . . . . . . . . . . . . . . . . . . . . . . 10
2.5.3. Profile statements . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.5.4. Component statements . . . . . . . . . . . . . . . . . . . . . . 14
2.5.5. Meta statements . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.5.6. Scene graph body . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.6. Field types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.7. Abstract node types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.8. File encodings: XML, ClassicVRML, and Compressed . . . . . . . . 20
2.8.1. Extensible Markup Language (XML)
encoding: .x3d files . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.8.1.1. XML motivations. . . . . . . . . . . . . . . . . 22
2.8.1.2. XML design for X3D . . . . . . . . . . . . . . 24
2.8.1.3. XML validation . . . . . . . . . . . . . . . . . . 25
2.8.2. ClassicVRML encoding: .x3dv files . . . . . . . . . . . . . 27
2.8.3. Binary encoding: .x3db files. . . . . . . . . . . . . . . . . . . 29
2.9. Hello World example using X3D-Edit and an X3D browser . . . . . 32
3. Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.1. Key ideas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.2. Next chapters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
CHAPTER 2
Geometry Nodes, Part 1: Primitives . . . . . . . . . . . . . . . . . 37
1. What this chapter covers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2. Concepts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.1. Purpose and common functionality . . . . . . . . . . . . . . . . . . . . . . 38
2.2. Common field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.2.1. Solid. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.3. Abstract node types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.3.1. X3DShapeNode type. . . . . . . . . . . . . . . . . . . . . . . . 41
2.3.2. X3DGeometryNode type. . . . . . . . . . . . . . . . . . . . . 41
2.3.3. X3DFontStyleNode type . . . . . . . . . . . . . . . . . . . . 41
2.4. Hints and warnings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3. Node descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.1. Shape node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.1.1. Hints and warnings. . . . . . . . . . . . . . . . . . . . . . . . . 42
Brutzman-FM.qxd 2:28:07 08:51 PM Page viii
Contents ix
3.2. Box node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.2.1. Size. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.2.2. Hints and warnings. . . . . . . . . . . . . . . . . . . . 46
3.3. Cone node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.3.1. bottomRadius and height. . . . . . . . . . . . . . . . 48
3.3.2. bottom and side . . . . . . . . . . . . . . . . . . . . . . 48
3.4. Cylinder node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.4.1. radius and height . . . . . . . . . . . . . . . . . . . . . 49
3.4.2. bottom, side, and top . . . . . . . . . . . . . . . . . . 50
3.4.3. Hints and warnings. . . . . . . . . . . . . . . . . . . . 50
3.5. Sphere node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.6. Text node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.7. FontStyle node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4. Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.1. Key ideas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.2. Related nodes and concepts . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.3. Next chapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
CHAPTER 3
Grouping Nodes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
1. What this chapter covers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
2. Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
2.1. Purpose and common functionality . . . . . . . . . . . . . . . . . . . . . . 66
2.2. Units of measurement and coordinate systems . . . . . . . . . . . . . . 66
2.3. Coordinate system details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
2.4. DEF and USE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
2.5. Abstract node types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
2.5.1. X3DChildNode type . . . . . . . . . . . . . . . . . . . . . . . 72
2.5.2. X3DBoundedObject type . . . . . . . . . . . . . . . . . . . . 73
2.5.3. X3DGroupingNode type . . . . . . . . . . . . . . . . . . . . 73
2.5.4. X3DInfoNode type . . . . . . . . . . . . . . . . . . . . . . . . 74
2.5.5. X3DUrlObject abstract interface . . . . . . . . . . . . . . . 75
3. Node descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
3.1. Group and StaticGroup nodes . . . . . . . . . . . . . . . . . . . . . . . . . . 75
3.2. Transform node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
3.3. Inline node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
3.4. LOD node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
3.5. Switch node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Brutzman-FM.qxd 2:28:07 08:51 PM Page ix
x Contents
4. Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
4.1. Key ideas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
4.2. Related nodes and concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
4.3. Next chapter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
CHAPTER 4
Viewing and Navigation . . . . . . . . . . . . . . . . . . . . . . . . . 95
1. What this chapter covers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
2. Concepts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
2.1. Purpose and common functionality . . . . . . . . . . . . . . . . . . . . . . 96
2.2. Viewing model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
2.3. Navigation model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
2.4. Collision detection and terrain following . . . . . . . . . . . . . . . . . . 97
2.5. Abstract node types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
2.5.1. X3DBindableNode type. . . . . . . . . . . . . . . . . . . . . . 97
3. Node descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
3.1. Viewpoint node. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
3.2. NavigationInfo node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
3.3. Anchor node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
3.4. Billboard node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
3.5. Collision node. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
4. Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
4.1. Key ideas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
4.2. Related nodes and concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
4.3. Next chapter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
CHAPTER 5
Appearance, Material, and Textures . . . . . . . . . . . . . . . . 121
1. What this chapter covers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
2. Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
2.1. Purpose and common functionality . . . . . . . . . . . . . . . . . . . . . 122
2.2. Abstract node types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
2.2.1. X3DAppearanceNode and
X3DAppearanceChildNode types . . . . . . . . . . . . . 123
2.2.2. X3DMaterialNode type . . . . . . . . . . . . . . . . . . . . 124
2.2.3. X3DTextureNode, X3DTextureCoordinateNode,
and X3DTextureTransformNode types . . . . . . . . . 124
Brutzman-FM.qxd 2:28:07 08:51 PM Page x
2.2.4. X3DTexture2DNode type . . . . . . . . . . . . . . . . . . . 124
2.2.5. X3DTextureTransform2DNode type . . . . . . . . . . . 125
3. Node descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
3.1. Appearance node. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
3.2. Material node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
3.3. FillProperties node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
3.4. LineProperties node. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
3.5. ImageTexture node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
3.6. MovieTexture node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
3.7. PixelTexture node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
3.8. TextureTransform node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
3.9. TextureCoordinate node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
3.10. TextureCoordinateGenerator node. . . . . . . . . . . . . . . . . . . . . . 152
4. Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
4.1. Key ideas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
4.2. Related nodes and concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
4.3. Next chapter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
CHAPTER 6
Geometry Nodes, Part 2: Points, Lines, and Polygons . . . . 157
1. What this chapter covers. . . . . . . . . . . . . . . . . . . . . . . . . . . 157
2. Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
2.1. Purpose and common functionality . . . . . . . . . . . . . . . . . . . . . 158
2.2. Common geometry fields. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
3. Node descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
3.1. Color and ColorRGBA nodes . . . . . . . . . . . . . . . . . . . . . . . . . 162
3.2. Coordinate and CoordinateDouble nodes. . . . . . . . . . . . . . . . . 163
3.3. PointSet node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
3.4. IndexedLineSet node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
3.5. LineSet node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
3.6. IndexedFaceSet node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
3.7. ElevationGrid node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
3.8. Extrusion node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
4. Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
4.1. Key ideas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
4.2. Related nodes and concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
4.3. Next chapter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
Contents xi
Brutzman-FM.qxd 2:28:07 08:51 PM Page xi
CHAPTER 7
Event Animation and Interpolation. . . . . . . . . . . . . . . . . 187
1. What this chapter covers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
2. Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
2.1. Animation as scene-graph modification . . . . . . . . . . . . . . . . . . 188
2.2. Purpose and common functionality . . . . . . . . . . . . . . . . . . . . . 188
2.3. ROUTE connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
2.4. Interpolation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
2.5. Constructing animation chains: 10 steps. . . . . . . . . . . . . . . . . . 192
2.6. Abstract node types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
2.6.1. X3DTimeDependentNode type . . . . . . . . . . . . . . . 196
2.6.2. X3DSensorNode type . . . . . . . . . . . . . . . . . . . . . . 196
2.6.3. X3DInterpolatorNode type . . . . . . . . . . . . . . . . . . 196
3. Node descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
3.1. TimeSensor node. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
3.2. ScalarInterpolator node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
3.3. ColorInterpolator node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
3.4. PositionInterpolator node . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
3.5. OrientationInterpolator node. . . . . . . . . . . . . . . . . . . . . . . . . . 211
3.6. NormalInterpolator node. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
3.7. CoordinateInterpolator node . . . . . . . . . . . . . . . . . . . . . . . . . . 215
3.8. PositionInterpolator2D node . . . . . . . . . . . . . . . . . . . . . . . . . . 216
3.9. CoordinateInterpolator2D node. . . . . . . . . . . . . . . . . . . . . . . . 218
4. Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
4.1. Key ideas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
4.2. Related nodes and concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
4.3. Next chapter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
CHAPTER 8
User Interactivity Nodes . . . . . . . . . . . . . . . . . . . . . . . . 221
1. What this chapter covers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
2. Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
2.1. Purpose and common functionality . . . . . . . . . . . . . . . . . . . . . 222
2.2. X3DSensorNode type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
2.3. X3DPointingDeviceSensorNode type . . . . . . . . . . . . . . . . . . . . 223
xii Contents
Brutzman-FM.qxd 2:28:07 08:51 PM Page xii
2.4. X3DTouchSensorNode type. . . . . . . . . . . . . . . . . . . . . . . . . . . 225
2.5. X3DDragSensorNode type . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
2.6. X3DKeyDeviceSensorNode type . . . . . . . . . . . . . . . . . . . . . . . 226
3. Node descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
3.1. TouchSensor node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
3.2. PlaneSensor node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
3.3. CylinderSensor node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
3.4. SphereSensor node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
3.5. KeySensor node. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
3.6. StringSensor node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
4. Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
4.1. Key ideas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
4.2. Related nodes and concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
4.3. Next chapter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
CHAPTER 9
Event Utilities and Scripting . . . . . . . . . . . . . . . . . . . . . 249
1. What this chapter covers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
2. Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
2.1. Purpose and common functionality . . . . . . . . . . . . . . . . . . . . . 250
2.2. X3DScriptNode type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
2.3. X3DSequencerNode type. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
2.4. X3DTriggerNode type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
3. Node Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
3.1. BooleanFilter node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
3.2. BooleanSequencer node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
3.3. BooleanToggle node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
3.4. BooleanTrigger node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
3.5. IntegerSequencer node. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
3.6. IntegerTrigger node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
3.7. TimeTrigger node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
3.8. Script node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
4. Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
4.1. Key ideas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
4.2. Related nodes and concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
4.3. Next chapter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
Contents xiii
Brutzman-FM.qxd 2:28:07 08:51 PM Page xiii
CHAPTER 10
Geometry Nodes, Part 3: Geometry2D Nodes . . . . . . . . . . 279
1. What this chapter covers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
2. Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
2.1. Purpose and common functionality . . . . . . . . . . . . . . . . . . . . . 280
2.2. Common geometry fields. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
3. Node descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
3.1. Arc2D node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
3.2. ArcClose2D node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
3.3. Circle2D node. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
3.4. Disk2D node. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
3.5. Polyline2D node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
3.6. Polypoint2D node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
3.7. Rectangle2D node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
3.8. TriangleSet2D node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
4. Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
4.1. Key ideas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
4.2. Related nodes and concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
4.3. Next chapter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
CHAPTER 11
Lighting and Environment Nodes . . . . . . . . . . . . . . . . . . 299
1. What this chapter covers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
2. Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
2.1. Purpose and common functionality . . . . . . . . . . . . . . . . . . . . . 302
2.2. X3DLightNode type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
2.3. X3DBackgroundNode type . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
3. Node descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
3.1. DirectionalLight node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
3.2. Headlight . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
3.3. PointLight node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
3.4. SpotLight node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
3.5. Background node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
3.6. TextureBackground node. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
3.7. Fog node. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
xiv Contents
Brutzman-FM.qxd 2:28:07 08:51 PM Page xiv
4. Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
4.1. Key ideas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
4.2. Related nodes and concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
4.3. Next chapter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
CHAPTER 12
Environment Sensor and Sound Nodes . . . . . . . . . . . . . . 327
1. What this chapter covers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
2. Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
2.1. X3DEnvironmentSensorNode type. . . . . . . . . . . . . . . . . . . . . . 328
2.2. X3DNetworkSensorNode type. . . . . . . . . . . . . . . . . . . . . . . . . 329
2.3. X3DSoundNode type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
2.4. X3DSoundSourceNode type . . . . . . . . . . . . . . . . . . . . . . . . . . 330
3. Node descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
3.1. LoadSensor node. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
3.2. ProximitySensor node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
3.3. VisibilitySensor node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
3.4. Sound node. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
3.5. AudioClip node. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
4. Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
4.1. Key ideas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
4.2. Related nodes and concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
4.3. Next chapter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
CHAPTER 13
Geometry Nodes, Part 4: Triangles and Quadrilaterals . . . 353
1. What this chapter covers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
2. Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
2.1. Purpose and common functionality . . . . . . . . . . . . . . . . . . . . . 354
2.2. Abstract node types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
2.2.1. X3DColorNode, X3DCoordinateNode,
X3DGeometricPropertyNode, X3DGeometryNode,
and X3DNormalNode types . . . . . . . . . . . . . . . . . 355
2.2.2. X3DComposedGeometryNode type . . . . . . . . . . . 356
2.3. Common geometry fields. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
Contents xv
Brutzman-FM.qxd 2:28:07 08:51 PM Page xv
3. Node descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
3.1. Normal node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
3.2. TriangleSet node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
3.3. TriangleFanSet node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
3.4. TriangleStripSet node. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368
3.5. QuadSet node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
3.6. IndexedTriangleSet node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
3.7. IndexedTriangleFanSet node . . . . . . . . . . . . . . . . . . . . . . . . . . 373
3.8. IndexedTriangleStripSet node. . . . . . . . . . . . . . . . . . . . . . . . . . 375
3.9. IndexedQuadSet node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
4. Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
4.1. Key ideas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
4.2. Related nodes and concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
4.3. Next chapter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
CHAPTER 14
Creating Prototype Nodes . . . . . . . . . . . . . . . . . . . . . . . 381
1. What this chapter covers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
2. Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
2.1. Extensibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
2.2. Strong typing of nodes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
2.3. Comparison with Inline node. . . . . . . . . . . . . . . . . . . . . . . . . . 383
2.4. Syntax alert. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
3. Functional descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384
3.1. Prototype declarations: ProtoDeclare . . . . . . . . . . . . . . . . . . . . 384
3.2. External prototype declarations: ExternProtoDeclare . . . . . . . . 394
3.3. Prototype instances: ProtoInstance . . . . . . . . . . . . . . . . . . . . . . 397
4. Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
4.1. Key ideas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
4.2. Related nodes and concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . 399
Afterword: Getting Involved . . . . . . . . . . . . . . . . . . . . . 401
Learning X3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
Building Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
xvi Contents
Brutzman-FM.qxd 2:28:07 08:51 PM Page xvi
Creating Content. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
X3D Development. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
Other Web3D Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
APPENDICES
A. Online Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
Web Site Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
B. Help: X3D/VRML Examples . . . . . . . . . . . . . . . . . . . . . 405
Applications, Players, and Plugins for X3D/VRML Viewing . . . . 405
Web3D Consortium Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
Not (yet) Web3D Consortium Members . . . . . . . . . . . . . . . . . . . . . . 406
Authoring Tools. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
Authoring Support. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
Conversion and Translation Tools . . . . . . . . . . . . . . . . . . . . . . . . . . 407
Examples. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408
License . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
PowerPoint Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
C. X3D Scene Authoring Hints . . . . . . . . . . . . . . . . . . . . 411
Authoring practices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411
Credits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414
Dates. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414
HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415
Images. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415
Inline and Prototype Subscenes. . . . . . . . . . . . . . . . . . . . . . . . . . 416
License . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
meta tags. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418
Contents xvii
Brutzman-FM.qxd 2:28:07 08:51 PM Page xvii
xviii Contents
Naming Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418
Naming of Multiple Similar Autogenerated Files. . . . . . . . . . . . . . . . 419
Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419
URL Links. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420
Viewpoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421
List of References. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425 |
Côte titre : |
Fs/19854 |
X3D : Extensible 3D graphics for Web authors [texte imprimé] / Don Brutzman ; Leonard Daly . - Amsterdam : Elsevier, 2007 . - 1 vol (441 p.) ; 24 cm. ISBN : 978-0-12-088500-8 978-0-12-088500-8
Catégories : |
Informatique
|
Mots-clés : |
Three-dimensional display systems
XML (Document markup language)
XML (langage de balisage)
Imagerie tridimensionnelle
Sites Web : Conception |
Index. décimale : |
006.6 Infographie |
Résumé : |
|
Note de contenu : |
Sommaire
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix
1. Goals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix
2. Motivation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi
3. Reader background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi
4. Software support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi
5. Book structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi
5.1. Typographic conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi
5.2. Chapter organization. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxii
6. Chapter descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxii
6.1. Chapter topics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxii
6.2. Appendices. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiv
6.3. How to use this book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiv
Contributor List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxv
About the Authors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvii
CHAPTER 1
Technical Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2. Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.1. Historical background: VRML, ISO,
and the Web3D Consortium . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.2. X3D browsers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.3. X3D specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.4. Scene graph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Contents
Brutzman-FM.qxd 2:28:07 08:51 PM Page vii
viii Contents
2.5. File structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.5.1. File header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.5.2. X3D header statement. . . . . . . . . . . . . . . . . . . . . . . 10
2.5.3. Profile statements . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.5.4. Component statements . . . . . . . . . . . . . . . . . . . . . . 14
2.5.5. Meta statements . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.5.6. Scene graph body . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.6. Field types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.7. Abstract node types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.8. File encodings: XML, ClassicVRML, and Compressed . . . . . . . . 20
2.8.1. Extensible Markup Language (XML)
encoding: .x3d files . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.8.1.1. XML motivations. . . . . . . . . . . . . . . . . 22
2.8.1.2. XML design for X3D . . . . . . . . . . . . . . 24
2.8.1.3. XML validation . . . . . . . . . . . . . . . . . . 25
2.8.2. ClassicVRML encoding: .x3dv files . . . . . . . . . . . . . 27
2.8.3. Binary encoding: .x3db files. . . . . . . . . . . . . . . . . . . 29
2.9. Hello World example using X3D-Edit and an X3D browser . . . . . 32
3. Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.1. Key ideas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.2. Next chapters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
CHAPTER 2
Geometry Nodes, Part 1: Primitives . . . . . . . . . . . . . . . . . 37
1. What this chapter covers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2. Concepts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.1. Purpose and common functionality . . . . . . . . . . . . . . . . . . . . . . 38
2.2. Common field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.2.1. Solid. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.3. Abstract node types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.3.1. X3DShapeNode type. . . . . . . . . . . . . . . . . . . . . . . . 41
2.3.2. X3DGeometryNode type. . . . . . . . . . . . . . . . . . . . . 41
2.3.3. X3DFontStyleNode type . . . . . . . . . . . . . . . . . . . . 41
2.4. Hints and warnings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3. Node descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.1. Shape node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.1.1. Hints and warnings. . . . . . . . . . . . . . . . . . . . . . . . . 42
Brutzman-FM.qxd 2:28:07 08:51 PM Page viii
Contents ix
3.2. Box node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.2.1. Size. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.2.2. Hints and warnings. . . . . . . . . . . . . . . . . . . . 46
3.3. Cone node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.3.1. bottomRadius and height. . . . . . . . . . . . . . . . 48
3.3.2. bottom and side . . . . . . . . . . . . . . . . . . . . . . 48
3.4. Cylinder node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.4.1. radius and height . . . . . . . . . . . . . . . . . . . . . 49
3.4.2. bottom, side, and top . . . . . . . . . . . . . . . . . . 50
3.4.3. Hints and warnings. . . . . . . . . . . . . . . . . . . . 50
3.5. Sphere node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.6. Text node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.7. FontStyle node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4. Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.1. Key ideas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.2. Related nodes and concepts . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.3. Next chapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
CHAPTER 3
Grouping Nodes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
1. What this chapter covers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
2. Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
2.1. Purpose and common functionality . . . . . . . . . . . . . . . . . . . . . . 66
2.2. Units of measurement and coordinate systems . . . . . . . . . . . . . . 66
2.3. Coordinate system details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
2.4. DEF and USE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
2.5. Abstract node types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
2.5.1. X3DChildNode type . . . . . . . . . . . . . . . . . . . . . . . 72
2.5.2. X3DBoundedObject type . . . . . . . . . . . . . . . . . . . . 73
2.5.3. X3DGroupingNode type . . . . . . . . . . . . . . . . . . . . 73
2.5.4. X3DInfoNode type . . . . . . . . . . . . . . . . . . . . . . . . 74
2.5.5. X3DUrlObject abstract interface . . . . . . . . . . . . . . . 75
3. Node descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
3.1. Group and StaticGroup nodes . . . . . . . . . . . . . . . . . . . . . . . . . . 75
3.2. Transform node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
3.3. Inline node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
3.4. LOD node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
3.5. Switch node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Brutzman-FM.qxd 2:28:07 08:51 PM Page ix
x Contents
4. Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
4.1. Key ideas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
4.2. Related nodes and concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
4.3. Next chapter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
CHAPTER 4
Viewing and Navigation . . . . . . . . . . . . . . . . . . . . . . . . . 95
1. What this chapter covers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
2. Concepts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
2.1. Purpose and common functionality . . . . . . . . . . . . . . . . . . . . . . 96
2.2. Viewing model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
2.3. Navigation model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
2.4. Collision detection and terrain following . . . . . . . . . . . . . . . . . . 97
2.5. Abstract node types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
2.5.1. X3DBindableNode type. . . . . . . . . . . . . . . . . . . . . . 97
3. Node descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
3.1. Viewpoint node. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
3.2. NavigationInfo node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
3.3. Anchor node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
3.4. Billboard node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
3.5. Collision node. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
4. Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
4.1. Key ideas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
4.2. Related nodes and concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
4.3. Next chapter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
CHAPTER 5
Appearance, Material, and Textures . . . . . . . . . . . . . . . . 121
1. What this chapter covers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
2. Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
2.1. Purpose and common functionality . . . . . . . . . . . . . . . . . . . . . 122
2.2. Abstract node types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
2.2.1. X3DAppearanceNode and
X3DAppearanceChildNode types . . . . . . . . . . . . . 123
2.2.2. X3DMaterialNode type . . . . . . . . . . . . . . . . . . . . 124
2.2.3. X3DTextureNode, X3DTextureCoordinateNode,
and X3DTextureTransformNode types . . . . . . . . . 124
Brutzman-FM.qxd 2:28:07 08:51 PM Page x
2.2.4. X3DTexture2DNode type . . . . . . . . . . . . . . . . . . . 124
2.2.5. X3DTextureTransform2DNode type . . . . . . . . . . . 125
3. Node descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
3.1. Appearance node. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
3.2. Material node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
3.3. FillProperties node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
3.4. LineProperties node. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
3.5. ImageTexture node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
3.6. MovieTexture node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
3.7. PixelTexture node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
3.8. TextureTransform node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
3.9. TextureCoordinate node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
3.10. TextureCoordinateGenerator node. . . . . . . . . . . . . . . . . . . . . . 152
4. Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
4.1. Key ideas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
4.2. Related nodes and concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
4.3. Next chapter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
CHAPTER 6
Geometry Nodes, Part 2: Points, Lines, and Polygons . . . . 157
1. What this chapter covers. . . . . . . . . . . . . . . . . . . . . . . . . . . 157
2. Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
2.1. Purpose and common functionality . . . . . . . . . . . . . . . . . . . . . 158
2.2. Common geometry fields. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
3. Node descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
3.1. Color and ColorRGBA nodes . . . . . . . . . . . . . . . . . . . . . . . . . 162
3.2. Coordinate and CoordinateDouble nodes. . . . . . . . . . . . . . . . . 163
3.3. PointSet node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
3.4. IndexedLineSet node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
3.5. LineSet node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
3.6. IndexedFaceSet node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
3.7. ElevationGrid node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
3.8. Extrusion node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
4. Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
4.1. Key ideas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
4.2. Related nodes and concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
4.3. Next chapter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
Contents xi
Brutzman-FM.qxd 2:28:07 08:51 PM Page xi
CHAPTER 7
Event Animation and Interpolation. . . . . . . . . . . . . . . . . 187
1. What this chapter covers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
2. Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
2.1. Animation as scene-graph modification . . . . . . . . . . . . . . . . . . 188
2.2. Purpose and common functionality . . . . . . . . . . . . . . . . . . . . . 188
2.3. ROUTE connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
2.4. Interpolation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
2.5. Constructing animation chains: 10 steps. . . . . . . . . . . . . . . . . . 192
2.6. Abstract node types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
2.6.1. X3DTimeDependentNode type . . . . . . . . . . . . . . . 196
2.6.2. X3DSensorNode type . . . . . . . . . . . . . . . . . . . . . . 196
2.6.3. X3DInterpolatorNode type . . . . . . . . . . . . . . . . . . 196
3. Node descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
3.1. TimeSensor node. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
3.2. ScalarInterpolator node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
3.3. ColorInterpolator node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
3.4. PositionInterpolator node . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
3.5. OrientationInterpolator node. . . . . . . . . . . . . . . . . . . . . . . . . . 211
3.6. NormalInterpolator node. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
3.7. CoordinateInterpolator node . . . . . . . . . . . . . . . . . . . . . . . . . . 215
3.8. PositionInterpolator2D node . . . . . . . . . . . . . . . . . . . . . . . . . . 216
3.9. CoordinateInterpolator2D node. . . . . . . . . . . . . . . . . . . . . . . . 218
4. Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
4.1. Key ideas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
4.2. Related nodes and concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
4.3. Next chapter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
CHAPTER 8
User Interactivity Nodes . . . . . . . . . . . . . . . . . . . . . . . . 221
1. What this chapter covers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
2. Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
2.1. Purpose and common functionality . . . . . . . . . . . . . . . . . . . . . 222
2.2. X3DSensorNode type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
2.3. X3DPointingDeviceSensorNode type . . . . . . . . . . . . . . . . . . . . 223
xii Contents
Brutzman-FM.qxd 2:28:07 08:51 PM Page xii
2.4. X3DTouchSensorNode type. . . . . . . . . . . . . . . . . . . . . . . . . . . 225
2.5. X3DDragSensorNode type . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
2.6. X3DKeyDeviceSensorNode type . . . . . . . . . . . . . . . . . . . . . . . 226
3. Node descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
3.1. TouchSensor node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
3.2. PlaneSensor node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
3.3. CylinderSensor node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
3.4. SphereSensor node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
3.5. KeySensor node. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
3.6. StringSensor node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
4. Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
4.1. Key ideas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
4.2. Related nodes and concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
4.3. Next chapter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
CHAPTER 9
Event Utilities and Scripting . . . . . . . . . . . . . . . . . . . . . 249
1. What this chapter covers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
2. Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
2.1. Purpose and common functionality . . . . . . . . . . . . . . . . . . . . . 250
2.2. X3DScriptNode type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
2.3. X3DSequencerNode type. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
2.4. X3DTriggerNode type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
3. Node Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
3.1. BooleanFilter node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
3.2. BooleanSequencer node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
3.3. BooleanToggle node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
3.4. BooleanTrigger node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
3.5. IntegerSequencer node. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
3.6. IntegerTrigger node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
3.7. TimeTrigger node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
3.8. Script node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
4. Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
4.1. Key ideas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
4.2. Related nodes and concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
4.3. Next chapter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
Contents xiii
Brutzman-FM.qxd 2:28:07 08:51 PM Page xiii
CHAPTER 10
Geometry Nodes, Part 3: Geometry2D Nodes . . . . . . . . . . 279
1. What this chapter covers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
2. Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
2.1. Purpose and common functionality . . . . . . . . . . . . . . . . . . . . . 280
2.2. Common geometry fields. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
3. Node descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
3.1. Arc2D node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
3.2. ArcClose2D node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
3.3. Circle2D node. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
3.4. Disk2D node. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
3.5. Polyline2D node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
3.6. Polypoint2D node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
3.7. Rectangle2D node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
3.8. TriangleSet2D node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
4. Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
4.1. Key ideas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
4.2. Related nodes and concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
4.3. Next chapter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
CHAPTER 11
Lighting and Environment Nodes . . . . . . . . . . . . . . . . . . 299
1. What this chapter covers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
2. Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
2.1. Purpose and common functionality . . . . . . . . . . . . . . . . . . . . . 302
2.2. X3DLightNode type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
2.3. X3DBackgroundNode type . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
3. Node descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
3.1. DirectionalLight node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
3.2. Headlight . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
3.3. PointLight node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
3.4. SpotLight node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
3.5. Background node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
3.6. TextureBackground node. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
3.7. Fog node. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
xiv Contents
Brutzman-FM.qxd 2:28:07 08:51 PM Page xiv
4. Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
4.1. Key ideas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
4.2. Related nodes and concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
4.3. Next chapter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
CHAPTER 12
Environment Sensor and Sound Nodes . . . . . . . . . . . . . . 327
1. What this chapter covers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
2. Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
2.1. X3DEnvironmentSensorNode type. . . . . . . . . . . . . . . . . . . . . . 328
2.2. X3DNetworkSensorNode type. . . . . . . . . . . . . . . . . . . . . . . . . 329
2.3. X3DSoundNode type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
2.4. X3DSoundSourceNode type . . . . . . . . . . . . . . . . . . . . . . . . . . 330
3. Node descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
3.1. LoadSensor node. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
3.2. ProximitySensor node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
3.3. VisibilitySensor node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
3.4. Sound node. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
3.5. AudioClip node. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
4. Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
4.1. Key ideas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
4.2. Related nodes and concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
4.3. Next chapter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
CHAPTER 13
Geometry Nodes, Part 4: Triangles and Quadrilaterals . . . 353
1. What this chapter covers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
2. Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
2.1. Purpose and common functionality . . . . . . . . . . . . . . . . . . . . . 354
2.2. Abstract node types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
2.2.1. X3DColorNode, X3DCoordinateNode,
X3DGeometricPropertyNode, X3DGeometryNode,
and X3DNormalNode types . . . . . . . . . . . . . . . . . 355
2.2.2. X3DComposedGeometryNode type . . . . . . . . . . . 356
2.3. Common geometry fields. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
Contents xv
Brutzman-FM.qxd 2:28:07 08:51 PM Page xv
3. Node descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
3.1. Normal node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
3.2. TriangleSet node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
3.3. TriangleFanSet node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
3.4. TriangleStripSet node. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368
3.5. QuadSet node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
3.6. IndexedTriangleSet node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
3.7. IndexedTriangleFanSet node . . . . . . . . . . . . . . . . . . . . . . . . . . 373
3.8. IndexedTriangleStripSet node. . . . . . . . . . . . . . . . . . . . . . . . . . 375
3.9. IndexedQuadSet node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
4. Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
4.1. Key ideas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
4.2. Related nodes and concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
4.3. Next chapter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
CHAPTER 14
Creating Prototype Nodes . . . . . . . . . . . . . . . . . . . . . . . 381
1. What this chapter covers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
2. Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
2.1. Extensibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
2.2. Strong typing of nodes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
2.3. Comparison with Inline node. . . . . . . . . . . . . . . . . . . . . . . . . . 383
2.4. Syntax alert. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
3. Functional descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384
3.1. Prototype declarations: ProtoDeclare . . . . . . . . . . . . . . . . . . . . 384
3.2. External prototype declarations: ExternProtoDeclare . . . . . . . . 394
3.3. Prototype instances: ProtoInstance . . . . . . . . . . . . . . . . . . . . . . 397
4. Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
4.1. Key ideas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
4.2. Related nodes and concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . 399
Afterword: Getting Involved . . . . . . . . . . . . . . . . . . . . . 401
Learning X3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
Building Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
xvi Contents
Brutzman-FM.qxd 2:28:07 08:51 PM Page xvi
Creating Content. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
X3D Development. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
Other Web3D Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
APPENDICES
A. Online Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
Web Site Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
B. Help: X3D/VRML Examples . . . . . . . . . . . . . . . . . . . . . 405
Applications, Players, and Plugins for X3D/VRML Viewing . . . . 405
Web3D Consortium Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
Not (yet) Web3D Consortium Members . . . . . . . . . . . . . . . . . . . . . . 406
Authoring Tools. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
Authoring Support. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
Conversion and Translation Tools . . . . . . . . . . . . . . . . . . . . . . . . . . 407
Examples. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408
License . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
PowerPoint Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
C. X3D Scene Authoring Hints . . . . . . . . . . . . . . . . . . . . 411
Authoring practices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411
Credits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414
Dates. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414
HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415
Images. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415
Inline and Prototype Subscenes. . . . . . . . . . . . . . . . . . . . . . . . . . 416
License . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
meta tags. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418
Contents xvii
Brutzman-FM.qxd 2:28:07 08:51 PM Page xvii
xviii Contents
Naming Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418
Naming of Multiple Similar Autogenerated Files. . . . . . . . . . . . . . . . 419
Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419
URL Links. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420
Viewpoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421
List of References. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425 |
Côte titre : |
Fs/19854 |
|  |