pub struct PreprocessPipelines {
pub direct_preprocess: PreprocessPipeline,
pub gpu_frustum_culling_preprocess: PreprocessPipeline,
pub early_gpu_occlusion_culling_preprocess: PreprocessPipeline,
pub late_gpu_occlusion_culling_preprocess: PreprocessPipeline,
pub gpu_frustum_culling_build_indexed_indirect_params: BuildIndirectParametersPipeline,
pub gpu_frustum_culling_build_non_indexed_indirect_params: BuildIndirectParametersPipeline,
pub early_phase: PreprocessPhasePipelines,
pub late_phase: PreprocessPhasePipelines,
pub main_phase: PreprocessPhasePipelines,
}
Expand description
The compute shader pipelines for the GPU mesh preprocessing and indirect parameter building passes.
Fields§
§direct_preprocess: PreprocessPipeline
The pipeline used for CPU culling. This pipeline doesn’t populate indirect parameter metadata.
gpu_frustum_culling_preprocess: PreprocessPipeline
The pipeline used for mesh preprocessing when GPU frustum culling is in use, but occlusion culling isn’t.
This pipeline populates indirect parameter metadata.
early_gpu_occlusion_culling_preprocess: PreprocessPipeline
The pipeline used for the first phase of occlusion culling.
This pipeline culls, transforms meshes, and populates indirect parameter metadata.
late_gpu_occlusion_culling_preprocess: PreprocessPipeline
The pipeline used for the second phase of occlusion culling.
This pipeline culls, transforms meshes, and populates indirect parameter metadata.
gpu_frustum_culling_build_indexed_indirect_params: BuildIndirectParametersPipeline
The pipeline that builds indirect draw parameters for indexed meshes, when frustum culling is enabled but occlusion culling isn’t enabled.
gpu_frustum_culling_build_non_indexed_indirect_params: BuildIndirectParametersPipeline
The pipeline that builds indirect draw parameters for non-indexed meshes, when frustum culling is enabled but occlusion culling isn’t enabled.
early_phase: PreprocessPhasePipelines
Compute shader pipelines for the early prepass phase that draws meshes visible in the previous frame.
late_phase: PreprocessPhasePipelines
Compute shader pipelines for the late prepass phase that draws meshes that weren’t visible in the previous frame, but became visible this frame.
main_phase: PreprocessPhasePipelines
Compute shader pipelines for the main color phase.
Trait Implementations§
Source§impl FromWorld for PreprocessPipelines
impl FromWorld for PreprocessPipelines
Source§fn from_world(world: &mut World) -> Self
fn from_world(world: &mut World) -> Self
Self
using data from the given World
.impl Resource for PreprocessPipelines
Auto Trait Implementations§
impl Freeze for PreprocessPipelines
impl !RefUnwindSafe for PreprocessPipelines
impl Send for PreprocessPipelines
impl Sync for PreprocessPipelines
impl Unpin for PreprocessPipelines
impl !UnwindSafe for PreprocessPipelines
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<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>
, which can then be
downcast
into Box<dyn 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>
, which 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> DowncastSend for T
impl<T> DowncastSend 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>
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>
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