Struct bevy::pbr::PointLight
source · pub struct PointLight {
pub color: Color,
pub intensity: f32,
pub range: f32,
pub radius: f32,
pub shadows_enabled: bool,
pub shadow_depth_bias: f32,
pub shadow_normal_bias: f32,
}Expand description
A light that emits light in all directions from a central point.
Real-world values for intensity (luminous power in lumens) based on the electrical power
consumption of the type of real-world light are:
| Luminous Power (lumen) (i.e. the intensity member) | Incandescent non-halogen (Watts) | Incandescent halogen (Watts) | Compact fluorescent (Watts) | LED (Watts) |
|---|---|---|---|---|
| 200 | 25 | 3-5 | 3 | |
| 450 | 40 | 29 | 9-11 | 5-8 |
| 800 | 60 | 13-15 | 8-12 | |
| 1100 | 75 | 53 | 18-20 | 10-16 |
| 1600 | 100 | 72 | 24-28 | 14-17 |
| 2400 | 150 | 30-52 | 24-30 | |
| 3100 | 200 | 49-75 | 32 | |
| 4000 | 300 | 75-100 | 40.5 |
Source: Wikipedia
Fields§
§color: ColorThe color of this light source.
intensity: f32Luminous power in lumens, representing the amount of light emitted by this source in all directions.
range: f32Cut-off for the light’s area-of-effect. Fragments outside this range will not be affected by
this light at all, so it’s important to tune this together with intensity to prevent hard
lighting cut-offs.
radius: f32Simulates a light source coming from a spherical volume with the given radius. Only affects the size of specular highlights created by this light. Because of this, large values may not produce the intended result – for example, light radius does not affect shadow softness or diffuse lighting.
shadows_enabled: boolWhether this light casts shadows.
shadow_depth_bias: f32A bias used when sampling shadow maps to avoid “shadow-acne”, or false shadow occlusions
that happen as a result of shadow-map fragments not mapping 1:1 to screen-space fragments.
Too high of a depth bias can lead to shadows detaching from their casters, or
“peter-panning”. This bias can be tuned together with shadow_normal_bias to correct shadow
artifacts for a given scene.
shadow_normal_bias: f32A bias applied along the direction of the fragment’s surface normal. It is scaled to the shadow map’s texel size so that it can be small close to the camera and gets larger further away.
Implementations§
source§impl PointLight
impl PointLight
pub const DEFAULT_SHADOW_DEPTH_BIAS: f32 = 0.0799999982f32
pub const DEFAULT_SHADOW_NORMAL_BIAS: f32 = 0.600000024f32
Trait Implementations§
source§impl Clone for PointLight
impl Clone for PointLight
source§fn clone(&self) -> PointLight
fn clone(&self) -> PointLight
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moresource§impl Component for PointLight
impl Component for PointLight
source§const STORAGE_TYPE: StorageType = bevy_ecs::component::StorageType::Table
const STORAGE_TYPE: StorageType = bevy_ecs::component::StorageType::Table
source§fn register_component_hooks(_hooks: &mut ComponentHooks)
fn register_component_hooks(_hooks: &mut ComponentHooks)
ComponentHooks.source§impl Debug for PointLight
impl Debug for PointLight
source§impl Default for PointLight
impl Default for PointLight
source§fn default() -> PointLight
fn default() -> PointLight
source§impl FromReflect for PointLightwhere
PointLight: Any + Send + Sync,
Color: FromReflect + TypePath + RegisterForReflection,
f32: FromReflect + TypePath + RegisterForReflection,
bool: FromReflect + TypePath + RegisterForReflection,
impl FromReflect for PointLightwhere
PointLight: Any + Send + Sync,
Color: FromReflect + TypePath + RegisterForReflection,
f32: FromReflect + TypePath + RegisterForReflection,
bool: FromReflect + TypePath + RegisterForReflection,
source§fn from_reflect(reflect: &(dyn Reflect + 'static)) -> Option<PointLight>
fn from_reflect(reflect: &(dyn Reflect + 'static)) -> Option<PointLight>
Self from a reflected value.source§fn take_from_reflect(
reflect: Box<dyn Reflect>
) -> Result<Self, Box<dyn Reflect>>
fn take_from_reflect( reflect: Box<dyn Reflect> ) -> Result<Self, Box<dyn Reflect>>
Self using,
constructing the value using from_reflect if that fails. Read moresource§impl GetTypeRegistration for PointLightwhere
PointLight: Any + Send + Sync,
Color: FromReflect + TypePath + RegisterForReflection,
f32: FromReflect + TypePath + RegisterForReflection,
bool: FromReflect + TypePath + RegisterForReflection,
impl GetTypeRegistration for PointLightwhere
PointLight: Any + Send + Sync,
Color: FromReflect + TypePath + RegisterForReflection,
f32: FromReflect + TypePath + RegisterForReflection,
bool: FromReflect + TypePath + RegisterForReflection,
source§fn get_type_registration() -> TypeRegistration
fn get_type_registration() -> TypeRegistration
TypeRegistration for this type.source§fn register_type_dependencies(registry: &mut TypeRegistry)
fn register_type_dependencies(registry: &mut TypeRegistry)
source§impl Reflect for PointLightwhere
PointLight: Any + Send + Sync,
Color: FromReflect + TypePath + RegisterForReflection,
f32: FromReflect + TypePath + RegisterForReflection,
bool: FromReflect + TypePath + RegisterForReflection,
impl Reflect for PointLightwhere
PointLight: Any + Send + Sync,
Color: FromReflect + TypePath + RegisterForReflection,
f32: FromReflect + TypePath + RegisterForReflection,
bool: FromReflect + TypePath + RegisterForReflection,
source§fn get_represented_type_info(&self) -> Option<&'static TypeInfo>
fn get_represented_type_info(&self) -> Option<&'static TypeInfo>
source§fn into_any(self: Box<PointLight>) -> Box<dyn Any>
fn into_any(self: Box<PointLight>) -> Box<dyn Any>
Box<dyn Any>.source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut dyn Any.source§fn into_reflect(self: Box<PointLight>) -> Box<dyn Reflect>
fn into_reflect(self: Box<PointLight>) -> Box<dyn Reflect>
source§fn as_reflect(&self) -> &(dyn Reflect + 'static)
fn as_reflect(&self) -> &(dyn Reflect + 'static)
source§fn as_reflect_mut(&mut self) -> &mut (dyn Reflect + 'static)
fn as_reflect_mut(&mut self) -> &mut (dyn Reflect + 'static)
source§fn clone_value(&self) -> Box<dyn Reflect>
fn clone_value(&self) -> Box<dyn Reflect>
Reflect trait object. Read moresource§fn set(&mut self, value: Box<dyn Reflect>) -> Result<(), Box<dyn Reflect>>
fn set(&mut self, value: Box<dyn Reflect>) -> Result<(), Box<dyn Reflect>>
source§fn reflect_kind(&self) -> ReflectKind
fn reflect_kind(&self) -> ReflectKind
source§fn reflect_ref(&self) -> ReflectRef<'_>
fn reflect_ref(&self) -> ReflectRef<'_>
source§fn reflect_mut(&mut self) -> ReflectMut<'_>
fn reflect_mut(&mut self) -> ReflectMut<'_>
source§fn reflect_owned(self: Box<PointLight>) -> ReflectOwned
fn reflect_owned(self: Box<PointLight>) -> ReflectOwned
source§fn reflect_partial_eq(&self, value: &(dyn Reflect + 'static)) -> Option<bool>
fn reflect_partial_eq(&self, value: &(dyn Reflect + 'static)) -> Option<bool>
source§fn apply(&mut self, value: &(dyn Reflect + 'static))
fn apply(&mut self, value: &(dyn Reflect + 'static))
source§fn reflect_hash(&self) -> Option<u64>
fn reflect_hash(&self) -> Option<u64>
source§fn debug(&self, f: &mut Formatter<'_>) -> Result<(), Error>
fn debug(&self, f: &mut Formatter<'_>) -> Result<(), Error>
source§fn serializable(&self) -> Option<Serializable<'_>>
fn serializable(&self) -> Option<Serializable<'_>>
source§fn is_dynamic(&self) -> bool
fn is_dynamic(&self) -> bool
source§impl Struct for PointLightwhere
PointLight: Any + Send + Sync,
Color: FromReflect + TypePath + RegisterForReflection,
f32: FromReflect + TypePath + RegisterForReflection,
bool: FromReflect + TypePath + RegisterForReflection,
impl Struct for PointLightwhere
PointLight: Any + Send + Sync,
Color: FromReflect + TypePath + RegisterForReflection,
f32: FromReflect + TypePath + RegisterForReflection,
bool: FromReflect + TypePath + RegisterForReflection,
source§fn field(&self, name: &str) -> Option<&(dyn Reflect + 'static)>
fn field(&self, name: &str) -> Option<&(dyn Reflect + 'static)>
name as a &dyn Reflect.source§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.source§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.source§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.source§fn name_at(&self, index: usize) -> Option<&str>
fn name_at(&self, index: usize) -> Option<&str>
index.source§fn iter_fields(&self) -> FieldIter<'_> ⓘ
fn iter_fields(&self) -> FieldIter<'_> ⓘ
source§fn clone_dynamic(&self) -> DynamicStruct
fn clone_dynamic(&self) -> DynamicStruct
DynamicStruct.source§impl TypePath for PointLight
impl TypePath for PointLight
source§fn type_path() -> &'static str
fn type_path() -> &'static str
source§fn short_type_path() -> &'static str
fn short_type_path() -> &'static str
source§fn type_ident() -> Option<&'static str>
fn type_ident() -> Option<&'static str>
source§fn crate_name() -> Option<&'static str>
fn crate_name() -> Option<&'static str>
source§impl Typed for PointLightwhere
PointLight: Any + Send + Sync,
Color: FromReflect + TypePath + RegisterForReflection,
f32: FromReflect + TypePath + RegisterForReflection,
bool: FromReflect + TypePath + RegisterForReflection,
impl Typed for PointLightwhere
PointLight: Any + Send + Sync,
Color: FromReflect + TypePath + RegisterForReflection,
f32: FromReflect + TypePath + RegisterForReflection,
bool: FromReflect + TypePath + RegisterForReflection,
impl Copy for PointLight
Auto Trait Implementations§
impl Freeze for PointLight
impl RefUnwindSafe for PointLight
impl Send for PointLight
impl Sync for PointLight
impl Unpin for PointLight
impl UnwindSafe for PointLight
Blanket Implementations§
source§impl<T, U> AsBindGroupShaderType<U> for T
impl<T, U> AsBindGroupShaderType<U> for T
source§fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> U
fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> 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
source§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) -> C
source§fn get_component_ids(
components: &Components,
ids: &mut impl FnMut(Option<ComponentId>)
)
fn get_component_ids( components: &Components, ids: &mut impl FnMut(Option<ComponentId>) )
source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
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.source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.source§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.source§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.source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
source§impl<C> DynamicBundle for Cwhere
C: Component,
impl<C> DynamicBundle for Cwhere
C: Component,
fn get_components(self, func: &mut impl FnMut(StorageType, OwningPtr<'_>))
source§impl<T> DynamicTypePath for Twhere
T: TypePath,
impl<T> DynamicTypePath for Twhere
T: TypePath,
source§fn reflect_type_path(&self) -> &str
fn reflect_type_path(&self) -> &str
TypePath::type_path.source§fn reflect_short_type_path(&self) -> &str
fn reflect_short_type_path(&self) -> &str
source§fn reflect_type_ident(&self) -> Option<&str>
fn reflect_type_ident(&self) -> Option<&str>
TypePath::type_ident.source§fn reflect_crate_name(&self) -> Option<&str>
fn reflect_crate_name(&self) -> Option<&str>
TypePath::crate_name.source§fn reflect_module_path(&self) -> Option<&str>
fn reflect_module_path(&self) -> Option<&str>
source§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
source§impl<T> FromWorld for Twhere
T: Default,
impl<T> FromWorld for Twhere
T: Default,
source§fn from_world(_world: &mut World) -> T
fn from_world(_world: &mut World) -> T
Self using data from the given World.source§impl<S> GetField for Swhere
S: Struct,
impl<S> GetField for Swhere
S: Struct,
source§impl<T> GetPath for T
impl<T> GetPath for T
source§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 moresource§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 moresource§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 moresource§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