Crate pbr

Source

Modules§

deferred
environment_map
Environment maps and reflection probes.
graph
irradiance_volume
Irradiance volumes, also known as voxel global illumination.
prelude
The PBR prelude.
wireframe

Structs§

AmbientLight
An ambient light, which lights the entire scene equally.
AtomicMaterialBindGroupId
An atomic version of MaterialBindGroupId that can be read from and written to safely from multiple threads.
Cascade
CascadeShadowConfig
Controls how cascaded shadow mapping works. Prefer using CascadeShadowConfigBuilder to construct an instance.
CascadeShadowConfigBuilder
Builder for CascadeShadowConfig.
Cascades
CascadesVisibleEntities
ClusterZConfig
Configure the depth-slicing strategy for clustered forward rendering
Clusters
CubemapVisibleEntities
DefaultOpaqueRendererMethod
Default render method used for opaque materials.
DirectionalLight
A Directional light.
DirectionalLightBundleDeprecated
A component bundle for DirectionalLight entities.
DirectionalLightShadowMap
Controls the resolution of DirectionalLight shadow maps.
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
EnvironmentMapUniform
The uniform struct extracted from EnvironmentMapLight. Will be available for use in the Environment Map shader.
EnvironmentMapUniformBuffer
A GPU buffer that stores the environment map settings for each view.
ExtendedMaterial
A material that extends a base Material with additional shaders and data.
ExtractMeshesSet
A SystemSet that encompasses both extract_meshes_for_cpu_building and extract_meshes_for_gpu_building.
ExtractedClusterConfig
ExtractedClusterableObjects
ExtractedDirectionalLight
ExtractedPointLight
FogMeta
Metadata for fog
FogPlugin
A plugin that consolidates fog extraction, preparation and related resources/assets
FogVolume
FogVolumeBundleDeprecated
A convenient Bundle that contains all components necessary to generate a fog volume.
GlobalClusterableObjectMeta
GlobalVisibleClusterableObjects
GpuClusterableObject
GpuClusterableObjectsStorage
GpuClusterableObjectsUniform
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.
GpuPreprocessNode
The render node for the mesh uniform building pass.
LightMeta
LightProbe
A marker component for a light probe, which is a cuboid region that provides global illumination to all fragments inside it.
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.
LightViewEntities
Component automatically attached to a light entity to track light-view entities for each view.
Lightmap
A component that applies baked indirect diffuse global illumination from a lightmap.
LightmapPlugin
A plugin that provides an implementation of lightmaps.
MaterialBindGroupId
MaterialExtensionKey
MaterialExtensionPipeline
MaterialMeshBundleDeprecated
A component bundle for entities with a Mesh3d and a MeshMaterial3d.
MaterialPipeline
Render pipeline data for a given Material.
MaterialPipelineKey
A key uniquely identifying a specialized MaterialPipeline.
MaterialPlugin
Adds the necessary ECS resources and render logic to enable rendering entities using the given Material asset type.
MaterialProperties
Common Material properties, calculated for a specific material instance.
MeshBindGroupPair
MeshBindGroups
Bind groups for meshes currently loaded.
MeshCullingData
Information about each mesh instance needed to cull it on GPU.
MeshCullingDataBuffer
A GPU buffer that holds the information needed to cull meshes on GPU.
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.
MeshLayouts
All possible BindGroupLayouts in bevy’s default mesh shader (mesh.wgsl).
MeshMaterial3d
A material used for rendering a Mesh3d.
MeshPipeline
All data needed to construct a pipeline for rendering 3D meshes.
MeshPipelineKey
MSAA uses the highest 3 bits for the MSAA log2(sample count) to support up to 128x MSAA.
MeshPipelineViewLayout
MeshPipelineViewLayoutKey
A key that uniquely identifies a MeshPipelineViewLayout.
MeshPipelineViewLayouts
Stores the view layouts for every combination of pipeline keys.
MeshRenderPlugin
Provides support for rendering 3D meshes.
MeshTransforms
MeshUniform
MeshViewBindGroup
NotShadowCaster
Add this component to make a Mesh3d not cast shadows.
NotShadowReceiver
Add this component to make a Mesh3d not receive shadows.
PbrPlugin
Sets up the entire PBR infrastructure of bevy.
PbrProjectionPlugin
CameraProjection specific PBR functionality.
PointLight
A light that emits light in all directions from a central point.
PointLightBundleDeprecated
A component bundle for PointLight entities.
PointLightShadowMap
PreparedMaterial
Data prepared for a Material instance.
PrepassPipeline
PrepassPipelinePlugin
Sets up everything required to use the prepass pipeline.
PrepassPlugin
Sets up the prepasses for a Material.
PrepassViewBindGroup
PreprocessBindGroup
The compute shader bind group for the mesh uniform building pass.
PreprocessPipeline
The pipeline for the GPU mesh preprocessing shader.
PreprocessPipelineKey
Specifies variants of the mesh preprocessing shader.
PreprocessPipelines
The compute shader pipelines for the mesh uniform building pass.
PreviousGlobalTransform
RenderCascadesVisibleEntities
RenderCubemapVisibleEntities
RenderLightmaps
Stores data for all lightmaps in the render world.
RenderMaterialInstances
Stores all extracted instances of a Material 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.
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.
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.
RenderVisibleMeshEntities
ScreenSpaceAmbientOcclusion
Component to apply screen space ambient occlusion to a 3d camera.
ScreenSpaceAmbientOcclusionBundleDeprecated
Bundle to apply screen space ambient occlusion.
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.
ScreenSpaceReflectionsBundleDeprecated
A convenient bundle to add screen space reflections to a camera, along with the depth and deferred prepasses required to enable them.
ScreenSpaceReflectionsNode
The node in the render graph that traces screen space reflections.
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.
SetMaterialBindGroup
Sets the bind group for a given Material at the configured I index.
SetMeshBindGroup
SetMeshViewBindGroup
SetPrepassViewBindGroup
Shadow
ShadowBinKey
Data used to bin each object in the shadow map phase.
ShadowPassNode
ShadowSamplers
ShadowView
SkinIndices
Maps each skinned mesh to the applicable offset within the SkinUniforms buffer.
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
SpotLight
A light that emits light in a given direction from a central point.
SpotLightBundleDeprecated
A component bundle for spot light entities
StandardMaterial
A material with “standard” properties used in PBR lighting Standard property values with pictures here https://google.github.io/filament/Material%20Properties.pdf.
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.
TransmittedShadowReceiver
Add this component to make a Mesh3d using a PBR material with diffuse_transmission> 0.0 receive shadows on its diffuse transmission lobe. (i.e. its “backside”)
ViewClusterBindings
ViewEnvironmentMapUniformOffset
A component that stores the offset within the EnvironmentMapUniformBuffer for each view.
ViewFogUniformOffset
Inserted on each Entity with an ExtractedView to keep track of its offset in the gpu_fogs DynamicUniformBuffer within FogMeta
ViewLightEntities
ViewLightProbesUniformOffset
A component attached to each camera in the render world that stores the index of the LightProbesUniform in the LightProbesBuffer.
ViewLightsUniformOffset
ViewScreenSpaceReflectionsUniformOffset
A component that stores the offset within the ScreenSpaceReflectionsBuffer for each view.
ViewShadowBindings
VisibleClusterableObjects
VisibleMeshEntities
Collection of mesh entities visible for 3D lighting.
VolumetricFog
When placed on a bevy_core_pipeline::core_3d::Camera3d, enables volumetric fog and volumetric lighting, also known as light shafts or god rays.
VolumetricFogPlugin
A plugin that implements volumetric fog.
VolumetricLight
Add this component to a DirectionalLight with a shadow map (shadows_enabled: true) to make volumetric fog interact with it.

Enums§

ClusterConfig
Configuration of the clustering strategy for clustered forward rendering
ClusterFarZMode
Configure the far z-plane mode used for the furthest depth slice for clustered forward rendering
FogFalloff
Allows switching between different fog falloff modes, and configuring their parameters.
GpuClusterableObjects
LightEntity
OpaqueRendererMethod
Render method used for opaque materials.
ParallaxMappingMethod
The parallax mapping method to use to compute depth based on the material’s depth_map.
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
ShadowFilteringMethod
Add this component to a Camera3d to control how to anti-alias shadow edges.
SimulationLightSystems
System sets used to run light-related systems.
UvChannel
An enum to define which UV attribute to use for a texture.

Constants§

CLUSTERED_FORWARD_HANDLE
CLUSTERED_FORWARD_STORAGE_BUFFER_COUNT
FOG_SHADER_HANDLE
Handle for the fog WGSL Shader internal asset
FORWARD_IO_HANDLE
LIGHTMAP_SHADER_HANDLE
The ID of the lightmap shader.
LIGHT_PROBE_SHADER_HANDLE
MAX_CASCADES_PER_LIGHTNon-webgl or non-WebAssembly or webgpu
MAX_DIRECTIONAL_LIGHTSNon-webgl or non-WebAssembly or webgpu
MAX_JOINTS
Maximum number of joints supported for skinned meshes.
MAX_UNIFORM_BUFFER_CLUSTERABLE_OBJECTS
MAX_VIEW_LIGHT_PROBES
The maximum number of each type of light probe that each view will consider.
MESH_BINDINGS_HANDLE
MESH_FUNCTIONS_HANDLE
MESH_PIPELINE_VIEW_LAYOUT_SAFE_MAX_TEXTURESDebug-assertions enabled
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.
MESH_PREPROCESS_SHADER_HANDLE
The handle to the mesh_preprocess.wgsl compute shader.
MESH_SHADER_HANDLE
MESH_TYPES_HANDLE
MESH_VIEW_BINDINGS_HANDLE
MESH_VIEW_TYPES_HANDLE
MORPH_HANDLE
PARALLAX_MAPPING_SHADER_HANDLE
PBR_AMBIENT_HANDLE
PBR_BINDINGS_SHADER_HANDLE
PBR_DEFERRED_FUNCTIONS_HANDLE
PBR_DEFERRED_TYPES_HANDLE
PBR_FRAGMENT_HANDLE
PBR_FUNCTIONS_HANDLE
PBR_LIGHTING_HANDLE
PBR_PREPASS_FUNCTIONS_SHADER_HANDLE
PBR_PREPASS_SHADER_HANDLE
PBR_SHADER_HANDLE
PBR_TRANSMISSION_HANDLE
PBR_TYPES_SHADER_HANDLE
PREPASS_BINDINGS_SHADER_HANDLE
PREPASS_IO_SHADER_HANDLE
PREPASS_SHADER_HANDLE
PREPASS_UTILS_SHADER_HANDLE
RGB9E5_FUNCTIONS_HANDLE
SHADOWS_HANDLE
SHADOW_SAMPLING_HANDLE
SKINNING_HANDLE
TONEMAPPING_LUT_SAMPLER_BINDING_INDEX
TONEMAPPING_LUT_TEXTURE_BINDING_INDEX
UTILS_HANDLE
VIEW_TRANSFORMATIONS_SHADER_HANDLE

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§

add_clusters
alpha_mode_pipeline_key
build_directional_light_cascades
calculate_cluster_factors
check_dir_light_mesh_visibility
check_point_light_mesh_visibility
clear_directional_light_cascades
collect_meshes_for_gpu_building
Creates the RenderMeshInstanceGpus and MeshInputUniforms when GPU mesh uniforms are built.
extract_camera_previous_view_data
extract_clusters
Extracts clusters from the main world from the render world.
extract_lights
extract_mesh_materials
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 into the render world and queues MeshInputUniforms to be uploaded to the GPU.
extract_skins
generate_view_layouts
Generates all possible view layouts for the mesh pipeline, based on all combinations of MeshPipelineViewLayoutKey flags.
get_bind_group_layout_entries
get_bindings
prepare_clusters
prepare_environment_uniform_buffer
Gathers up environment map settings for each applicable view and writes them into a GPU buffer.
prepare_fog
Prepares fog metadata and writes the fog-related uniform buffers to the GPU
prepare_lights
prepare_mesh_bind_group
prepare_mesh_view_bind_groups
prepare_prepass_view_bind_group
prepare_preprocess_bind_groups
A system that attaches the mesh uniform buffers to the bind groups for the variants of the mesh preprocessing compute shader.
prepare_preprocess_pipelines
A system that specializes the mesh_preprocess.wgsl pipelines if necessary.
prepare_previous_view_uniforms
prepare_skins
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_specular_transmission_pipeline_key
setup_morph_and_skinning_defs
tonemapping_pipeline_key
update_directional_light_frusta
update_mesh_previous_global_transforms
update_point_light_frusta
update_previous_view_data
update_spot_light_frusta
write_mesh_culling_data_buffer
Writes the information needed to do GPU mesh culling to the GPU.

Type Aliases§

DrawPrepass
FogSettingsDeprecated
PbrBundleDeprecated
A component bundle for PBR entities with a Mesh3d and a MeshMaterial3d<StandardMaterial>.
ScreenSpaceAmbientOcclusionSettingsDeprecated
ScreenSpaceReflectionsSettingsDeprecated
VolumetricFogSettingsDeprecated
WithLight
A convenient alias for Or<(With<PointLight>, With<SpotLight>, With<DirectionalLight>)>, for use with bevy_render::view::VisibleEntities.