Environmental sensor component

This component defines nodes to detect some changes in the environment. ProximitySensor, the only currently implemented node, alows to detect when user is inside a defined 3D space.

See also X3D specification of the Environmental sensor component.


1. Demos

For demos and tests of these features, see the sensors_environmental subdirectory inside our VRML/X3D demo models.

2. Supported nodes

  • ProximitySensor(Pascal API: TProximitySensorNode)

    TODO: centerOfRotation_changed are not generated. Rest works Ok, according to spec. Timestamps for isActive, enter/exitTime are not interpolated (they are simply timestamps when this was detected), this shouldn't be a problem in typical uses.

  • VisibilitySensor(Pascal API: TVisibilitySensorNode)

    Works fully.

    For now, visibility is determined only by whether the box fits within a view frustum. We don't use occlusion query yet for this, which means that visibility is not as conservative as it could be. For example, box hidden behind a wall within frustum will still be visible (according to this sensor). We have occlusion query (even two approaches for it) implemented in our engine, so integration of VisibilitySensor with it will definitely happen one day (please report if you badly need this :).

TODO: TransformSensor missing.