pub struct Camera {
pub local_to_world: Mat4,
pub near: f32,
pub projection: Mat4,
pub projection_view: Mat4,
pub active_camera: f32,
pub inv_local_to_world: Mat4,
pub optional: CameraOptional,
}
Expand description
Camera: Base components for a camera. You will need other components to make a fully-functioning camera.
Extends: ambient_core::transform::Transformable
Required:
local_to_world
: Transformation from the entity’s local space to worldspace.near
: The near plane of this camera, measured in meters.projection
: The projection matrix of this camera. This can be driven by other components, includingperspective
andperspective_infinite_reverse
.projection_view
: The composition of the projection and view (inverse-local-to-world) matrices.active_camera
: The camera with the highestactive_camera
value will be used for rendering. Cameras are also filtered by theuser_id
. If there’s nouser_id
, the camera is considered global and potentially applies to all users (if itsactive_camera
value is high enough).inv_local_to_world
: Converts a world position to a local position. This is automatically updated.
Optional:
translation
: The translation/position of this entity.rotation
: The rotation of this entity.scale
: The scale of this entity.main_scene
: Either the main or UI scene must be specified for this camera to be used.ui_scene
: Either the main or UI scene must be specified for this camera to be used.user_id
: If set, this camera will only be used for the specified user.
Fields§
§local_to_world: Mat4
Component: ambient_core::transform::local_to_world
Suggested value: Mat4::from_cols_array(&[1f32, 0f32, 0f32, 0f32, 0f32, 1f32, 0f32, 0f32, 0f32, 0f32, 1f32, 0f32, 0f32, 0f32, 0f32, 1f32, ])
Component description: Transformation from the entity’s local space to worldspace.
near: f32
Component: ambient_core::camera::near
Suggested value: 0.1f32
Component description: The near plane of this camera, measured in meters.
projection: Mat4
Component: ambient_core::camera::projection
Suggested value: Mat4::from_cols_array(&[1f32, 0f32, 0f32, 0f32, 0f32, 1f32, 0f32, 0f32, 0f32, 0f32, 1f32, 0f32, 0f32, 0f32, 0f32, 1f32, ])
Component description: The projection matrix of this camera.
This can be driven by other components, including perspective
and perspective_infinite_reverse
.
projection_view: Mat4
Component: ambient_core::camera::projection_view
Suggested value: Mat4::from_cols_array(&[1f32, 0f32, 0f32, 0f32, 0f32, 1f32, 0f32, 0f32, 0f32, 0f32, 1f32, 0f32, 0f32, 0f32, 0f32, 1f32, ])
Component description: The composition of the projection and view (inverse-local-to-world) matrices.
active_camera: f32
Component: ambient_core::camera::active_camera
Suggested value: 0f32
Component description: The camera with the highest active_camera
value will be used for rendering. Cameras are also filtered by the user_id
.
If there’s no user_id
, the camera is considered global and potentially applies to all users (if its active_camera
value is high enough).
inv_local_to_world: Mat4
Component: ambient_core::transform::inv_local_to_world
Suggested value: Mat4::from_cols_array(&[1f32, 0f32, 0f32, 0f32, 0f32, 1f32, 0f32, 0f32, 0f32, 0f32, 1f32, 0f32, 0f32, 0f32, 0f32, 1f32, ])
Component description: Converts a world position to a local position. This is automatically updated.
optional: CameraOptional
Optional components.
Trait Implementations§
source§impl Concept for Camera
impl Concept for Camera
source§fn get_spawned(id: EntityId) -> Option<Camera>
fn get_spawned(id: EntityId) -> Option<Camera>
id
exists and has the components defined by this concept, returns this concept with all of the values of the components in the entity. Read moresource§fn get_unspawned(entity: &Entity) -> Option<Camera>
fn get_unspawned(entity: &Entity) -> Option<Camera>
entity
has the components defined by this concept, returns this concept with all of the values of the components in the entity. Read moresource§fn contained_by_spawned(id: EntityId) -> bool
fn contained_by_spawned(id: EntityId) -> bool
id
exists and contains the components defined by this concept. Read moresource§impl ConceptComponents for Camera
impl ConceptComponents for Camera
§type Required = (Component<Mat4>, Component<f32>, Component<Mat4>, Component<Mat4>, Component<f32>, Component<Mat4>)
type Required = (Component<Mat4>, Component<f32>, Component<Mat4>, Component<Mat4>, Component<f32>, Component<Mat4>)
§type Optional = (Component<Vec3>, Component<Quat>, Component<Vec3>, Component<()>, Component<()>, Component<String>)
type Optional = (Component<Vec3>, Component<Quat>, Component<Vec3>, Component<()>, Component<()>, Component<String>)
source§fn required() -> <Camera as ConceptComponents>::Required
fn required() -> <Camera as ConceptComponents>::Required
source§fn optional() -> <Camera as ConceptComponents>::Optional
fn optional() -> <Camera as ConceptComponents>::Optional
source§fn from_required_data(
required: <<Camera as ConceptComponents>::Required as ComponentsTuple>::Data
) -> Camera
fn from_required_data( required: <<Camera as ConceptComponents>::Required as ComponentsTuple>::Data ) -> Camera
source§fn as_query() -> ConceptQuery<Self>where
Self: Sized,
fn as_query() -> ConceptQuery<Self>where
Self: Sized,
ConceptQuery
that can be passed into queries. Read moresource§impl ConceptSuggested for Camera
impl ConceptSuggested for Camera
source§fn suggested() -> Camera
fn suggested() -> Camera
local_to_world: Mat4::from_cols_array(&[1f32, 0f32, 0f32, 0f32, 0f32, 1f32, 0f32, 0f32, 0f32, 0f32, 1f32, 0f32, 0f32, 0f32, 0f32, 1f32, ]),
near: 0.1f32,
projection: Mat4::from_cols_array(&[1f32, 0f32, 0f32, 0f32, 0f32, 1f32, 0f32, 0f32, 0f32, 0f32, 1f32, 0f32, 0f32, 0f32, 0f32, 1f32, ]),
projection_view: Mat4::from_cols_array(&[1f32, 0f32, 0f32, 0f32, 0f32, 1f32, 0f32, 0f32, 0f32, 0f32, 1f32, 0f32, 0f32, 0f32, 0f32, 1f32, ]),
active_camera: 0f32,
inv_local_to_world: Mat4::from_cols_array(&[1f32, 0f32, 0f32, 0f32, 0f32, 1f32, 0f32, 0f32, 0f32, 0f32, 1f32, 0f32, 0f32, 0f32, 0f32, 1f32, ]),