Struct bevy::render::camera::OrthographicProjection
pub struct OrthographicProjection {
pub near: f32,
pub far: f32,
pub viewport_origin: Vec2,
pub scaling_mode: ScalingMode,
pub scale: f32,
pub area: Rect,
}
Expand description
Project a 3D space onto a 2D surface using parallel lines, i.e., unlike PerspectiveProjection
,
the size of objects remains the same regardless of their distance to the camera.
The volume contained in the projection is called the view frustum. Since the viewport is rectangular and projection lines are parallel, the view frustum takes the shape of a cuboid.
Note that the scale of the projection and the apparent size of objects are inversely proportional. As the size of the projection increases, the size of objects decreases.
Fields§
§near: f32
The distance of the near clipping plane in world units.
Objects closer than this will not be rendered.
Defaults to 0.0
far: f32
The distance of the far clipping plane in world units.
Objects further than this will not be rendered.
Defaults to 1000.0
viewport_origin: Vec2
Specifies the origin of the viewport as a normalized position from 0 to 1, where (0, 0) is the bottom left and (1, 1) is the top right. This determines where the camera’s position sits inside the viewport.
When the projection scales due to viewport resizing, the position of the camera, and thereby viewport_origin
,
remains at the same relative point.
Consequently, this is pivot point when scaling. With a bottom left pivot, the projection will expand upwards and to the right. With a top right pivot, the projection will expand downwards and to the left. Values in between will caused the projection to scale proportionally on each axis.
Defaults to (0.5, 0.5)
, which makes scaling affect opposite sides equally, keeping the center
point of the viewport centered.
scaling_mode: ScalingMode
How the projection will scale when the viewport is resized.
Defaults to ScalingMode::WindowSize(1.0)
scale: f32
Scales the projection in world units.
As scale increases, the apparent size of objects decreases, and vice versa.
Defaults to 1.0
area: Rect
The area that the projection covers relative to viewport_origin
.
Bevy’s camera_system
automatically
updates this value when the viewport is resized depending on OrthographicProjection
’s other fields.
In this case, area
should not be manually modified.
It may be necessary to set this manually for shadow projections and such.
Trait Implementations§
§impl CameraProjection for OrthographicProjection
impl CameraProjection for OrthographicProjection
§impl Clone for OrthographicProjection
impl Clone for OrthographicProjection
§fn clone(&self) -> OrthographicProjection
fn clone(&self) -> OrthographicProjection
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more§impl Component for OrthographicProjectionwhere
OrthographicProjection: Send + Sync + 'static,
impl Component for OrthographicProjectionwhere OrthographicProjection: Send + Sync + 'static,
§type Storage = TableStorage
type Storage = TableStorage
TableStorage
or SparseStorage
.§impl Debug for OrthographicProjection
impl Debug for OrthographicProjection
§impl Default for OrthographicProjection
impl Default for OrthographicProjection
§fn default() -> OrthographicProjection
fn default() -> OrthographicProjection
§impl From<OrthographicProjection> for Projection
impl From<OrthographicProjection> for Projection
§fn from(p: OrthographicProjection) -> Projection
fn from(p: OrthographicProjection) -> Projection
§impl FromReflect for OrthographicProjectionwhere
f32: FromReflect + TypePath,
Vec2: FromReflect + TypePath,
ScalingMode: FromReflect + TypePath,
Rect: FromReflect + TypePath,
impl FromReflect for OrthographicProjectionwhere f32: FromReflect + TypePath, Vec2: FromReflect + TypePath, ScalingMode: FromReflect + TypePath, Rect: FromReflect + TypePath,
§fn from_reflect(
reflect: &(dyn Reflect + 'static)
) -> Option<OrthographicProjection>
fn from_reflect( reflect: &(dyn Reflect + 'static) ) -> Option<OrthographicProjection>
Self
from a reflected value.§impl GetTypeRegistration for OrthographicProjectionwhere
f32: FromReflect + TypePath,
Vec2: FromReflect + TypePath,
ScalingMode: FromReflect + TypePath,
Rect: FromReflect + TypePath,
impl GetTypeRegistration for OrthographicProjectionwhere f32: FromReflect + TypePath, Vec2: FromReflect + TypePath, ScalingMode: FromReflect + TypePath, Rect: FromReflect + TypePath,
§impl Reflect for OrthographicProjectionwhere
f32: FromReflect + TypePath,
Vec2: FromReflect + TypePath,
ScalingMode: FromReflect + TypePath,
Rect: FromReflect + TypePath,
impl Reflect for OrthographicProjectionwhere f32: FromReflect + TypePath, Vec2: FromReflect + TypePath, ScalingMode: FromReflect + TypePath, Rect: FromReflect + TypePath,
§fn get_represented_type_info(&self) -> Option<&'static TypeInfo>
fn get_represented_type_info(&self) -> Option<&'static TypeInfo>
§fn into_any(self: Box<OrthographicProjection, Global>) -> Box<dyn Any, Global>
fn into_any(self: Box<OrthographicProjection, Global>) -> Box<dyn Any, Global>
Box<dyn Any>
.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut dyn Any
.§fn into_reflect(
self: Box<OrthographicProjection, Global>
) -> Box<dyn Reflect, Global>
fn into_reflect( self: Box<OrthographicProjection, Global> ) -> Box<dyn Reflect, Global>
§fn as_reflect(&self) -> &(dyn Reflect + 'static)
fn as_reflect(&self) -> &(dyn Reflect + 'static)
§fn as_reflect_mut(&mut self) -> &mut (dyn Reflect + 'static)
fn as_reflect_mut(&mut self) -> &mut (dyn Reflect + 'static)
§fn clone_value(&self) -> Box<dyn Reflect, Global>
fn clone_value(&self) -> Box<dyn Reflect, Global>
Reflect
trait object. Read more§fn set(
&mut self,
value: Box<dyn Reflect, Global>
) -> Result<(), Box<dyn Reflect, Global>>
fn set( &mut self, value: Box<dyn Reflect, Global> ) -> Result<(), Box<dyn Reflect, Global>>
§fn apply(&mut self, value: &(dyn Reflect + 'static))
fn apply(&mut self, value: &(dyn Reflect + 'static))
§fn reflect_ref(&self) -> ReflectRef<'_>
fn reflect_ref(&self) -> ReflectRef<'_>
§fn reflect_mut(&mut self) -> ReflectMut<'_>
fn reflect_mut(&mut self) -> ReflectMut<'_>
§fn reflect_owned(self: Box<OrthographicProjection, Global>) -> ReflectOwned
fn reflect_owned(self: Box<OrthographicProjection, Global>) -> ReflectOwned
§fn reflect_partial_eq(&self, value: &(dyn Reflect + 'static)) -> Option<bool>
fn reflect_partial_eq(&self, value: &(dyn Reflect + 'static)) -> Option<bool>
§fn reflect_hash(&self) -> Option<u64>
fn reflect_hash(&self) -> Option<u64>
§fn debug(&self, f: &mut Formatter<'_>) -> Result<(), Error>
fn debug(&self, f: &mut Formatter<'_>) -> Result<(), Error>
§fn serializable(&self) -> Option<Serializable<'_>>
fn serializable(&self) -> Option<Serializable<'_>>
§fn is_dynamic(&self) -> bool
fn is_dynamic(&self) -> bool
§impl Struct for OrthographicProjectionwhere
f32: FromReflect + TypePath,
Vec2: FromReflect + TypePath,
ScalingMode: FromReflect + TypePath,
Rect: FromReflect + TypePath,
impl Struct for OrthographicProjectionwhere f32: FromReflect + TypePath, Vec2: FromReflect + TypePath, ScalingMode: FromReflect + TypePath, Rect: FromReflect + TypePath,
§fn field(&self, name: &str) -> Option<&(dyn Reflect + 'static)>
fn field(&self, name: &str) -> Option<&(dyn Reflect + 'static)>
name
as a &dyn Reflect
.§fn field_mut(&mut self, name: &str) -> Option<&mut (dyn Reflect + 'static)>
fn field_mut(&mut self, name: &str) -> Option<&mut (dyn Reflect + 'static)>
name
as a
&mut dyn Reflect
.§fn field_at(&self, index: usize) -> Option<&(dyn Reflect + 'static)>
fn field_at(&self, index: usize) -> Option<&(dyn Reflect + 'static)>
index
as a
&dyn Reflect
.§fn field_at_mut(&mut self, index: usize) -> Option<&mut (dyn Reflect + 'static)>
fn field_at_mut(&mut self, index: usize) -> Option<&mut (dyn Reflect + 'static)>
index
as a &mut dyn Reflect
.§fn iter_fields(&self) -> FieldIter<'_> ⓘ
fn iter_fields(&self) -> FieldIter<'_> ⓘ
§fn clone_dynamic(&self) -> DynamicStruct
fn clone_dynamic(&self) -> DynamicStruct
DynamicStruct
.§impl TypePath for OrthographicProjectionwhere
f32: FromReflect + TypePath,
Vec2: FromReflect + TypePath,
ScalingMode: FromReflect + TypePath,
Rect: FromReflect + TypePath,
impl TypePath for OrthographicProjectionwhere f32: FromReflect + TypePath, Vec2: FromReflect + TypePath, ScalingMode: FromReflect + TypePath, Rect: FromReflect + TypePath,
§fn short_type_path() -> &'static str
fn short_type_path() -> &'static str
§fn type_ident() -> Option<&'static str>
fn type_ident() -> Option<&'static str>
§fn crate_name() -> Option<&'static str>
fn crate_name() -> Option<&'static str>
§impl Typed for OrthographicProjectionwhere
f32: FromReflect + TypePath,
Vec2: FromReflect + TypePath,
ScalingMode: FromReflect + TypePath,
Rect: FromReflect + TypePath,
impl Typed for OrthographicProjectionwhere f32: FromReflect + TypePath, Vec2: FromReflect + TypePath, ScalingMode: FromReflect + TypePath, Rect: FromReflect + TypePath,
Auto Trait Implementations§
impl RefUnwindSafe for OrthographicProjection
impl Send for OrthographicProjection
impl Sync for OrthographicProjection
impl Unpin for OrthographicProjection
impl UnwindSafe for OrthographicProjection
Blanket Implementations§
§impl<T, U> AsBindGroupShaderType<U> for Twhere
U: ShaderType,
&'a T: for<'a> Into<U>,
impl<T, U> AsBindGroupShaderType<U> for Twhere U: ShaderType, &'a T: for<'a> Into<U>,
§fn as_bind_group_shader_type(&self, _images: &RenderAssets<Image>) -> U
fn as_bind_group_shader_type(&self, _images: &RenderAssets<Image>) -> U
T
ShaderType
for self
. When used in AsBindGroup
derives, it is safe to assume that all images in self
exist.source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<C> Bundle for Cwhere
C: Component,
impl<C> Bundle for Cwhere C: Component,
fn component_ids( components: &mut Components, storages: &mut Storages, ids: &mut impl FnMut(ComponentId) )
unsafe fn from_components<T, F>(ctx: &mut T, func: &mut F) -> Cwhere F: for<'a> FnMut(&'a mut T) -> OwningPtr<'a, Aligned>,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere T: Any,
§fn into_any(self: Box<T, Global>) -> Box<dyn Any, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any, Global>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T, Global>) -> Rc<dyn Any, Global>
fn into_any_rc(self: Rc<T, Global>) -> Rc<dyn Any, Global>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.§impl<C> DynamicBundle for Cwhere
C: Component,
impl<C> DynamicBundle for Cwhere C: Component,
fn get_components( self, func: &mut impl FnMut(StorageType, OwningPtr<'_, Aligned>) )
§impl<T> DynamicTypePath for Twhere
T: TypePath,
impl<T> DynamicTypePath for Twhere T: TypePath,
§fn reflect_type_path(&self) -> &str
fn reflect_type_path(&self) -> &str
TypePath::type_path
.§fn reflect_short_type_path(&self) -> &str
fn reflect_short_type_path(&self) -> &str
§fn reflect_type_ident(&self) -> Option<&str>
fn reflect_type_ident(&self) -> Option<&str>
TypePath::type_ident
.§fn reflect_crate_name(&self) -> Option<&str>
fn reflect_crate_name(&self) -> Option<&str>
TypePath::crate_name
.§fn reflect_module_path(&self) -> Option<&str>
fn reflect_module_path(&self) -> Option<&str>
§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
§impl<T> FromWorld for Twhere
T: Default,
impl<T> FromWorld for Twhere T: Default,
§fn from_world(_world: &mut World) -> T
fn from_world(_world: &mut World) -> T
Self
using data from the given World
.§impl<T> GetPath for Twhere
T: Reflect + ?Sized,
impl<T> GetPath for Twhere T: Reflect + ?Sized,
§fn reflect_path<'p>(
&self,
path: impl ReflectPath<'p>
) -> Result<&(dyn Reflect + 'static), ReflectPathError<'p>>
fn reflect_path<'p>( &self, path: impl ReflectPath<'p> ) -> Result<&(dyn Reflect + 'static), ReflectPathError<'p>>
path
. Read more§fn reflect_path_mut<'p>(
&mut self,
path: impl ReflectPath<'p>
) -> Result<&mut (dyn Reflect + 'static), ReflectPathError<'p>>
fn reflect_path_mut<'p>( &mut self, path: impl ReflectPath<'p> ) -> Result<&mut (dyn Reflect + 'static), ReflectPathError<'p>>
path
. Read more§fn path<'p, T>(
&self,
path: impl ReflectPath<'p>
) -> Result<&T, ReflectPathError<'p>>where
T: Reflect,
fn path<'p, T>( &self, path: impl ReflectPath<'p> ) -> Result<&T, ReflectPathError<'p>>where T: Reflect,
path
. Read more§fn path_mut<'p, T>(
&mut self,
path: impl ReflectPath<'p>
) -> Result<&mut T, ReflectPathError<'p>>where
T: Reflect,
fn path_mut<'p, T>( &mut self, path: impl ReflectPath<'p> ) -> Result<&mut T, ReflectPathError<'p>>where T: Reflect,
path
. Read more§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
§impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
impl<F, T> IntoSample<T> for Fwhere T: FromSample<F>,
fn into_sample(self) -> T
§impl<T> NoneValue for Twhere
T: Default,
impl<T> NoneValue for Twhere T: Default,
type NoneType = T
§fn null_value() -> T
fn null_value() -> T
§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<R, P> ReadPrimitive<R> for Pwhere
R: Read + ReadEndian<P>,
P: Default,
impl<R, P> ReadPrimitive<R> for Pwhere R: Read + ReadEndian<P>, P: Default,
source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
ReadEndian::read_from_little_endian()
.