Camera | This node adds a Camera including View and Projection to a 3D Layer |
A Camera Node can be added to the hierarchy to create a virtual camera. It has two Property Groups to set up Projection and View separately. Together they define the characteristics of the camera.
While multiple cameras can be defined, only one camera is active per 3D Layer. The active camera is marked by a red dot. The camera is set in the Layer Root. There, also toggling or even interpolating between multiple cameras can be done. A specific camera node can be set active with the Activate Camera entry in the the context menu of the node or via the Activate Camera Button at the very bottom of the Property Editor when the node is selected.
You can use the Free Flight Mode inside the Render Window, fly to your desired position, click the From Freeflight Button in the bttom of the Property Editor to use your actual position and fov for the selected camera.
Projection simulates the effect of perspective shortening (i.e. objects farther away appear smaller). This is often defined by specifying a view angle (also called field of view). When a more schematic look is required, this can also be an orthogonal instead of a perspective projection which does not have any perspective shortening at all.
Both, Field of View and Orthogonal have Center input properties X and Y that can be used to shift the center of the projection. The projection also specifies the Near and Far planes, who define the Z value of the closest and farthest point that is still rendered as part of the view frustum.
Field of View defines the camera viewing field by the angle between two opposite sides of the viewing frustum. The Fov input property specifies that angle, FovAxis specifies if those are the left and right (horizontal) or the top and bottom (vertical) sides. The angle between the other two sides is automatically calculated based on the Aspect and AspectRelation properties:
If there is no camera 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.
Orthogonal 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.
Matrix can be used to set up or connect a custom projection matrix. A custom matrix could for example be calculated manually or delivered by a third party device.
The view matrix is responsible for simulating the position and orientation of a virtual camera. The Camera Node has different capabilities to set up the view matrix:
Pan, Tilt, Roll has position and orientation properties. So the camera can be placed in the 3D World with the X,Y and Z Position and then panned, tilted and rolled just like a real camera.
Look At is always oriented towards the Target coordinates. The camera can be moved by the X,Y and Z Position while it always looks at the specified target. Thus, the rotation is calculated automatically while the Roll can be set manually.
Orbit makes it easy to rotate the camera around a target using Yaw, Pitch and Roll. The Target's X,Y and Z Position can be set as well as the Distance from the camera to the target.
Matrix offers to use a custom view matrix. The presets zero and identity matrix can be used or modified manually or the Matrix Property can be connected to a matrix coming from for example a Matrix Node or a Script.
Whenever we are working with Head Mounted Displays or Camera Tracking Systems the default camera is automatically controlled from the outside. However sometimes we need to adjust the Near and Far Plane of the camera to get rid of clipping. To do so simply create a Camera Node and switch the View and Projection Property Group to Tracked.
Make sure to switch the View and Projection to Tracked otherwise you will get weird results!
Especially when working with Head Mounted Displays you will come to the point where you need to change the Camera origin to morph from one location in the scene to another. To so you can simply add Offsets to camera by clicking the Add Offset button.
An Offset allows you to translate the Camera by the TranslateX,Y,Z properties. The Rotate provides Rotate X,Y,Z to rotate the Camera.
The order of how the offsets are multiplied togther is defined by the order and can easily be changed by reordering the Property Groups.
Beside Translation and Rotation you can also use a Matrix to apply an Offset to your camera.