Struct ambient_api::core::camera::concepts::PerspectiveInfiniteReverseCamera
source · pub struct PerspectiveInfiniteReverseCamera {
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_infinite_reverse: (),
pub optional: PerspectiveInfiniteReverseCameraOptional,
}
Expand description
Perspective-Infinite-Reverse Camera: A perspective-infinite-reverse camera. This is recommended for most use-cases.
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_infinite_reverse
: If attached, this camera will use a perspective-infinite-reverse projection matrix. This is well-suited for rendering large worlds as it has no far plane. Ensurenear
is set.
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_infinite_reverse: ()
Component: ambient_core::camera::perspective_infinite_reverse
Suggested value: ()
Component description: If attached, this camera will use a perspective-infinite-reverse projection matrix.
This is well-suited for rendering large worlds as it has no far plane. Ensure near
is set.
optional: PerspectiveInfiniteReverseCameraOptional
Optional components.
Trait Implementations§
source§impl Clone for PerspectiveInfiniteReverseCamera
impl Clone for PerspectiveInfiniteReverseCamera
source§fn clone(&self) -> PerspectiveInfiniteReverseCamera
fn clone(&self) -> PerspectiveInfiniteReverseCamera
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Concept for PerspectiveInfiniteReverseCamera
impl Concept for PerspectiveInfiniteReverseCamera
source§fn get_spawned(id: EntityId) -> Option<PerspectiveInfiniteReverseCamera>
fn get_spawned(id: EntityId) -> Option<PerspectiveInfiniteReverseCamera>
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<PerspectiveInfiniteReverseCamera>
fn get_unspawned(entity: &Entity) -> Option<PerspectiveInfiniteReverseCamera>
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 PerspectiveInfiniteReverseCamera
impl ConceptComponents for PerspectiveInfiniteReverseCamera
§type Required = (Component<Mat4>, Component<f32>, Component<Mat4>, Component<Mat4>, Component<f32>, Component<Mat4>, Component<f32>, Component<f32>, Component<()>)
type Required = (Component<Mat4>, Component<f32>, Component<Mat4>, Component<Mat4>, Component<f32>, Component<Mat4>, Component<f32>, Component<f32>, Component<()>)
§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(
) -> <PerspectiveInfiniteReverseCamera as ConceptComponents>::Required
fn required( ) -> <PerspectiveInfiniteReverseCamera as ConceptComponents>::Required
source§fn optional(
) -> <PerspectiveInfiniteReverseCamera as ConceptComponents>::Optional
fn optional( ) -> <PerspectiveInfiniteReverseCamera as ConceptComponents>::Optional
source§fn from_required_data(
required: <<PerspectiveInfiniteReverseCamera as ConceptComponents>::Required as ComponentsTuple>::Data
) -> PerspectiveInfiniteReverseCamera
fn from_required_data( required: <<PerspectiveInfiniteReverseCamera as ConceptComponents>::Required as ComponentsTuple>::Data ) -> PerspectiveInfiniteReverseCamera
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 PerspectiveInfiniteReverseCamera
impl ConceptSuggested for PerspectiveInfiniteReverseCamera
source§fn suggested() -> PerspectiveInfiniteReverseCamera
fn suggested() -> PerspectiveInfiniteReverseCamera
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_infinite_reverse: (),
source§impl<'de> Deserialize<'de> for PerspectiveInfiniteReverseCamera
impl<'de> Deserialize<'de> for PerspectiveInfiniteReverseCamera
source§fn deserialize<__D>(
__deserializer: __D
) -> Result<PerspectiveInfiniteReverseCamera, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D
) -> Result<PerspectiveInfiniteReverseCamera, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
source§impl PartialEq for PerspectiveInfiniteReverseCamera
impl PartialEq for PerspectiveInfiniteReverseCamera
source§fn eq(&self, other: &PerspectiveInfiniteReverseCamera) -> bool
fn eq(&self, other: &PerspectiveInfiniteReverseCamera) -> bool
self
and other
values to be equal, and is used
by ==
.