pub struct SsaoPass { /* private fields */ }Expand description
SSAO pass resources.
Implementations§
Source§impl SsaoPass
impl SsaoPass
Sourcepub fn resize(
&mut self,
device: &Device,
queue: &Queue,
width: u32,
height: u32,
)
pub fn resize( &mut self, device: &Device, queue: &Queue, width: u32, height: u32, )
Resizes the SSAO textures.
Sourcepub fn update_uniforms(
&self,
queue: &Queue,
proj: Mat4,
inv_proj: Mat4,
radius: f32,
bias: f32,
intensity: f32,
sample_count: u32,
width: f32,
height: f32,
)
pub fn update_uniforms( &self, queue: &Queue, proj: Mat4, inv_proj: Mat4, radius: f32, bias: f32, intensity: f32, sample_count: u32, width: f32, height: f32, )
Updates SSAO uniforms.
Sourcepub fn create_ssao_bind_group(
&self,
device: &Device,
depth_view: &TextureView,
normal_view: &TextureView,
noise_view: &TextureView,
) -> BindGroup
pub fn create_ssao_bind_group( &self, device: &Device, depth_view: &TextureView, normal_view: &TextureView, noise_view: &TextureView, ) -> BindGroup
Creates a bind group for the SSAO pass.
Sourcepub fn create_blur_bind_group(
&self,
device: &Device,
depth_view: &TextureView,
) -> BindGroup
pub fn create_blur_bind_group( &self, device: &Device, depth_view: &TextureView, ) -> BindGroup
Creates a bind group for the blur pass.
The depth_view is used for edge-aware bilateral blurring.
Sourcepub fn render_ssao(&self, encoder: &mut CommandEncoder, bind_group: &BindGroup)
pub fn render_ssao(&self, encoder: &mut CommandEncoder, bind_group: &BindGroup)
Renders the SSAO pass.
Sourcepub fn render_blur(
&self,
encoder: &mut CommandEncoder,
output_view: &TextureView,
bind_group: &BindGroup,
)
pub fn render_blur( &self, encoder: &mut CommandEncoder, output_view: &TextureView, bind_group: &BindGroup, )
Renders the blur pass to the output texture.
Sourcepub fn ssao_view(&self) -> &TextureView
pub fn ssao_view(&self) -> &TextureView
Returns the blurred SSAO texture view.
Auto Trait Implementations§
impl Freeze for SsaoPass
impl !RefUnwindSafe for SsaoPass
impl Send for SsaoPass
impl Sync for SsaoPass
impl Unpin for SsaoPass
impl UnsafeUnpin for SsaoPass
impl !UnwindSafe for SsaoPass
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> 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>
Convert
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>
Convert
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)
Convert
&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)
Convert
&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<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