pub struct AmbientLight {
pub intensity: f32,
pub color: Srgba,
pub environment: Option<Environment>,
}
Expand description
A light which shines on all surfaces. Can be uniform (a light that shines equally on any surface) or calculated from an environment map using the Environment struct.
Fields§
§intensity: f32
The 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: Srgba
The base color of the light.
environment: Option<Environment>
The light shining from the environment. This is calculated based on an environment map.
Implementations§
Source§impl AmbientLight
impl AmbientLight
Sourcepub fn new(_context: &Context, intensity: f32, color: Srgba) -> Self
pub fn new(_context: &Context, intensity: f32, color: Srgba) -> Self
Constructs an ambient light that shines equally on all surfaces.
Sourcepub fn new_with_environment(
context: &Context,
intensity: f32,
color: Srgba,
environment_map: &TextureCubeMap,
) -> Self
pub fn new_with_environment( context: &Context, intensity: f32, color: Srgba, environment_map: &TextureCubeMap, ) -> Self
Constructs an ambient light that shines based on the given environment map.
Trait Implementations§
Source§impl Default for AmbientLight
impl Default for AmbientLight
Source§impl Light for AmbientLight
impl Light for AmbientLight
Source§fn 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.Source§fn use_uniforms(&self, program: &Program, _i: u32)
fn use_uniforms(&self, program: &Program, _i: u32)
Should bind the uniforms that is needed for calculating this lights contribution to the color in Light::shader_source.
Auto Trait Implementations§
impl Freeze for AmbientLight
impl RefUnwindSafe for AmbientLight
impl Send for AmbientLight
impl Sync for AmbientLight
impl Unpin for AmbientLight
impl UnwindSafe for AmbientLight
Blanket Implementations§
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
Mutably borrows from an owned value. Read more