pub struct ShadowMapPass {
pub shadow_bind_group_layout: BindGroupLayout,
/* private fields */
}Expand description
Shadow map render resources.
Fields§
§shadow_bind_group_layout: BindGroupLayoutBind group layout for consumers (ground plane shader).
Implementations§
Source§impl ShadowMapPass
impl ShadowMapPass
Sourcepub fn compute_light_matrix(
scene_center: Vec3,
scene_radius: f32,
light_dir: Vec3,
) -> Mat4
pub fn compute_light_matrix( scene_center: Vec3, scene_radius: f32, light_dir: Vec3, ) -> Mat4
Computes the light view-projection matrix for shadow mapping.
Creates an orthographic projection from the light’s perspective that encompasses the scene.
Sourcepub fn update_light(&self, queue: &Queue, view_proj: Mat4, light_dir: Vec3)
pub fn update_light(&self, queue: &Queue, view_proj: Mat4, light_dir: Vec3)
Updates the light uniforms.
Sourcepub fn begin_shadow_pass<'a>(
&'a self,
encoder: &'a mut CommandEncoder,
) -> RenderPass<'a>
pub fn begin_shadow_pass<'a>( &'a self, encoder: &'a mut CommandEncoder, ) -> RenderPass<'a>
Clears the shadow map depth buffer.
Call this before rendering scene objects to the shadow map.
Sourcepub fn depth_view(&self) -> &TextureView
pub fn depth_view(&self) -> &TextureView
Returns the shadow map depth view.
Sourcepub fn light_buffer(&self) -> &Buffer
pub fn light_buffer(&self) -> &Buffer
Returns the light uniform buffer.
Sourcepub fn comparison_sampler(&self) -> &Sampler
pub fn comparison_sampler(&self) -> &Sampler
Returns the comparison sampler.
Sourcepub fn shadow_bind_group(&self) -> &BindGroup
pub fn shadow_bind_group(&self) -> &BindGroup
Returns the bind group for shadow sampling.
Sourcepub fn shadow_bind_group_layout(&self) -> &BindGroupLayout
pub fn shadow_bind_group_layout(&self) -> &BindGroupLayout
Returns the bind group layout for shadow sampling.
Auto Trait Implementations§
impl Freeze for ShadowMapPass
impl !RefUnwindSafe for ShadowMapPass
impl Send for ShadowMapPass
impl Sync for ShadowMapPass
impl Unpin for ShadowMapPass
impl UnsafeUnpin for ShadowMapPass
impl !UnwindSafe for ShadowMapPass
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more