Projection | This node projects the 3D scene on a 2D viewport. Works like a camera lens. | |
Field of View | This node provides a field of view projection with a fixed vanishing point. | |
Orthogonal | This node provides a orthogonal projection. | |
Perspective | This node provides a perspective projection with a customizable vanishing point. | |
Pixel Space | This node projects a 3D scene into a pixel based coordinate system. |
During Rasterization, the Projection Matrix is responsible for simulating the effects of perspective shortening. In conjunction with the View Node, it expresses the characteristics of a virtual camera. The Projection Node takes a 4x4 matrix and applies it to the rendering pipeline for all children in its subtree of the scene Hierarchy. In contrast to similar programs, there is no explicit camera object in Ventuz and there are no restrictions where in the scene hierarchy a Projection Node can be used. So within a subtree rendered with one field of view, there can be a subtree containing a totally different field of view position and orientation for its respective children.
When dragging the Projection Node to the Hierarchy Editor, a dialog opens that offers possible matrix provider for this node. By pressing the Esc key,this dialog can be canceled. Otherwise the selected provider will be added to the Content Editor and bound to the Projection Node.
All projection matrix providers have Center input properties that can be used to shift the center of the projection. The projection also specifies the Depth Range, which defines the Z value of the closest and farthest point that is still rendered as part of the view frustum. For more information on choosing a suitable Depth Range, see the section on the Z-Buffer in Introduction to Realtime Rendering.
There are three nodes that can be used to generate common projection matrix cases. The Field of View node defines the camera viewing field by the angle between two opposite sides of the viewing frustum. The FovAxis input property specifies if those are the left and right (horizontal) or the top and bottom (vertical) side. The angle between the other two sides is automatically calculated based on the Aspect and AspectRelation properties:
If there is no projection node in the scene, Ventuz will use a default projection which is the equivalent of a 45 degrees Field of View projection with the aspect ratio implied by the output resolution set in the Project Properties.
The Perspective node is similar to the Field of View node and also defines a viewing frustum but instead of using a viewing angle and aspect ratio, the Perspective Node directly takes the height and width of the near plane. Most users prefer to use the Field of View Node as the concept of a viewing angle more closely relates to photography.
An orthogonal projection is a special projection that has no perspective shortening at all. It is often used for schematic views or other situations where perspective shortening would be confusing.
The Input Properties Width and Height define the width and height of a 3D space volume that will be displayed in the render output. The orthogonal projection basically cuts out this volume straight out of the World/View space and flattens it along the Z-axis. The Z-Shift properties can be used to shear the view frustum along the X- and Y-axis.
Although Ventuz is using a 3D rendering system, it is also capable of creating pixel perfect 2D graphics. The Pixel Space projection node establishes a pixel coordinate system where one unit in Ventuz world space is equal to one pixel of display resolution.Textures, Movies or Live Video can easily be mapped pixel accurate as long as the used geometry (e.g. Rectangle) has exactly the size of the Texture or Movie.
Perspective creates a perspective pixel based projection where the Frustum is defined by the actual size of the current ViewPort (screen size) and the value specified in Eye. The Eye position must be lower than the the near plane position! A Rectangle will be pixel perfect if it has a Z-position of zero. Perspective shortening will occur when translating the object or rotating it away from the X/Y-plane.
In Orthogonal projection, the values of Near and Far just define where objects are visible in z-depth. ZShiftX and ZShiftY define the amount of center shift depending on the z-position of an object. These two properties have no effect in Perspective mode.
AlignX and AlignY define the origin of the coordinate system. Changing theses values to anything else than Center does actually only make sense in Orthogonal projection.
OffsetX and OffsetY define the offset from the origin in pixel.
Note that the PixelSpace node does not provide pixel-perfect results under all circumstances! There are some limitations.
This node modifies the Projection and the View. Assigning a View node after a Pixel Space node will most likely result in undesirable visual effects.
When working with RenderSetups in Designer, the output for the Cluster and Machine previews is scaled down. This also scales down the content within the 'pixel-space' and breaks the pixel-perfectness but the coordinate-system is still consistent!