topical media & game development

talk show tell print

Web3D/VR

demo(s) / bouncing ball

Web3D/VR






Æliens

eliens@cs.vu.nl



Web3D/VR

readme

about / web 2.0


  • for any chapter -- choose either 1, 2, 3, 4, 5, 6 or 7
  • for additional lectures == choose lectures
  • for (digital) resources -- choose resources
  • for printing directives -- choose print
  • for an explanation of the slide format -- choose slides
  • and for the rest -- make your own choice
<%^>

copyright

This material is copyrighted. You may not copy or print any of this material without explicit permission of the author or the publisher.

formats

The notes are available

  • in PDF format
  • online in HTML
  • as slides in both dynamic HTML and VRML

slides

Slides are segments or slices of the text that may be displayed independently, or in sequence, with enlarged font.

Slides are available both in dynamic HTML/javascript presentation format, as well as in a home-grown VRML format.

PDF (reading and printing)

Go to the index. and click on PDF.

A PDF reader must be installed on your system. Such a reader can be freely obtained at www.adobe.com.

Alternatively, click on the sign at the top right for a PDF version of that particular chapter or section.

online version

Click on [], in the topleft of the navigation area, for a contents listing.

presentation

Click on the at the index page,or any of the other pages, for a dynamic HTML version of the slides.

See DejaVU Online (Readers Guide) for an explanation of the navigation options. The principle is simple, click on the right yellow sidebar, until the presentation is finished.

For a VRML version, click on the sign. These links require the blaxxun Contact 3D plugin. Hit the spacebar to advance in the sequence. The backspace takes you one back.

trails

This document may contain trails.

Qualified trails are indicated with, for example, C: < % ^ >. In this case it concerns a concepts trail.

The signs indicate respectively:

  • < -- back, to the previous segment
  • % -- (toggle) to slide-mode in text, to text in slide-mode
  • ^ -- up (to the beginning of a chapter or section)
  • > -- to the next segment

other links

In resources links to other sites as well as online copies of external material are given.

CDROM

The CDROM contains the full online version of the course notes. Open the file index.html in Netscape Navigator or Microsoft Internet Explorer, and click on readme for an explanation or introduction multimedia to access the material.

The online version provides you with both an HTML-based presentation format, as well as a VRML-based format, for presenting the lectures in class. The blaxxun Contact 3D VRML browser you need for this may be freely obtained from www.blaxxun.com.

Web3D/VR

www.cs.vu.nl/~eliens/mma

















left right pause wind/l wind/r reset

Web3D/VR

Web3D/VR

everything is intertwinkled


college

See MMA
See Research in VR

Web3D/VRML

Web3D/VR

1

vrml basics

concepts -- VRML

  • file structure -- convention
  • header -- versioning
  • scenegraph -- structure
  • prototypes -- abstraction
  • transforms -- grouping and (space) warps
  • routing -- wiring events

logo

...

logo source

...

transform

transform source

source(s)


homework: parts 1,2,3 of (floppy) vapourtech tutorial

node reference

everything is intertwinkled


Web3D/VR

2

themes and variations

examples


homework: rest of vapourtech tutorial

resource(s)


Web3D/VR

3

interpolators and scripts

contents

  • VRML (dynamic) concepts
  • nodes for assignments
  • small examples

nodes for assignment


      Sensors
  	(TouchSensor, PlaneSensor, CylinderSensor, SphereSensor),
  		                    DEF/USE,
  						PROTO 
  

timers, interpolators, sensors and scripts

dissection

dissection analog case


  
  Shape  {    ## # The shape
  	geometry Sphere { radius 2 }
  	## # we will modify the Material (DEF)
  	appearance Appearance {
  		material DEF MATERIAL Material {
  			diffuseColor 1 0 0
  			}
  		}
    } # 
  
    DEF TIME TimeSensor { loop TRUE cycleInterval 5 } #
    ## # We use a simple ColorInterpolator (analog)
    DEF COLORS ColorInterpolator {
  	key [ 0 0.5 1 ]
  	keyValue [ 1 0 0,  0 0 1, 1 0 0 ]
  	} #
  
  ROUTE TIME.fraction_changed TO COLORS.set_fraction
  ROUTE COLORS.value_changed TO MATERIAL.diffuseColor
  
  

dissection discrete case


  
  Shape  {
  	geometry Sphere { radius 2 }
  	appearance Appearance {
  		material DEF MATERIAL Material {
  			diffuseColor 1 0 0
  			}
  		}
  }
  DEF TIME TimeSensor { loop TRUE cycleInterval 5 } #
  
  DEF COLORS Script {   
  	eventIn SFFloat set_fraction    
  	eventOut SFColor value_changed  
  	url "javascript:
  	function set_fraction(value) {  
  		if (value < 0.5) value_changed = '0 1 1';
  		else value_changed = '1 0 0';
  		}
  		"
  	}#
  
  
  ROUTE TIME.fraction_changed TO COLORS.set_fraction
  ROUTE COLORS.value_changed TO MATERIAL.diffuseColor
  
  

TimeSensor


  TimeSensor { 
      exposedField SFTime   cycleInterval 1       # (0,)
      exposedField SFBool   enabled       TRUE
      exposedField SFBool   loop          FALSE
      exposedField SFTime   startTime     0       # (-,)
      exposedField SFTime   stopTime      0       # (-,)
      eventOut     SFTime   cycleTime
      eventOut     SFFloat  fraction_changed
      eventOut     SFBool   isActive
      eventOut     SFTime   time
    }
  

prototype

dissection prototype


  
  PROTO Bulb [
  exposedField SFVec3f translation 0 0 0
  exposedField SFVec3f scale 1 1 1
  ]{
  Transform {
  translation IS translation
  scale IS scale
  children [
  Shape  {
  	geometry Sphere { radius 2 }
  	appearance Appearance {
  		material DEF MATERIAL Material { #
  			diffuseColor 1 0 0
  			}
  		}
  } #
  
  DEF TOUCH TouchSensor { }
  DEF TIME TimeSensor { enabled FALSE loop TRUE } #
  
  DEF SCRIPT Script {   
  	eventIn SFFloat set_fraction    
  	eventOut SFColor value_changed  
  	eventIn  SFTime touched
  	eventOut SFBool enabled
  	field SFBool on FALSE
  	url "javascript:
  	function touched(time) {
  	if (!on) {
  		on = 'TRUE';
  		enabled = 'TRUE';
  	} else {
  		on = 'FALSE';
  		enabled = 'FALSE';
  		}
  	}
  	function set_fraction(value) {  
  		if (value < 0.5) value_changed = '1 0 0';
  		else value_changed = '0 1 1';
  		}
  		"
  	}#
  
  ROUTE TOUCH.touchTime TO SCRIPT.touched
  ROUTE SCRIPT.enabled TO TIME.enabled
  ROUTE TIME.fraction_changed TO SCRIPT.set_fraction
  ROUTE SCRIPT.value_changed TO MATERIAL.diffuseColor
  ] }
  }
  
  Bulb { translation -8 0 0 scale 0.5 0.5 0.5 }
  Bulb { translation -5 0 0 }
  Bulb { scale 1.5 1.5 1.5 }
  Bulb { translation 5 0 0 }
  Bulb { translation 8 0 0 scale 0.5 0.5 0.5 }
  
  

script



  DEF SCRIPT Script {   
  	eventIn SFFloat set_fraction    
  	eventOut SFColor value_changed  
  	eventIn  SFTime touched
  	eventOut SFBool enabled
  	field SFBool on FALSE
  

  	url "javascript:
  	function touched(time) {
  	if (!on) {
  		on = 'TRUE';
  		enabled = 'TRUE';
  	} else {
  		on = 'FALSE';
  		enabled = 'FALSE';
  		}
  	}
  	function set_fraction(value) {  
  		if (value < 0.5) value_changed = '1 0 0';
  		else value_changed = '0 1 1';
  		}
  		"
  	}
  

  ROUTE SCRIPT.enabled TO TIME.enabled
  ROUTE TIME.fraction_changed TO SCRIPT.set_fraction
  ROUTE SCRIPT.value_changed TO MATERIAL.diffuseColor
  

routing



  DEF TOUCH TouchSensor { }
  DEF TIME TimeSensor { enabled FALSE loop TRUE } 
  DEF SCRIPT Script {     
  ...
  }
  ROUTE TOUCH.touchTime TO SCRIPT.touched
  ROUTE SCRIPT.enabled TO TIME.enabled
  ROUTE TIME.fraction_changed TO SCRIPT.set_fraction
  ROUTE SCRIPT.value_changed TO MATERIAL.diffuseColor  
  

instances



  Bulb { translation -8 0 0 scale 0.5 0.5 0.5 }
  Bulb { translation -5 0 0 }
  Bulb { scale 1.5 1.5 1.5 }
  Bulb { translation 5 0 0 }
  Bulb { translation 8 0 0 scale 0.5 0.5 0.5 }  
  

TouchSensor


  TouchSensor { 
      exposedField SFBool  enabled TRUE
      eventOut     SFVec3f hitNormal_changed
      eventOut     SFVec3f hitPoint_changed
      eventOut     SFVec2f hitTexCoord_changed
      eventOut     SFBool  isActive
      eventOut     SFBool  isOver
      eventOut     SFTime  touchTime
    }
  

Script


  Script { 
      exposedField MFString url           [] 
      field        SFBool   directOutput  FALSE
      field        SFBool   mustEvaluate  FALSE
      # And any number of:
      eventIn      eventType eventName
      field        fieldType fieldName initialValue
      eventOut     eventType eventName
    }
  

examples


homework: annotated reference manual

Web3D/VRML

Web3D/VR

Web3D/VR

4

protos and dialogs

examples


about / web 2.0


Web3D/VR

5

gui and scripts

examples


topical media


Web3D/VR

6

viewpoints and extensions

example(s)


topical media


Web3D/VR

7

virtual environments

example(s)


topical media


Web3D/VR

reference

alphabetical structural overview extensions annotated reference


Anchor


   Anchor { 
      eventIn      MFNode   addChildren
      eventIn      MFNode   removeChildren
      exposedField MFNode   children        []
      exposedField SFString description     "" 
      exposedField MFString parameter       []
      exposedField MFString url             []
      field        SFVec3f  bboxCenter      0 0 0     # (-,)
      field        SFVec3f  bboxSize        -1 -1 -1  # (0,) or -1,-1,-1
    }
  

Appearance


  Appearance { 
      exposedField SFNode material          NULL
      exposedField SFNode texture           NULL
      exposedField SFNode textureTransform  NULL
    }
  

AudioClip


  AudioClip { 
      exposedField   SFString description      ""
      exposedField   SFBool   loop             FALSE
      exposedField   SFFloat  pitch            1.0        # (0,)
      exposedField   SFTime   startTime        0          # (-,)
      exposedField   SFTime   stopTime         0          # (-,)
      exposedField   MFString url              []
      eventOut       SFTime   duration_changed
      eventOut       SFBool   isActive
    }
  

Background


  Background { 
      eventIn      SFBool   set_bind
      exposedField MFFloat  groundAngle  []            # [0,/2]
      exposedfield MFColor  groundColor  []            # [0,1]
      exposedField MFString backUrl      []
      exposedField MFString bottomUrl    []
      exposedField MFString frontUrl     []
      exposedField MFString leftUrl      []
      exposedField MFString rightUrl     []
      exposedField MFString topUrl       []
      exposedField MFFloat  skyAngle     []            # [0,]
      exposedField MFColor  skyColor     [ 0 0 0 ]     # [0,1]
      eventOut     SFBool   isBound
    }
  

Billboard


  Billboard { 
      eventIn      MFNode   addChildren
      eventIn      MFNode   removeChildren
      exposedField SFVec3f  axisOfRotation  0 1 0      # (-,)
      exposedField MFNode   children        []
      field        SFVec3f  bboxCenter      0 0 0      # (-,)
      field        SFVec3f  bboxSize        -1 -1 -1   # (0,) or -1,-1,-1
    }
  

Box


  Box { 
      field    SFVec3f size  2 2 2        # (0, )
    }
  

Collision


  Collision { 
      eventIn      MFNode   addChildren
      eventIn      MFNode   removeChildren
      exposedField MFNode   children        []
      exposedField SFBool   collide         TRUE
      field        SFVec3f  bboxCenter      0 0 0      # (-,)
      field        SFVec3f  bboxSize        -1 -1 -1   # (0,) or -1,-1,-1
      field        SFNode   proxy           NULL
      eventOut     SFTime   collideTime
    }
  

Color


  Color { 
      exposedField MFColor color  []         # [0,1]
    }
  

ColorInterpolator


  ColorInterpolator { 
      eventIn      SFFloat set_fraction        # (-,)
      exposedField MFFloat key           []    # (-,)
      exposedField MFColor keyValue      []    # [0,1]
      eventOut     SFColor value_changed
    }
  

Cone


  Cone { 
      field     SFFloat   bottomRadius 1        # (0,)
      field     SFFloat   height       2        # (0,)
      field     SFBool    side         TRUE
      field     SFBool    bottom       TRUE
    }
  

Coordinate


  Coordinate { 
      exposedField MFVec3f point  []      # (-,)
    }
  

CoordinateInterpolator


  CoordinateInterpolator { 
      eventIn      SFFloat set_fraction        # (-,)
      exposedField MFFloat key           []    # (-,)
      exposedField MFVec3f keyValue      []    # (-,)
      eventOut     MFVec3f value_changed
    }
  

Cylinder


  Cylinder { 
      field    SFBool    bottom  TRUE
      field    SFFloat   height  2         # (0,)
      field    SFFloat   radius  1         # (0,)
      field    SFBool    side    TRUE
      field    SFBool    top     TRUE
    }
  

CylinderSensor


  CylinderSensor { 
      exposedField SFBool     autoOffset TRUE
      exposedField SFFloat    diskAngle  0.262       # (0,/2)
      exposedField SFBool     enabled    TRUE
      exposedField SFFloat    maxAngle   -1          # [-2,2]
      exposedField SFFloat    minAngle   0           # [-2,2]
      exposedField SFFloat    offset     0           # (-,)
      eventOut     SFBool     isActive
      eventOut     SFRotation rotation_changed
      eventOut     SFVec3f    trackPoint_changed
    }
  

DirectionalLight


  DirectionalLight { 
      exposedField SFFloat ambientIntensity  0        # [0,1]
      exposedField SFColor color             1 1 1    # [0,1]
      exposedField SFVec3f direction         0 0 -1   # (-,)
      exposedField SFFloat intensity         1        # [0,1]
      exposedField SFBool  on                TRUE 
    }
  

ElevationGrid


  ElevationGrid { 
      eventIn      MFFloat  set_height
      exposedField SFNode   color             NULL
      exposedField SFNode   normal            NULL
      exposedField SFNode   texCoord          NULL
      field        MFFloat  height            []      # (-,)
      field        SFBool   ccw               TRUE
      field        SFBool   colorPerVertex    TRUE
      field        SFFloat  creaseAngle       0       # [0,]
      field        SFBool   normalPerVertex   TRUE
      field        SFBool   solid             TRUE
      field        SFInt32  xDimension        0       # [0,)
      field        SFFloat  xSpacing          1.0     # (0,)
      field        SFInt32  zDimension        0       # [0,)
      field        SFFloat  zSpacing          1.0     # (0,)
    }
  

Extrusion


  Extrusion { 
      eventIn MFVec2f    set_crossSection
      eventIn MFRotation set_orientation
      eventIn MFVec2f    set_scale
      eventIn MFVec3f    set_spine
      field   SFBool     beginCap         TRUE
      field   SFBool     ccw              TRUE
      field   SFBool     convex           TRUE
      field   SFFloat    creaseAngle      0                # [0,)
      field   MFVec2f    crossSection     [ 1 1, 1 -1, -1 -1,
                                           -1 1, 1  1 ]    # (-,)
      field   SFBool     endCap           TRUE
      field   MFRotation orientation      0 0 1 0          # [-1,1],(-,)
      field   MFVec2f    scale            1 1              # (0,)
      field   SFBool     solid            TRUE
      field   MFVec3f    spine            [ 0 0 0, 0 1 0 ] # (-,)
    }
  

Fog


  Fog { 
      exposedField SFColor  color            1 1 1      # [0,1]
      exposedField SFString fogType          "LINEAR"
      exposedField SFFloat  visibilityRange  0          # [0,)
      eventIn      SFBool   set_bind
      eventOut     SFBool   isBound
    }
  

FontStyle


  FontStyle { 
      field MFString family       ["SERIF"]
      field SFBool   horizontal   TRUE
      field MFString justify      "BEGIN"
      field SFString language     ""
      field SFBool   leftToRight  TRUE
      field SFFloat  size         1.0          # (0,)
      field SFFloat  spacing      1.0          # [0,)
      field SFString style        "PLAIN"
      field SFBool   topToBottom  TRUE
    }
  

Group


  Group { 
      eventIn      MFNode  addChildren
      eventIn      MFNode  removeChildren
      exposedField MFNode  children       []
      field        SFVec3f bboxCenter     0 0 0     # (-,)
      field        SFVec3f bboxSize       -1 -1 -1  # (0,) or -1,-1,-1
    }
  

ImageTexture


  ImageTexture { 
      exposedField MFString url     []
      field        SFBool   repeatS TRUE
      field        SFBool   repeatT TRUE
    }
  

IndexedFaceSet


  IndexedFaceSet { 
      eventIn       MFInt32 set_colorIndex
      eventIn       MFInt32 set_coordIndex
      eventIn       MFInt32 set_normalIndex
      eventIn       MFInt32 set_texCoordIndex
      exposedField  SFNode  color             NULL
      exposedField  SFNode  coord             NULL
      exposedField  SFNode  normal            NULL
      exposedField  SFNode  texCoord          NULL
      field         SFBool  ccw               TRUE
      field         MFInt32 colorIndex        []        # [-1,)
      field         SFBool  colorPerVertex    TRUE
      field         SFBool  convex            TRUE
      field         MFInt32 coordIndex        []        # [-1,)
      field         SFFloat creaseAngle       0         # [0,)
      field         MFInt32 normalIndex       []        # [-1,)
      field         SFBool  normalPerVertex   TRUE
      field         SFBool  solid             TRUE
      field         MFInt32 texCoordIndex     []        # [-1,)
    }
  

IndexedLineSet


  IndexedLineSet { 
      eventIn       MFInt32 set_colorIndex
      eventIn       MFInt32 set_coordIndex
      exposedField  SFNode  color             NULL
      exposedField  SFNode  coord             NULL
      field         MFInt32 colorIndex        []     # [-1,)
      field         SFBool  colorPerVertex    TRUE
      field         MFInt32 coordIndex        []     # [-1,)
    }
  

Inline


  Inline { 
      exposedField MFString url        []
      field        SFVec3f  bboxCenter 0 0 0     # (-,)
      field        SFVec3f  bboxSize   -1 -1 -1  # (0,) or -1,-1,-1
    }
  

LOD


  LOD { 
      exposedField MFNode  level    [] 
      field        SFVec3f center   0 0 0    # (-,)
      field        MFFloat range    []       # (0,)
    }
  

Material


  Material { 
      exposedField SFFloat ambientIntensity  0.2         # [0,1]
      exposedField SFColor diffuseColor      0.8 0.8 0.8 # [0,1]
      exposedField SFColor emissiveColor     0 0 0       # [0,1]
      exposedField SFFloat shininess         0.2         # [0,1]
      exposedField SFColor specularColor     0 0 0       # [0,1]
      exposedField SFFloat transparency      0           # [0,1]
    }
  

MovieTexture


  MovieTexture { 
      exposedField SFBool   loop             FALSE
      exposedField SFFloat  speed            1.0      # (-,)
      exposedField SFTime   startTime        0        # (-,)
      exposedField SFTime   stopTime         0        # (-,)
      exposedField MFString url              []
      field        SFBool   repeatS          TRUE
      field        SFBool   repeatT          TRUE
      eventOut     SFTime   duration_changed
      eventOut     SFBool   isActive
    }
  

NavigationInfo


  NavigationInfo { 
      eventIn      SFBool   set_bind
      exposedField MFFloat  avatarSize      [0.25, 1.6, 0.75] # [0,)
      exposedField SFBool   headlight       TRUE
      exposedField SFFloat  speed           1.0               # [0,)
      exposedField MFString type            ["WALK", "ANY"]
      exposedField SFFloat  visibilityLimit 0.0               # [0,)
      eventOut     SFBool   isBound
    }
  

Normal


  Normal { 
      exposedField MFVec3f vector  []   # (-,)
    }
  

NormalInterpolator


  NormalInterpolator { 
      eventIn      SFFloat set_fraction       # (-,)
      exposedField MFFloat key           []   # (-,)
      exposedField MFVec3f keyValue      []   # (-,)
      eventOut     MFVec3f value_changed
    }
  

OrientationInterpolator


  OrientationInterpolator { 
      eventIn      SFFloat    set_fraction      # (-,)
      exposedField MFFloat    key           []  # (-,)
      exposedField MFRotation keyValue      []  # [-1,1],(-,)
      eventOut     SFRotation value_changed
    }
  

PixelTexture


  PixelTexture { 
      exposedField SFImage  image      0 0 0    # see "4.5 SFImage"
      field        SFBool   repeatS    TRUE
      field        SFBool   repeatT    TRUE
    }
  

PlaneSensor


  PlaneSensor { 
      exposedField SFBool  autoOffset          TRUE
      exposedField SFBool  enabled             TRUE
      exposedField SFVec2f maxPosition         -1 -1     # (-,)
      exposedField SFVec2f minPosition         0 0       # (-,)
      exposedField SFVec3f offset              0 0 0     # (-,)
      eventOut     SFBool  isActive
      eventOut     SFVec3f trackPoint_changed
      eventOut     SFVec3f translation_changed
    }
  

PointLight


  PointLight { 
      exposedField SFFloat ambientIntensity  0       # [0,1]
      exposedField SFVec3f attenuation       1 0 0   # [0,)
      exposedField SFColor color             1 1 1   # [0,1]
      exposedField SFFloat intensity         1       # [0,1]
      exposedField SFVec3f location          0 0 0   # (-,)
      exposedField SFBool  on                TRUE 
      exposedField SFFloat radius            100     # [0,)
    }
  

PointSet


  PointSet { 
      exposedField  SFNode  color      NULL
      exposedField  SFNode  coord      NULL
    }
  

PositionInterpolator


  PositionInterpolator { 
      eventIn      SFFloat set_fraction        # (-,)
      exposedField MFFloat key           []    # (-,)
      exposedField MFVec3f keyValue      []    # (-,)
      eventOut     SFVec3f value_changed
    }
  

ProximitySensor


  ProximitySensor { 
      exposedField SFVec3f    center      0 0 0    # (-,)
      exposedField SFVec3f    size        0 0 0    # [0,)
      exposedField SFBool     enabled     TRUE
      eventOut     SFBool     isActive
      eventOut     SFVec3f    position_changed
      eventOut     SFRotation orientation_changed
      eventOut     SFTime     enterTime
      eventOut     SFTime     exitTime
    }
  

ScalarInterpolator


  ScalarInterpolator { 
      eventIn      SFFloat set_fraction         # (-,)
      exposedField MFFloat key           []     # (-,)
      exposedField MFFloat keyValue      []     # (-,)
      eventOut     SFFloat value_changed
    }
  

Script


  Script { 
      exposedField MFString url           [] 
      field        SFBool   directOutput  FALSE
      field        SFBool   mustEvaluate  FALSE
      # And any number of:
      eventIn      eventType eventName
      field        fieldType fieldName initialValue
      eventOut     eventType eventName
    }
  

Shape


  Shape { 
      exposedField SFNode appearance NULL
      exposedField SFNode geometry   NULL
    }
  


  

Sound


  Sound { 
      exposedField SFVec3f  direction     0 0 1   # (-,)
      exposedField SFFloat  intensity     1       # [0,1]
      exposedField SFVec3f  location      0 0 0   # (-,)
      exposedField SFFloat  maxBack       10      # [0,)
      exposedField SFFloat  maxFront      10      # [0,)
      exposedField SFFloat  minBack       1       # [0,)
      exposedField SFFloat  minFront      1       # [0,)
      exposedField SFFloat  priority      0       # [0,1]
      exposedField SFNode   source        NULL
      field        SFBool   spatialize    TRUE
    }
  

Sphere


  Sphere { 
      field SFFloat radius  1    # (0,)
    }
  

SphereSensor


  SphereSensor { 
      exposedField SFBool     autoOffset        TRUE
      exposedField SFBool     enabled           TRUE
      exposedField SFRotation offset            0 1 0 0  # [-1,1],(-,)
      eventOut     SFBool     isActive
      eventOut     SFRotation rotation_changed
      eventOut     SFVec3f    trackPoint_changed
    }
  

SpotLight


  SpotLight { 
      exposedField SFFloat ambientIntensity  0         # [0,1]
      exposedField SFVec3f attenuation       1 0 0     # [0,)
      exposedField SFFloat beamWidth         1.570796  # (0,/2]
      exposedField SFColor color             1 1 1     # [0,1]
      exposedField SFFloat cutOffAngle       0.785398  # (0,/2]
      exposedField SFVec3f direction         0 0 -1    # (-,)
      exposedField SFFloat intensity         1         # [0,1]
      exposedField SFVec3f location          0 0 0     # (-,)
      exposedField SFBool  on                TRUE
      exposedField SFFloat radius            100       # [0,)
    }
  

Switch


  Switch { 
      exposedField    MFNode  choice      []
      exposedField    SFInt32 whichChoice -1    # [-1,)
    }
  

Text


  Text { 
      exposedField  MFString string    []
      exposedField  SFNode   fontStyle NULL
      exposedField  MFFloat  length    []      # [0,)
      exposedField  SFFloat  maxExtent 0.0     # [0,)
    }
  

TextureCoordinate


  TextureCoordinate { 
      exposedField MFVec2f point  []      # (-,)
    }
  

TimeSensor


  TimeSensor { 
      exposedField SFTime   cycleInterval 1       # (0,)
      exposedField SFBool   enabled       TRUE
      exposedField SFBool   loop          FALSE
      exposedField SFTime   startTime     0       # (-,)
      exposedField SFTime   stopTime      0       # (-,)
      eventOut     SFTime   cycleTime
      eventOut     SFFloat  fraction_changed
      eventOut     SFBool   isActive
      eventOut     SFTime   time
    }
  

TouchSensor


  TouchSensor { 
      exposedField SFBool  enabled TRUE
      eventOut     SFVec3f hitNormal_changed
      eventOut     SFVec3f hitPoint_changed
      eventOut     SFVec2f hitTexCoord_changed
      eventOut     SFBool  isActive
      eventOut     SFBool  isOver
      eventOut     SFTime  touchTime
    }
  

Transform


  Transform { 
      eventIn      MFNode      addChildren
      eventIn      MFNode      removeChildren
      exposedField SFVec3f     center           0 0 0    # (-,)
      exposedField MFNode      children         []
      exposedField SFRotation  rotation         0 0 1 0  # [-1,1],(-,)
      exposedField SFVec3f     scale            1 1 1    # (0,)
      exposedField SFRotation  scaleOrientation 0 0 1 0  # [-1,1],(-,)
      exposedField SFVec3f     translation      0 0 0    # (-,)
      field        SFVec3f     bboxCenter       0 0 0    # (-,)
      field        SFVec3f     bboxSize         -1 -1 -1 # (0,) or -1,-1,-1
    }
  

Viewpoint


  Viewpoint { 
      eventIn      SFBool     set_bind
      exposedField SFFloat    fieldOfView    0.785398  # (0,)
      exposedField SFBool     jump           TRUE
      exposedField SFRotation orientation    0 0 1 0   # [-1,1],(-,)
      exposedField SFVec3f    position       0 0 10    # (-,)
      field        SFString   description    ""
      eventOut     SFTime     bindTime
      eventOut     SFBool     isBound
    }
  

VisibilitySensor


  VisibilitySensor { 
      exposedField SFVec3f center   0 0 0      # (-,)
      exposedField SFBool  enabled  TRUE
      exposedField SFVec3f size     0 0 0      # [0,)
      eventOut     SFTime  enterTime
      eventOut     SFTime  exitTime
      eventOut     SFBool  isActive
    }
  

WorldInfo


  WorldInfo { 
      field MFString info  []
      field SFString title ""
    }
  

Web3D/VR

resources / @VR

reference technology

VRML tutorial(s)

browsers / flux or blaxxun?


VRML/X3D technology


Flux player and studio are beta software: send bugs to support@mediamachines.com

ajax3d

Google Earth

VU VRML resources

documentation

alternative technologies

maya

shaders

articles

tutorials

demo(s)

worlds

sites

maya

resources


documentation and bibliographies

other resources

advanced tutorials and FAQs

examples

miscellaneous

escher

facial animation

todo

software

Web3D



[] readme course(s) preface I 1 2 II 3 4 III 5 6 7 IV 8 9 10 V 11 12 afterthought(s) appendix reference(s) example(s) resource(s) _

(C) Æliens 23/08/2009

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.