Camera

Inherits: Spatial < Node < Object

Inherited By: InterpolatedCamera, ARVRCamera

Category: Core

Brief Description

Camera node, displays from a point of view.

Member Functions

void clear_current ( )
Transform get_camera_transform ( ) const
int get_cull_mask ( ) const
int get_doppler_tracking ( ) const
Environment get_environment ( ) const
float get_fov ( ) const
float get_h_offset ( ) const
int get_keep_aspect_mode ( ) const
int get_projection ( ) const
float get_size ( ) const
float get_v_offset ( ) const
float get_zfar ( ) const
float get_znear ( ) const
bool is_current ( ) const
bool is_position_behind ( Vector3 world_point ) const
void make_current ( )
Vector3 project_local_ray_normal ( Vector2 screen_point ) const
Vector3 project_position ( Vector2 screen_point ) const
Vector3 project_ray_normal ( Vector2 screen_point ) const
Vector3 project_ray_origin ( Vector2 screen_point ) const
void set_cull_mask ( int mask )
void set_doppler_tracking ( int mode )
void set_environment ( Environment env )
void set_h_offset ( float ofs )
void set_keep_aspect_mode ( int mode )
void set_orthogonal ( float size, float z_near, float z_far )
void set_perspective ( float fov, float z_near, float z_far )
void set_v_offset ( float ofs )
Vector2 unproject_position ( Vector3 world_point ) const

Numeric Constants

  • PROJECTION_PERSPECTIVE = 0 — Perspective Projection (object’s size on the screen becomes smaller when far away).
  • PROJECTION_ORTHOGONAL = 1 — Orthogonal Projection (objects remain the same size on the screen no matter how far away they are).
  • KEEP_WIDTH = 0 — Try to keep the aspect ratio when scaling the Camera’s viewport to the screen. If not possible, preserve the viewport’s width by changing the height. Height is sizey for orthographic projection, fovy for perspective projection.
  • KEEP_HEIGHT = 1 — Try to keep the aspect ratio when scaling the Camera’s viewport to the screen. If not possible, preserve the viewport’s height by changing the width. Width is sizex for orthographic projection, fovx for perspective projection.
  • DOPPLER_TRACKING_DISABLED = 0 — Disable Doppler effect simulation (default).
  • DOPPLER_TRACKING_IDLE_STEP = 1 — Simulate Doppler effect by tracking positions of objects that are changed in _process. Changes in the relative velocity of this Camera compared to those objects affect how Audio is perceived (changing the Audio’s pitch shift).
  • DOPPLER_TRACKING_PHYSICS_STEP = 2 — Simulate Doppler effect by tracking positions of objects that are changed in _physics_process. Changes in the relative velocity of this Camera compared to those objects affect how Audio is perceived (changing the Audio’s pitch shift).

Description

Camera is a special node that displays what is visible from its current location. Cameras register themselves in the nearest Viewport node (when ascending the tree). Only one camera can be active per viewport. If no viewport is available ascending the tree, the Camera will register in the global viewport. In other words, a Camera just provides 3D display capabilities to a Viewport, and, without one, a scene registered in that Viewport (or higher viewports) can’t be displayed.

Member Function Description

  • void clear_current ( )

If this is the current Camera, remove it from being current. If it is inside the node tree, request to make the next Camera current, if any.

Get the camera transform. Subclassed cameras (such as CharacterCamera) may provide different transforms than the Node transform.

  • int get_cull_mask ( ) const

Returns the culling mask, describing which 3D render layers are rendered by this Camera.

  • int get_doppler_tracking ( ) const

Returns the Environment used by this Camera.

  • float get_fov ( ) const

Returns the FOV Y angle in degrees (FOV means Field of View).

  • float get_h_offset ( ) const

Returns the horizontal (X) offset of the Camera viewport.

  • int get_keep_aspect_mode ( ) const

Returns the current mode for keeping the aspect ratio. See KEEP\_\* constants.

  • int get_projection ( ) const

Returns the Camera’s projection. See PROJECTION_* constants.

  • float get_size ( ) const
  • float get_v_offset ( ) const

Returns the vertical (Y) offset of the Camera viewport.

  • float get_zfar ( ) const

Returns the far clip plane in world space units.

  • float get_znear ( ) const

Returns the near clip plane in world space units.

  • bool is_current ( ) const

Returns true if the Camera is the current one in the Viewport, or plans to become current (if outside the scene tree).

  • bool is_position_behind ( Vector3 world_point ) const

Returns true if the given position is behind the Camera.

  • void make_current ( )

Make this camera the current Camera for the Viewport (see class description). If the Camera Node is outside the scene tree, it will attempt to become current once it’s added.

Returns how a 2D coordinate in the Viewport rectangle maps to a 3D point in worldspace.

Returns a normal vector in worldspace, that is the result of projecting a point on the Viewport rectangle by the camera projection. This is useful for casting rays in the form of (origin, normal) for object intersection or picking.

Returns a 3D position in worldspace, that is the result of projecting a point on the Viewport rectangle by the camera projection. This is useful for casting rays in the form of (origin, normal) for object intersection or picking.

  • void set_cull_mask ( int mask )

Sets the cull mask, describing which 3D render layers are rendered by this Camera.

  • void set_doppler_tracking ( int mode )

Changes Doppler effect tracking. See DOPPLER\_\* constants.

Sets the Environment to use for this Camera.

  • void set_h_offset ( float ofs )

Sets the horizontal (X) offset of the Camera viewport.

  • void set_keep_aspect_mode ( int mode )

Sets the mode for keeping the aspect ratio. See KEEP\_\* constants.

Set the camera projection to orthogonal mode, by specifying a width and the near and far clip planes in worldspace units. (As a hint, 2D games often use this projection, with values specified in pixels)

Set the camera projection to perspective mode, by specifying a FOV Y angle in degrees (FOV means Field of View), and the near and far clip planes in worldspace units.

  • void set_v_offset ( float ofs )

Sets the vertical (Y) offset of the Camera viewport.

Returns how a 3D point in worldspace maps to a 2D coordinate in the Viewport rectangle.