Struct ambient_guest_bridge::core::camera::concepts::PerspectiveCamera
source · pub struct PerspectiveCamera {
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 fovy: f32,
pub aspect_ratio: f32,
pub perspective: (),
pub far: f32,
pub optional: PerspectiveCameraOptional,
}
Expand description
Perspective Camera: A perspective camera.
Extends: ambient_core::camera::PerspectiveCommonCamera
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.fovy
: The field of view of this camera in the Y/vertical direction, measured in radians.aspect_ratio
: The aspect ratio of this camera. Ifaspect_ratio_from_window
is set, this will be automatically updated to match the window.perspective
: If attached, this camera will use a standard perspective projection matrix. Ensure thatnear
andfar
are set.far
: The far plane of this camera, measured in meters.
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.aspect_ratio_from_window
: If attached, theaspect_ratio
component will be automatically updated to match the aspect ratio of the window. Should point to an entity with awindow_physical_size
component.
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.
fovy: f32
Component: ambient_core::camera::fovy
Suggested value: 1f32
Component description: The field of view of this camera in the Y/vertical direction, measured in radians.
aspect_ratio: f32
Component: ambient_core::camera::aspect_ratio
Suggested value: 1f32
Component description: The aspect ratio of this camera.
If aspect_ratio_from_window
is set, this will be automatically updated to match the window.
perspective: ()
Component: ambient_core::camera::perspective
Suggested value: ()
Component description: If attached, this camera will use a standard perspective projection matrix.
Ensure that near
and far
are set.
far: f32
Component: ambient_core::camera::far
Suggested value: 1000f32
Component description: The far plane of this camera, measured in meters.
optional: PerspectiveCameraOptional
Optional components.
Trait Implementations§
source§impl Clone for PerspectiveCamera
impl Clone for PerspectiveCamera
source§fn clone(&self) -> PerspectiveCamera
fn clone(&self) -> PerspectiveCamera
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Concept for PerspectiveCamera
impl Concept for PerspectiveCamera
source§fn get_spawned(id: EntityId) -> Option<PerspectiveCamera>
fn get_spawned(id: EntityId) -> Option<PerspectiveCamera>
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<PerspectiveCamera>
fn get_unspawned(entity: &Entity) -> Option<PerspectiveCamera>
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 PerspectiveCamera
impl ConceptComponents for PerspectiveCamera
§type Required = (Component<Mat4>, Component<f32>, Component<Mat4>, Component<Mat4>, Component<f32>, Component<Mat4>, Component<f32>, Component<f32>, Component<()>, Component<f32>)
type Required = (Component<Mat4>, Component<f32>, Component<Mat4>, Component<Mat4>, Component<f32>, Component<Mat4>, Component<f32>, Component<f32>, Component<()>, Component<f32>)
§type Optional = (Component<Vec3>, Component<Quat>, Component<Vec3>, Component<()>, Component<()>, Component<String>, Component<EntityId>)
type Optional = (Component<Vec3>, Component<Quat>, Component<Vec3>, Component<()>, Component<()>, Component<String>, Component<EntityId>)
source§fn required() -> <PerspectiveCamera as ConceptComponents>::Required
fn required() -> <PerspectiveCamera as ConceptComponents>::Required
source§fn optional() -> <PerspectiveCamera as ConceptComponents>::Optional
fn optional() -> <PerspectiveCamera as ConceptComponents>::Optional
source§fn from_required_data(
required: <<PerspectiveCamera as ConceptComponents>::Required as ComponentsTuple>::Data
) -> PerspectiveCamera
fn from_required_data( required: <<PerspectiveCamera as ConceptComponents>::Required as ComponentsTuple>::Data ) -> PerspectiveCamera
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 PerspectiveCamera
impl ConceptSuggested for PerspectiveCamera
source§fn suggested() -> PerspectiveCamera
fn suggested() -> PerspectiveCamera
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, ]),
fovy: 1f32,
aspect_ratio: 1f32,
perspective: (),
far: 1000f32,
source§impl Debug for PerspectiveCamera
impl Debug for PerspectiveCamera
source§impl<'de> Deserialize<'de> for PerspectiveCamera
impl<'de> Deserialize<'de> for PerspectiveCamera
source§fn deserialize<__D>(
__deserializer: __D
) -> Result<PerspectiveCamera, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D
) -> Result<PerspectiveCamera, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
source§impl PartialEq for PerspectiveCamera
impl PartialEq for PerspectiveCamera
source§fn eq(&self, other: &PerspectiveCamera) -> bool
fn eq(&self, other: &PerspectiveCamera) -> bool
self
and other
values to be equal, and is used
by ==
.