|
In
VRML
we have a node ViewPoint allowing to declare a view point in a 3D scene. Its effect is like placing a virtual camera at a specified point in the scene, described by its coordinates in the 3D space and giving the direction and the field angle of the desired view. The definition of the node is:
Viewpoint{
eventIn SFBool set_bind
exposedField SFFloat fieldOfView 0.785398
exposedField SFBool jump TRUE
exposedField SFRotation orientation 0 0 1 0
exposedField SFVec3f position 0 0 1 0
field SFString description ""
eventOut SFTime bindTime
eventOut SFBool isBound
}
The use of this node as defined will nevertheless make appear a snag due to the way the view direction is expressed: a rotation around an axis vector. Trying to set it intuitively leads to unsatisfactory views. Here after the result after five attempts to set a view point for an object placed at the origin of the coordinate system:
Viewpoint {
orientation 1 0.4 0.4 -0.6
position -1 2 4
description
"view point with orientation 4"
}
| |
From the mathematical point of view the way of representing the view point is quite efficient but is impractical for immediate use since it requires some vectorial geometry computation in order to yield suitable results, as is generally mediated by the drawing software. These practical shortcomings inspired the author to devise a prototype node (PROTO)
RelativeViewpoint which is easier to use and leads more rapidly to a useful result.
|
|