pub struct PointLight {
pub intensity: f32,
pub color: Color,
pub position: Vec3,
pub attenuation: Attenuation,
}Expand description
A light which shines from the given position in all directions.
Fields
intensity: f32The intensity of the light. This allows for higher intensity than 1 which can be used to simulate high intensity light sources like the sun.
color: ColorThe base color of the light.
position: Vec3The position of the light.
attenuation: AttenuationThe Attenuation of the light.
Implementations
sourceimpl PointLight
impl PointLight
sourcepub fn new(
_context: &Context,
intensity: f32,
color: Color,
position: &Vec3,
attenuation: Attenuation
) -> ThreeDResult<PointLight>
pub fn new(
_context: &Context,
intensity: f32,
color: Color,
position: &Vec3,
attenuation: Attenuation
) -> ThreeDResult<PointLight>
Constructs a new point light.
pub fn set_color(&mut self, color: Color)
pub fn color(&self) -> Color
pub fn set_intensity(&mut self, intensity: f32)
pub fn intensity(&self) -> f32
pub fn set_attenuation(&mut self, attenuation: Attenuation)
pub fn attenuation(&self) -> Attenuation
pub fn set_position(&mut self, position: &Vec3)
pub fn position(&self) -> Vec3
Trait Implementations
sourceimpl Light for PointLight
impl Light for PointLight
sourcefn shader_source(&self, i: u32) -> String
fn shader_source(&self, i: u32) -> String
The fragment shader source for calculating this lights contribution to the color in a fragment.
It should contain a function with this signature
vec3 calculate_lighting{}(vec3 surface_color, vec3 position, vec3 normal, vec3 view_direction, float metallic, float roughness, float occlusion)
Where {} is replaced with the number i given as input.
This function should return the color contribution for this light on the surface with the given surface parameters. Read more
sourcefn use_uniforms(&self, program: &Program, i: u32) -> ThreeDResult<()>
fn use_uniforms(&self, program: &Program, i: u32) -> ThreeDResult<()>
Should bind the uniforms that is needed for calculating this lights contribution to the color in Light::shader_source.
Auto Trait Implementations
impl RefUnwindSafe for PointLight
impl Send for PointLight
impl Sync for PointLight
impl Unpin for PointLight
impl UnwindSafe for PointLight
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber to this type, returning a
WithDispatch wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber to this type, returning a
WithDispatch wrapper. Read more