Table of Contents
- Preface
- Goals
- Motivation
- Reader background
- Software support
- Book Structure
- Typographic conventions
- Chapter organization
- Chapter descriptions
- Chapter topics
- Appendices
- How to use this book
- Acknowledgment
- Contributors
- Technical Overview
- Introduction
- Concepts
- Historical Background: VRML, ISO, and the Web3D Consortium
- X3D browsers
- X3D specification
- Scene graph
- File structure
- File header
- X3D header statement
- Profile statements
- Component statements
- Meta statements
- Scene graph body
- Field types
- Node types
- File encodings: XML, Classic VRML, and Compressed
- Extensible Markup Language (XML) encoding: .x3d files
- XML motivations
- XML design for X3D
- XML validation
- Classic VRML encoding: .x3dv files
- Binary encoding: .x3db files
- Hello World example using X3D-Edit and an X3D browser
- Extensible Markup Language (XML) encoding: .x3d files
- Summary
- Key ideas
- Next chapters
- Geometry Nodes, Part 1: Primitives
- What this chapter covers
- Concepts
- Purpose and common functionality
- Common fields
- solid
- Abstract node types
- X3DShapeNode
- X3DGeometryNode
- X3DFontStyleNode
- Hints and warnings
- Node descriptions
- Shape node
- Hints and warnings
- Box node
- size
- Hints and warnings
- Cone node
- bottomRadius and height
- bottom and side
- Hints and warnings
- Cylinder node
- radius and height
- bottom, size, and top
- Hints and warnings
- Sphere node
- radius
- Hints and warnings
- Text node
- string
- length
- maxExtent
- Hints and warnings
- FontStyle node
- family
- justify
- language
- style
- horizontal, leftToRight, and topToBottom
- Hints and warnings
- Shape node
- Summary
- Key ideas
- Related nodes and concepts
- Next chapter
- Grouping Nodes
- What this chapter covers
- Concepts
- Purpose and common functionality
- Units of measurement and coordinate systems
- Coordinate system details
- Which way is up?
- "Right-hand rule" rules!
- Orientation
- DEF and USE
- Abstract node types
- X3DChildNode
- X3DBoundedObject
- bboxSize
- bboxCenter
- Hints and warnings
- X3DGroupingNode
- children
- addChildren, removeChildren
- Hints and warnings
- X3DInfoNode
- Hints and warnings
- Node descriptions
- Group and StaticGroup nodes
- Transform node
- translation
- rotation
- center
- scale
- scaleOrientation
- Order of translation, rotation, scaling, and center operations
- Hints and warnings
- Inline node
- Uniform resource location (url) field
- load
- Hints and warnings
- LOD node
- center
- forceTransitions
- level_changed
- range
- Hints and warnings
- Switch node
- whichChoice
- Hints and warnings
- Summary
- Key ideas
- Related node and concepts
- Next chapter
- Viewing and Navigation
- What this chapter covers
- Concepts
- Purpose and common functionality
- Viewing model
- Navigation Model
- Collision detection and terrain following
- Abstract node types
- X3DBindableNode
- set_bind
- bindTime
- isBound
- Hints and warnings
- X3DBindableNode
- Node descriptions
- Viewpoint node
- description
- position
- orientation
- fieldOfView
- jump
- centerOfRotation
- Hints and warnings
- NavigationInfo node
- type
- speed
- headlight
- transitionType
- visibilityLimit
- avatarSize
- Hints and warnings
- Anchor node
- description
- url
- parameter
- Hints and warnings
- Billboard node
- axisOfRotation
- Hints and warnings
- Collision node
- collideTime
- proxy
- Hints and warnings
- Viewpoint node
- Summary
- Key ideas
- Related nodes and concepts
- Next chapter
- Appearance, Material, and Textures
- What this chapter covers
- Concepts
- Purpose and common functionality
- Texture coordinates
- Abstract node types
- X3DAppearanceNode and X3DAppearanceChildNode
- X3DMaterialNode
- X3DTextureNode, X3DTextureCorodinateNode, and X3DTextureTransformNode
- X3DTexture2DNode
- repeatS and repeatT
- X3DTextureTransform2DNode
- Purpose and common functionality
- Node descriptions
- Appearance node
- Hints and warnings
- Material node
- ambientIntensity
- diffuseColor
- emissiveColor
- specularColor and shininess
- transparency
- Hints and warnings
- FillProperties node
- filled
- hatched
- hatchColor
- hatchStyle
- Hints and warnings
- LineProperties node
- applied
- linewidthScaleFactor
- linetype
- Hints and warnings
- ImageTexture node
- url
- Hints and warnings
- MovieTexture node
- loop
- speed
- startTime and stopTime
- pauseTime and resumeTime
- isActive and isPaused
- duration_changed and elapsedTime
- Hints and warnings
- PixelTexture node
- SFImage Type
- image
- Hints and warnings
- TextureTransform node
- translation
- center and rotation
- scale
- Hints and warnings
- TextureCoordinate node
- point
- Hints and warnings
- TextureCoordinateGenerator node
- mode and parameter
- Hints and warnings
- Appearance node
- Summary
- Key ideas
- Related nodes and concepts
- Next chapter
- Geometry Nodes, Part 2: Points, Lines, and Polygons
- What this chapter covers
- Concepts
- Purpose and common functionality
- Common geometry fields
- ccw
- colorPerVertex
- convex
- creaseAngle
- Index fields: colorIndex, coordIndex, and normalIndex
- Hints and warnings
- Node descriptions
- Color and ColorRGBA nodes
- Hints and warnings
- Coordinate and CoordinateDouble nodes
- Hints and warnings
- PointSet node
- Hints and warnings
- IndexedLineSet node
- Hints and warnings
- LineSet node
- Hints and warnings
- IndexedFaceSet node
- Hints and warnings
- ElevationGrid node
- Hints and warnings
- Extrusion node
- beginCap and endCap
- Extrusion examples
- Hints and warnings
- Color and ColorRGBA nodes
- Summary
- Key ideas
- Related nodes and concepts
- Next chapter
- Event Animation and Interpolation
- What this chapter covers
- Concepts
- Animation as scene-graph modification
- Purpose and common functionality
- ROUTE connections
- Hints and warnings
- Interpolation
- Constructing animation chains: 10 steps
- Abstract node types
- X3DTimeDependentNode type
- X3DSensorNode type
- X3DInterpolatorNode type
- key and keyValue
- set_fraction and value_changed
- Similar functionality: sequencer nodes
- Hints and warnings
- Node descriptions
- TimeSensor node
- enabled
- startTime
- stopTime
- cycleInterval
- loop
- cycleTime
- isActive
- isPaused
- pauseTime
- resumeTime
- elapsedTime
- Hints and warnings
- ScalarInterpolator node
- key and keyValue
- Hints and warnings
- ColorInterpolator node
- Example
- key and keyValue
- Hints and warnings
- PositionInterpolator Node
- key and keyValue
- Hints and warnings
- OrientationInterpolator node
- key and keyValue
- Hints and warnings
- NormalInterpolator node
- Hints and warnings
- CoordinateInterpolator node
- key and keyValue
- Hints and warnings
- PositionInterpolator2D node
- key and keyValue
- Hints and warnings
- CoordinateInterpolator2D node
- key and keyValue
- Hints and warnings
- Summary
- Key ideas
- Related node and concepts
- Next chapter
- What this chapter covers
- Concepts
- Purpose and common functionality
- X3DSensorNode type
- enabled
- isActive
- Hints and warnings
- X3DPointingDeviceSensorNode type
- description
- isOver
- Hints and warnings
- X3DTouchSensorNode type
- X3DDragSensorNode type
- offset and autoOffset
- trackPoint_changed
- Hints and warnings
- X3DKeyDeviceSensorNode type
- Hints and warnings
- Node descriptions
- TouchSensor node
- touchTime
- Hints and warnings
- PlaneSensor node
- minPosition and maxPosition
- offset
- trackPoint_changed
- translation_changed
- Hints and warnings
- CylinderSensor node
- minAngle
- maxAngle
- diskAngle
- offset
- trackPoint_changed
- rotation_changed
- Hints and warnings
- SphereSensor node
- offset
- trackPoint_changed
- rotation_changed
- Hints and warnings
- KeySensor node
- actionKeyPress and actionKeyRelease
- altKey, controlKey, and shiftKey
- keyPress and keyRelease
- isActive
- Hints and warnings
- StringSensor node
- deletionAllowed
- enteredText
- finalText
- isActive
- Hints and warnings
- TouchSensor node
- Summary
- Key ideas
- Related nodes and concepts
- Next chapter
- What this chapter covers
- Concepts
- Purpose and common functionality
- X3DScriptNode type
- X3DSequencerNode type
- next and previous
- key and keyValue
- set_fraction and value_changed
- Hints and warnings
- X3DTriggerNode type
- Hints and warnings
- Node descriptions
- BooleanFilter node
- Set)Boolean
- inputTrue and inputFalse
- inputNegate
- Hints and warnings
- BooleanSequencer node
- Hints and warnings
- BooleanToggle node
- BooleanTrigger node
- IntegerSequencer node
- IntegerTrigger node
- TimeTrigger node
- Script node
- url
- directOutput
- mustEvaluate
- initialize() and shutdown() methods
- prepareEvents() method
- eventsProcessed() method
- Browser functions
- Script control: event passing, directOutput, and SAI
- Execution model and event cascade
- Additional Script node execution semantics
- Hints and warnings
- BooleanFilter node
- Summary
- Key ideas
- Related nodes and concepts
- Next chapter
- What this chapter covers
- Concepts
- Purpose and common functionality
- Common geometry fields
- Node descriptions
- Arc2D node
- Example
- Hints and warnings
- ArcClose2D node
- Example
- Hints and warnings
- Circle2D node
- Example
- Hints and warnings
- Disk2D node
- Examples
- Hints and warnings
- Polyline2D node
- Examples
- Hints and warnings
- Polypoint2D node
- Examples
- Hints and warnings
- Rectangle2D node
- Examples
- TriangleSet2D node
- Examples
- Hints and warnings
- Arc2D node
- Summary
- Key ideas
- Related nodes and concepts
- Next chapter
- What this chapter covers
- Concepts
- Purpose and common functionality
- Lighting
- Background and fog effects
- X3DLightNode type
- ambientIntensity and intensity
- color
- global
- on
- Hints and warnings
- X3DBackgroundNode type
- groundAngle and skyAngle
- Hints and warnings
- Node descriptions
- DirectionalLight node
- direction
- Hints and warnings
- Headlight
- PointLight node
- attenuation
- location
- radius
- Hints and warnings
- Spotlight node
- attenuation
- beamWidth and cutOffAngle
- direction
- location
- radius
- Hints and warnings
- Background node
- backUrl, frontUrl, leftUrl, rightUrl, bottomUrl, topUrl
- Hints and warnings
- TextureBackground node
- backTexture, frontTexture, leftTexture, rightTexture, bottomTexture, topTexture
- transparency
- Hints and warnings
- Fog node
- color
- fogType
- visibilityRange
- Hints and warnings
- DirectionalLight node
- Summary
- Key ideas
- Related nodes and concepts
- Next chapter
- What this chapter covers
- Concepts
- X3DEnvironmentSensorNode type
- center and size
- isActive and enabled
- enterTime and exitTime
- Hints and warnings
- X3DNetworkSensorNode type
- X3DSoundNode type
- X3DSoundSourceNode type
- X3DEnvironmentSensorNode type
- Node descriptions
- LoadSensor node
- isActive
- timeout
- watchList
- isLoaded and loadTime
- progress
- Hints and warnings
- ProximitySensor node
- center and size
- orientation_changed
- position_changed
- Examples
- Hints and warnings
- VisibilitySensor node
- Hints and warnings
- Sound node
- Sound attenuation and 3D spatialization
- location and direction
- intensity
- priority
- spatialize
- minFront and minBack
- maxFront and maxBack
- source
- Hints and warnings
- AudioClip node
- description
- isActive
- loop
- url
- pitch
- duration_changed
- Hints and warnings
- LoadSensor node
- Summary
- Key ideas
- Related nodes and concepts
- Next chapter
- What this chapter covers
- Concepts
- Purpose and common functionality
- Abstract node types
- X3DColorNode, X3DCoordinateNode, X3DGeometricPropertyNode, X3DGeometryNode, and X3DNormalNode types
- X3DComposedGeometryNode type
- Common geometry fields
- Two-sided rendering versus backface culling, using the ccw and solid fields
- Ordering or indexing of vertices, index, and set_index fields
- colorPerVertex
- normalPerVertex
- Hints and warnings
- Node descriptions
- Normal node
- Hints and warnings
- TriangleSet node
- TriangleFanSet node
- fanCount
- Hints and warnings
- TriangleStripSet node
- stripCount
- Hints and warnings
- QuadSet node
- Hints and warnings
- IndexedTriangleSet node
- Hints and warnings
- IndexedTriangleFanSet node
- Hints and warnings
- IndexedTriangleStripSet node
- Hints and warnings
- IndexedQuadSet node
- Hints and warnings
- Normal node
- Summary
- Key ideas
- Related nodes and concepts
- Next chapter
- What this chapter covers
- Concepts
- Extensibility
- Strong typing of nodes
- Comparison with Inline node
- Functional descriptions
- Prototype declarations: ProtoDeclare
- Naming considerations
- ProtoInterface and field definitions
- XML
attributes for appinfo, documentation - Field definitions for accessType and type
- ProtoBody definition
- IS connections between ProtoBody fields and ProtoInterface fields
- Hints and warnings
- External prototype declarations: ExternProtoDeclare
- url considerations
- Hints and warnings
- Prototype instances: ProtoInstance
- fieldValue definitions
- Setting node type with containerField
- Converting existing content into a prototype declaration
- Hints and warnings
- Prototype declarations: ProtoDeclare
- Summary
- Key ideas
- Related nodes and concepts
Afterword: Getting Involved
- Learning X3D
- Building Software
- Creating Content
- X3D Development
- Other Web3D Activities
Appendices
- Web site Description
- Help: X3D/VRML Examples
- Applications, Players, and Plugins for X3D/VRML Viewing
- Web3D Consortium Members
- Not (yet) Web3D Consortium Members
- Authoring Tools
- Authoring Support
- Examples
- License
- PowerPoint Support
- References
- Contact
- Applications, Players, and Plugins for X3D/VRML Viewing
- X3D Scene Authoring Hints
- Authoring practices
- Credits
- Dates
- HTML
- Images
- Inline and Prototype Subscenes
- License
- meta tags
- Naming Conventions
- Naming of Multiple Similar Autogenerated Files
- Scripts
- URL Links
- Viewpoints
- List of References
Portions of this work are from the book,
X3D: 3D Graphics for Web Authors, by
Don Brutzman and Leonard Daly, published by Morgan Kaufmann Publishers,
Copyright 2007 Elsevier, Inc.
All rights reserved.
Web site copyright © 2007, Daly Realism and Don Brutzman