Axis | Used to position, orientate and scale complete subtrees with common properties such as position, rotation and scaling. | |
Get World | Used to retrieve the World, View and Projection matrix at a position in the scene hierarchy. | |
Set World | Used to position, orientate and scale complete subtrees with a 4x4 matrix. | |
Anchor | Used to retrieve the World matrix at a position in the scene hierarchy that is usable in specific nodes. | |
Billboard | Used to orientate objects so that they always face the camera. | |
Shear | Used to deform single meshes or complete subtrees |
Unlike most 3D modelling programs, an object such as a mesh or light source does not have a position or orientation itself. Instead, one inserts Axis nodes to transform the space opposed to transforming the object itself (see use of the World Matrix in Rasterization). So if an Axis has a rotation of 90 degrees, the whole coordinate system of its subtree is rotated and therefore the transformation affects all objects underneath the axis. This is similar to an animation rig where moving the upper arm of a model will also affect the elbow, lower arm and hand but the hand can be transformed independently.
The majority of Ventuz users prefer to edit the Axis properties manually to exactly position objects. However, Ventuz 3 also introduced a way to this directly in the renderer window via a Transformation Gizmo. If an object does not have an axis, the Gizmo will be rendered gray and as soon as the user picks the Gizmo, an axis will automatically be inserted.
Most properties of the Axis node should be self-explanatory. The rotation order is something most users will not have to worry about: When expressing a rotation by three Euler angles, there is a degree of freedom in which order the individual rotations are applied. Since the default order is different from application to application, Ventuz offers this as a property so that meshes coming from other applications as well as their animations can be imported correctly.
Please try to avoid using Default-Axis just for grouping Hierarchy Nodes. A Default-Axis (or Indentity-Axis) is an Axis or World node with all its input properties set to their default values. Use a Group Node instead.
The Get World node provides the World, View and Projection matrix values at its position in the scene hierarchy. If a Get World node is used in a subtree that is linked at multiple places in the scene hierarchy, the outputs will represent the values at the first use of that subtree.
Due to technical reasons, the output values of the Get World node have a delay of one frame!
The Set World node is similar to the Axis but uses a 4x4 matrix as often found in computer graphics instead of semantic values like rotation angles or units of translation. It is designed for situations where a transformation is transmitted to Ventuz from a Script node, another device or application. For example, certain tracking systems output the position and orientation of an object in one matrix instead of separate parameters.
The Anchor Node works similar to the Get World Node. The difference is that this can only be used by specific Nodes that know how to handle its reference in their Input Properties, like the Particle System's Emitter Modules or the Arrow Node. The upside of using the Anchor Node is that its world matrix can be used without the frame delay of the Get World Node.
Anchor Nodes can have references to other Anchor Nodes to create Chains of Anchors. This can be interpreted by some Nodes as well, especially the Arrow Node can use that to render several chained arrows with one instance.
Note that the output of the Anchor cannot be modified further in the scene logic - like you could do with matrices. If you need to apply custom modifications to the World Matrix of a specific position in the Hierarchy before using it you will need to use the Get World Node.
The Billboard node is a specialized version of Axis that aligns the coordinate system of its subtree to the camera. The Billboard node tries to calculate a rotation that will align the x axis with the horizontal, the y axis with the vertical and the z axis with the viewing direction. By unchecking one of the input properties, that axis will not be used to compensate the rotation of the camera. Imagine a user that manually tries to use the three rotation properties of the standard Axis to align the coordinate system. Unchecked axes are forbidden to be changed by that user. If the ScreenOrientated property is checked, the 'billboarded' object always points in direction of the camera view vector. In this mode a rectangle would have the same orientation as the screen; the other properties do not have any effect then and are hidden.
The Shear node is another specialized version of the Axis that allows you to deform single meshes or a complete subtree.
The Axis Property allows you to select the axis where the shearing is applied to. X by Y in that sense means the object is sheared along the X axis on the X-Y Plane. With the Amount Property the strenght of the transformation in percentage can be adjusted whereby an Amount of 100 results in an angle of 45 degrees.
This means the offset on the X-Axis is depending on the (signed) distance of each point to the origin of the Y Axis. The Amount defines the relation between the distance and the resulting offset. When set to 100% the offset will be the same as the distance and is also using the same direction (positive distance results in positive offset). The higher the amount the higher the offset. A negative amount results in a change of the direction of the shearing. See the below images for a visual reference.