Skip to main content

Crate bevy_pbr

Crate bevy_pbr 

Source

Re-exports§

pub use contact_shadows::ContactShadows;
pub use contact_shadows::ContactShadowsBuffer;
pub use contact_shadows::ContactShadowsPlugin;
pub use contact_shadows::ContactShadowsUniform;
pub use contact_shadows::ViewContactShadowsUniformOffset;
pub use decal::clustered::ClusteredDecalPlugin;

Modules§

contact_shadows
Contact shadows implemented via screenspace raymarching.
decal
Decal rendering.
deferred
diagnostic
environment_map
Environment maps and reflection probes.
generate
Like EnvironmentMapLight, but filtered in realtime from a cubemap.
irradiance_volume
Irradiance volumes, also known as voxel global illumination.
prelude
The PBR prelude.
resources
wireframe

Structs§

AreaLightLuts
LTC (Linearly Transformed Cosines) LUT textures for area light shading.
AtmosphereSettings
This component controls the resolution of the atmosphere LUTs, and how many samples are used when computing them.
BinUnpackingBindGroups
A resource, part of the render world, that stores all the bind groups for the bin unpacking shader.
BinUnpackingPipeline
The pipeline for the unpack_bins compute shader.
Bluenoise
A resource that stores the spatio-temporal blue noise texture.
BuildIndirectParametersBindGroups
The bind groups for the compute shaders that reset indirect draw counts and build indirect parameters.
BuildIndirectParametersPipeline
The pipeline for the indirect parameter building shader.
BuildIndirectParametersPipelineKey
Specifies variants of the indirect parameter building shader.
DefaultOpaqueRendererMethod
Default render method used for opaque materials.
DeferredAlphaMaskDrawFunction
DeferredFragmentShader
DeferredOpaqueDrawFunction
DeferredVertexShader
DfgLut
The split-sum approximation LUT (F_AB) indexed by (NdotV, perceptual_roughness).
DirectionalLightViewEntities
Component automatically attached to a light entity to track light-view entities for each view.
DistanceFog
Configures the “classic” computer graphics distance fog effect, in which objects appear progressively more covered in atmospheric haze the further away they are from the camera. Affects meshes rendered via the PBR StandardMaterial.
DrawMesh
EntitiesNeedingSpecialization
Temporarily stores entities that were determined to either need their specialized pipelines updated or to have their specialized pipelines removed.
ExtendedMaterial
A material that extends a base Material with additional shaders and data.
ExtractedAtmosphere
The render-world representation of an Atmosphere, but which hasn’t been converted into shader uniforms yet.
ExtractedClusterConfig
ExtractedClusterableObjects
ExtractedDirectionalLight
ExtractedPointLight
ExtractedRectLight
FallbackBindlessResources
Dummy instances of various resources that we fill unused slots in binding arrays with.
FogMeta
Metadata for fog
FogPlugin
A plugin that consolidates fog extraction, preparation and related resources/assets
GlobalClusterableObjectMeta
Contains information about clusterable objects in the scene that’s global: i.e. not specific to any view.
GpuAtmosphereSettings
GpuClusteredLight
The GPU-side structure that stores information about a clustered light (point or spot).
GpuClusteredLights
GPU buffers that hold data about the clustered lights.
GpuDirectionalCascade
GpuDirectionalLight
GpuFog
The GPU-side representation of the fog configuration that’s sent as a uniform to the shader
GpuLights
GpuMeshPreprocessPlugin
A plugin that builds mesh uniforms on GPU.
GpuMorphDescriptor
Information that the GPU needs about a single mesh instance that uses morph targets.
GpuRectLight
GpuScatteringMedium
The GPU representation of a ScatteringMedium.
LightKeyCache
LightMeta
LightProbePlugin
Adds support for light probes: cuboid bounding regions that apply global illumination to objects within them.
LightProbesBuffer
A GPU buffer that stores information about all light probes.
LightProbesUniform
A per-view shader uniform that specifies all the light probes that the view takes into account.
Lightmap
A component that applies baked indirect diffuse global illumination from a lightmap.
LightmapPlugin
A plugin that provides an implementation of lightmaps.
LightmapSlab
A binding array that contains lightmaps.
LightmapSlabIndex
The index of the slab (binding array) in which a lightmap is located.
LightmapSlotIndex
The index of the slot (element within the binding array) in the slab in which a lightmap is located.
LightmapTemplate
MainPassAlphaMaskDrawFunction
MainPassOpaqueDrawFunction
MainPassTransmissiveDrawFunction
MainPassTransparentDrawFunction
MaterialBindGroupAllocators
MaterialBindGroupBindlessAllocator
The allocator that places bindless materials into bind groups and tracks their resources.
MaterialBindGroupIndex
The index of each material bind group.
MaterialBindGroupNonBindlessAllocator
The allocator that stores bind groups for non-bindless materials.
MaterialBindGroupSlot
The index of the slot containing material data within each material bind group.
MaterialBindingId
The location of a material (either bindless or non-bindless) within the slabs.
MaterialBindlessSlab
A single bind group and the bookkeeping necessary to allocate into it.
MaterialExtensionBindGroupData
MaterialExtensionKey
MaterialExtensionPipeline
MaterialExtractionSystems
A SystemSet that contains all extract_mesh_materials systems.
MaterialFragmentShader
MaterialPipeline
Render pipeline data for a given Material.
MaterialPipelineKey
A key uniquely identifying a specialized MaterialPipeline.
MaterialPipelineSpecializer
MaterialPlugin
Adds the necessary ECS resources and render logic to enable rendering entities using the given Material asset type.
MaterialSlab
The public interface to a slab, which represents a single bind group.
MaterialVertexShader
MaterialsPlugin
MeshBatchSetCompareData
Data that must be identical for meshes to be multi-drawn together.
MeshBindGroupPair
MeshCullingData
Information about each mesh instance needed to cull it on GPU.
MeshCullingDataBlob
MeshCullingDataBuffer
A GPU buffer that holds the information needed to cull meshes on GPU.
MeshExtractionSystems
A SystemSet that encompasses both extract_meshes_for_cpu_building and extract_meshes_for_gpu_building.
MeshFlags
Various flags and tightly-packed values on a mesh.
MeshInputUniform
Information that has to be transferred from CPU to GPU in order to produce the full MeshUniform.
MeshInputUniformBlob
MeshLayouts
All possible BindGroupLayouts in bevy’s default mesh shader (mesh.wgsl).
MeshMaterial3d
A material used for rendering a Mesh3d.
MeshMaterial3dTemplate
MeshMorphTargetStorageBindGroups
The bind groups associated with a single morph displacements slab.
MeshPhaseBindGroups
The bind groups for meshes currently loaded.
MeshPipeline
All data needed to construct a pipeline for rendering 3D meshes.
MeshPipelineKey
MeshPipelineSystems
MeshPipelineViewLayout
MeshPipelineViewLayoutKey
A key that uniquely identifies a MeshPipelineViewLayout.
MeshPipelineViewLayouts
Stores the view layouts entries for creating bind group layouts of pipeline keys.
MeshRenderPlugin
Provides support for rendering 3D meshes.
MeshTransforms
MeshUniform
MeshViewBindGroup
MeshesToReextractNextFrame
Holds a list of meshes that couldn’t be extracted this frame because their materials weren’t prepared yet.
MeshletDeferredFragmentShader
MeshletFragmentShader
MeshletPrepassFragmentShader
MorphDescriptorIndex
The index of the GpuMorphDescriptor in the morph_descriptors buffer.
MorphIndex
MorphUniforms
The GPU buffers containing morph weights for all meshes with morph targets.
MorphWeightsInfo
Information that the CPU needs about each morh target for the purposes of weight calculation.
PbrPlugin
Sets up the entire PBR infrastructure of bevy.
PendingMeshMaterialQueues
Holds all entities with mesh materials that couldn’t be specialized and/or queued because their materials hadn’t loaded yet.
PendingPrepassMeshMaterialQueues
Holds all entities with mesh materials for which the prepass couldn’t be specialized and/or queued because their materials hadn’t loaded yet.
PendingShadowQueues
Holds all entities with mesh materials for which the shadow pass couldn’t be specialized and/or queued because their materials hadn’t loaded yet.
PhaseBuildIndirectParametersBindGroups
The per-phase set of bind groups for the compute shaders that reset indirect draw counts and build indirect parameters.
PointAndSpotLightViewEntities
A component that stores the shadow maps associated with a point or spot light.
PreparedMaterial
Data prepared for a Material instance.
PrepassAlphaMaskDrawFunction
PrepassFragmentShader
PrepassOpaqueDepthOnlyDrawFunction
PrepassOpaqueDrawFunction
PrepassPipeline
PrepassPipelinePlugin
Sets up everything required to use the prepass pipeline.
PrepassPipelineSpecializer
PrepassPlugin
Sets up the prepasses for a material.
PrepassVertexShader
PrepassViewBindGroup
PreprocessBindGroups
The compute shader bind group for the mesh preprocessing pass for each render phase.
PreprocessPhasePipelines
Compute shader pipelines for a specific phase: early, late, or main.
PreprocessPipeline
The pipeline for the GPU mesh preprocessing shader.
PreprocessPipelineKey
Specifies variants of the mesh preprocessing shader.
PreprocessPipelines
The compute shader pipelines for the GPU mesh preprocessing and indirect parameter building passes.
PreviousGlobalTransform
RenderGpuCulledEntities
A resource, part of the render world, that stores all entities that are potentially-visible and have NoCpuCulling components.
RenderLightProbeFlags
Various flags that can be associated with light probes.
RenderLightmaps
Stores data for all lightmaps in the render world.
RenderMaterialBindings
A resource that maps each untyped material ID to its binding.
RenderMaterialInstance
The material associated with a single mesh instance in the main world.
RenderMaterialInstances
Stores all extracted instances of all Materials in the render world.
RenderMeshInstanceCpu
CPU data that the render world keeps for each entity, when not using GPU mesh uniform building.
RenderMeshInstanceFlags
Various useful flags for [RenderMeshInstance]s.
RenderMeshInstanceGpu
CPU data that the render world needs to keep for each entity that contains a mesh when using GPU mesh uniform building.
RenderMeshInstanceGpuBuilder
Information that is gathered during the parallel portion of mesh extraction when GPU mesh uniform building is enabled.
RenderMeshInstanceGpuFlat
Data in RenderMeshInstanceGpu that’s both specific to the GPU preprocessing path and POD.
RenderMeshInstanceGpuFlatBlob
RenderMeshInstanceGpuPrepared
Data needed to construct the RenderMeshInstanceGpu for a mesh instance.
RenderMeshInstanceGpuQueues
The per-thread queues containing mesh instances, populated during the extract phase.
RenderMeshInstanceShared
CPU data that the render world needs to keep about each entity that contains a mesh.
RenderMeshInstanceSharedFlat
The thread-safe POD that’s stored for each mesh, common to both the CPU and GPU preprocessing paths.
RenderMeshInstanceSharedFlatBlob
RenderMeshInstancesCpu
Information that the render world keeps about each entity that contains a mesh, when using CPU mesh instance data building.
RenderMeshInstancesGpu
Information that the render world keeps about each entity that contains a mesh, when using GPU mesh instance data building.
RenderMeshQueueData
Data that crate::material::queue_material_meshes and similar systems need in order to place entities that contain meshes in the right batch.
RenderViewLightProbes
A component, part of the render world, that stores the mapping from asset ID or IDs to the texture index in the appropriate binding arrays.
ResetIndirectBatchSetsPipeline
The pipeline for the batch set count reset shader.
ScatteringMediumSampler
The default sampler for all scattering media LUTs.
ScreenSpaceAmbientOcclusion
Component to apply screen space ambient occlusion to a 3d camera.
ScreenSpaceAmbientOcclusionPlugin
Plugin for screen space ambient occlusion.
ScreenSpaceAmbientOcclusionResources
ScreenSpaceReflections
Add this component to a camera to enable screen-space reflections (SSR).
ScreenSpaceReflectionsBuffer
A GPU buffer that stores the screen space reflection settings for each view.
ScreenSpaceReflectionsPipeline
Information relating to the render pipeline for the screen space reflections shader.
ScreenSpaceReflectionsPipelineId
Identifies which screen space reflections render pipeline a view needs.
ScreenSpaceReflectionsPipelineKey
Identifies a specific configuration of the SSR pipeline shader.
ScreenSpaceReflectionsPlugin
Enables screen-space reflections for a camera.
ScreenSpaceReflectionsUniform
A version of ScreenSpaceReflections for upload to the GPU.
ScreenSpaceTransmission
Configures transmission behavior, offering a trade-off between performance and visual fidelity.
ScreenSpaceTransmissionPlugin
Enables screen-space transmission for cameras.
SetMaterialBindGroup
Sets the bind group for a given Material at the configured I index.
SetMeshBindGroup
SetMeshViewBindGroup
SetMeshViewBindingArrayBindGroup
SetMeshViewEmptyBindGroup
SetPrepassEmptyMaterialBindGroup
SetPrepassViewBindGroup
SetPrepassViewEmptyBindGroup
Shadow
ShadowBatchSetKey
Information that must be identical in order to place opaque meshes in the same batch set.
ShadowBinKey
Data used to bin each object in the shadow map phase.
ShadowSamplers
ShadowView
ShadowsDepthOnlyDrawFunction
ShadowsDrawFunction
SkinUniforms
The GPU buffers containing joint matrices for all skinned meshes.
SkipGpuPreprocess
Stops the GpuPreprocessNode attempting to generate the buffer for this view useful to avoid duplicating effort if the bind group is shared between views
SpecializedMaterialPipelineCache
Stores the SpecializedMaterialViewPipelineCache for each view.
SpecializedMaterialViewPipelineCache
Stores the cached render pipeline ID for each entity in a single view, as well as the last time it was changed.
SpecializedPrepassMaterialPipelineCache
Stores the SpecializedPrepassMaterialViewPipelineCache for each view.
SpecializedPrepassMaterialViewPipelineCache
Stores the cached render pipeline ID for each entity in a single view, as well as the last time it was changed.
SpecializedShadowMaterialPipelineCache
SpecializedShadowMaterialViewPipelineCache
SsaoBindGroups
A render world component that stores the bind groups necessary to perform Screen Space Ambient Occlusion.
SsaoPipelineId
A render world component that holds the cached pipeline id for Ssao.
StandardMaterial
A material with “standard” properties used in PBR lighting. Standard property values with pictures here: https://google.github.io/filament/notes/material_properties.html.
StandardMaterialFlags
Bitflags info about the material a shader is currently rendering. This is accessible in the shader in the StandardMaterialUniform
StandardMaterialKey
The pipeline key for StandardMaterial, packed into 64 bits.
StandardMaterialUniform
The GPU representation of the uniform data of a StandardMaterial.
Transmissive3d
ViewClusterBindings
ViewFogUniformOffset
Inserted on each Entity with an ExtractedView to keep track of its offset in the gpu_fogs DynamicUniformBuffer within FogMeta
ViewKeyCache
This resource caches MeshPipelineKeys for each view with pre-enabled features needed to properly setup the MeshViewBindGroup layout in specialized MeshPipelines.
ViewKeyPrepassCache
ViewLightEntities
A component that holds the shadow cascade views for all shadow cascades associated with a camera.
ViewLightProbesUniformOffset
A component attached to each camera in the render world that stores the index of the LightProbesUniform in the LightProbesBuffer.
ViewLightsUniformOffset
ViewPhaseBinUnpackingBindGroup
The bind group for the unpack_bins shader for a single combination of view, phase, and mesh indexed-ness.
ViewPhaseBinUnpackingBindGroups
The bind groups for the unpack_bins shader for a single (view, phase) combination.
ViewScreenSpaceReflectionsUniformOffset
A component that stores the offset within the ScreenSpaceReflectionsBuffer for each view.
ViewShadowBindings
ViewTransmissionTexture
VolumetricFogPlugin
A plugin that implements volumetric fog.

Enums§

AtmosphereMode
Selects how the atmosphere is rendered. Choose based on scene scale and volumetric shadow quality, and based on performance needs.
FogFalloff
Allows switching between different fog falloff modes, and configuring their parameters.
LightEntity
MaterialBindGroupAllocator
A resource that places materials into bind groups and tracks their resources.
MeshBindGroups
All bind groups for meshes currently loaded.
MeshMorphBindGroupKey
Data related to morph targets that we need in order to look up the bind group for a mesh.
MeshMorphTargetBindGroups
Stores bind groups for each mesh with morph targets.
MorphIndices
Maps each mesh affected by morph targets to the applicable offset within the MorphUniforms buffer.
ParallaxMappingMethod
The parallax mapping method to use to compute depth based on the material’s depth_map.
PhasePreprocessBindGroups
The compute shader bind group for the mesh preprocessing step for a single render phase on a single view.
RenderMeshInstanceGpuQueue
The per-thread queues used during extract_meshes_for_gpu_building.
RenderMeshInstances
Information that the render world keeps about each entity that contains a mesh.
ScreenSpaceAmbientOcclusionQualityLevel
ScreenSpaceTransmissionQuality
The quality of the screen space transmission blur effect, applied to whatever’s behind transmissive objects when their roughness is greater than 0.0.

Constants§

CLUSTERED_FORWARD_STORAGE_BUFFER_COUNT
EARLY_SHADOW_PASS
GPU_CLUSTERING_INITIAL_INDEX_LIST_CAPACITY
The initial capacity of the clustered object index list.
GPU_CLUSTERING_INITIAL_Z_SLICE_LIST_CAPACITY
The initial capacity of the Z slice list.
LATE_SHADOW_PASS
LIGHTMAPS_PER_SLAB
The number of lightmaps that we store in a single slab, if bindless textures are in use.
MATERIAL_BIND_GROUP_INDEX
MAX_CASCADES_PER_LIGHT
MAX_DIRECTIONAL_LIGHTS
MAX_JOINTS
Maximum number of joints supported for skinned meshes.
MAX_RECT_LIGHTS
MAX_UNIFORM_BUFFER_CLUSTERABLE_OBJECTS
MAX_VIEW_LIGHT_PROBES
The maximum number of each type of light probe that each view will consider.
MESH_PIPELINE_VIEW_LAYOUT_SAFE_MAX_TEXTURES
How many textures are allowed in the view bind group layout (@group(0)) before broader compatibility with WebGL and WebGPU is at risk, due to the minimum guaranteed values for MAX_TEXTURE_IMAGE_UNITS (in WebGL) and maxSampledTexturesPerShaderStage (in WebGPU), currently both at 16.
TONEMAPPING_LUT_SAMPLER_BINDING_INDEX
TONEMAPPING_LUT_TEXTURE_BINDING_INDEX

Traits§

LightProbeComponent
A trait implemented by all components that represent light probes.
Material
Materials are used alongside MaterialPlugin, Mesh3d, and MeshMaterial3d to spawn entities that are rendered with a specific Material type. They serve as an easy to use high level way to render Mesh3d entities with custom shader logic.
MaterialExtension
A subset of the Material trait for defining extensions to a base Material, such as the builtin StandardMaterial.

Functions§

alpha_mode_pipeline_key
area_light_luts_placeholder
base_specialize
build_dummy_white_gpu_image
A 1x1x1 ‘all 1.0’ texture to use as a dummy texture in place of optional crate::pbr_material::StandardMaterial textures
check_entities_needing_specialization
Finds 3D entities that have changed in such a way as to potentially require specialization and adds them to the EntitiesNeedingSpecialization list.
check_prepass_views_need_specialization
check_views_lights_need_specialization
check_views_need_specialization
clear_indirect_parameters_metadata
collect_gpu_culled_meshes
Transfers entities from RenderGpuCulledEntities to the RenderVisibleEntities and RenderShadowMapVisibleEntities components on each view.
collect_meshes_for_gpu_building
Creates the RenderMeshInstanceGpus and MeshInputUniforms when GPU preprocessing is in use.
early_gpu_preprocess
early_prepass_build_indirect_parameters
extract_ambient_light
extract_ambient_light_resource
extract_atmosphere
For each camera with AtmosphereSettings, picks the nearest Atmosphere by world-space distance to its origin, copies it as ExtractedAtmosphere, and builds GpuAtmosphereSettings.
extract_camera_previous_view_data
extract_clusters_for_cpu_clustering
Extracts the clusters that the CPU produced into the render world.
extract_entities_needs_specialization
extract_entities_that_need_specializations_removed
A system that adds entities that were judged to need their specializations removed to the appropriate table in DirtySpecializations.
extract_lights
extract_meshes_for_cpu_building
Extracts meshes from the main world into the render world, populating the RenderMeshInstances.
extract_meshes_for_gpu_building
Extracts meshes from the main world to thread-local buffers in the render world.
extract_morphs
extract_shadow_filtering_method
extract_shadow_lod_origin
An extraction system that determines the origin for LOD computation for point and spot light shadow maps and updates the RenderShadowLodOrigin with the result.
extract_skins
get_bind_group_layout_entries
get_bindings
get_image_texture
get_mesh_instance_world_from_local
Returns the world-from-local transform for the given mesh instance.
gpu_clustering_is_enabled
A run condition that tests whether GPU clustering is enabled.
gpu_clustering_is_enabled_during_extraction
A run condition that tests whether GPU clustering is enabled.
init_fallback_bindless_resources
init_global_clusterable_object_meta
init_material_pipeline
init_mesh_pipeline_view_layouts
init_prepass_pipeline
init_prepass_view_bind_group
init_render_lightmaps
init_screen_space_reflections_pipeline
init_shadow_samplers
late_gpu_preprocess
late_prepass_build_indirect_parameters
late_sweep_material_instances
Removes mesh materials from RenderMaterialInstances when their ViewVisibility components are removed.
main_build_indirect_parameters
Builds indirect parameters for the main opaque and transparent passes.
main_transmissive_pass_3d
material_uses_bindless_resources
Returns true if the material will actually use bindless resources or false if it won’t.
no_automatic_morph_batching
per_view_shadow_pass
Renders the shadow maps that are associated with a specific view.
prepare_clusters_for_cpu_clustering
Creates and populates the GPU buffers that store clusters when CPU clustering is being used.
prepare_fog
Prepares fog metadata and writes the fog-related uniform buffers to the GPU
prepare_lights
prepare_material_bind_groups
Creates and/or recreates any bind groups that contain materials that were modified this frame.
prepare_mesh_bind_groups
Creates the per-mesh bind groups for each type of mesh and each phase.
prepare_mesh_view_bind_groups
prepare_morph_descriptors
A system that writes GpuMorphDescriptor values to the MorphUniforms for each mesh instance with morph targets.
prepare_prepass_view_bind_group
prepare_preprocess_bind_groups
A system that attaches buffers to bind groups for the variants of the compute shaders relating to mesh preprocessing.
prepare_preprocess_pipelines
A system that specializes the pipelines relating to mesh preprocessing if necessary.
prepare_previous_view_uniforms
prepare_skins
Uploads the buffers containing the joints to the GPU.
prepare_ssr_pipelines
Sets up screen space reflection pipelines for each applicable view.
prepare_ssr_settings
Gathers up screen space reflection settings for each applicable view and writes them into a GPU buffer.
queue_material_meshes
For each view, iterates over all the meshes visible from that view and adds them to BinnedRenderPhases or SortedRenderPhases as appropriate.
queue_prepass_material_meshes
queue_shadows
For each shadow cascade, iterates over all the meshes “visible” from it and adds them to BinnedRenderPhases or SortedRenderPhases as appropriate.
screen_space_reflections
set_mesh_motion_vector_flags
A system that sets the RenderMeshInstanceFlags for each mesh based on whether the previous frame had skins and/or morph targets.
setup_morph_and_skinning_defs
shared_shadow_pass
Renders the shadow maps that aren’t associated with a specific view.
skins_use_uniform_buffers
Returns true if skinning must use uniforms (and dynamic offsets) because storage buffers aren’t supported on the current platform.
stbn_placeholder
tonemapping_pipeline_key
unpack_bins
A rendering system that invokes a compute shader for each batch set in order to generate preprocessing jobs for the subsequent mesh preprocessing shader.
update_mesh_previous_global_transforms
update_previous_view_data
write_material_bind_group_buffers
Uploads the contents of all buffers that the MaterialBindGroupAllocator manages to the GPU.
write_mesh_culling_data_buffer
Writes the information needed to do GPU mesh culling to the GPU.
write_morph_buffers
A system that writes the buffers inside MorphUniforms to the GPU.

Type Aliases§

DrawDepthOnlyPrepass
DrawMaterial
DrawPrepass