Back home 🏡 WGSL Spec Bevy WGSL Functions

pbr_types.wgsl

Import path

Constants

Name Type Value
STANDARD_MATERIAL_FLAGS_BASE_COLOR_TEXTURE_BIT # u32 1u
STANDARD_MATERIAL_FLAGS_EMISSIVE_TEXTURE_BIT # u32 2u
STANDARD_MATERIAL_FLAGS_METALLIC_ROUGHNESS_TEXTURE_BIT # u32 4u
STANDARD_MATERIAL_FLAGS_OCCLUSION_TEXTURE_BIT # u32 8u
STANDARD_MATERIAL_FLAGS_DOUBLE_SIDED_BIT # u32 16u
STANDARD_MATERIAL_FLAGS_UNLIT_BIT # u32 32u
STANDARD_MATERIAL_FLAGS_TWO_COMPONENT_NORMAL_MAP # u32 64u
STANDARD_MATERIAL_FLAGS_FLIP_NORMAL_MAP_Y # u32 128u
STANDARD_MATERIAL_FLAGS_FOG_ENABLED_BIT # u32 256u
STANDARD_MATERIAL_FLAGS_DEPTH_MAP_BIT # u32 512u
STANDARD_MATERIAL_FLAGS_SPECULAR_TRANSMISSION_TEXTURE_BIT # u32 1024u
STANDARD_MATERIAL_FLAGS_THICKNESS_TEXTURE_BIT # u32 2048u
STANDARD_MATERIAL_FLAGS_DIFFUSE_TRANSMISSION_TEXTURE_BIT # u32 4096u
STANDARD_MATERIAL_FLAGS_ATTENUATION_ENABLED_BIT # u32 8192u
STANDARD_MATERIAL_FLAGS_CLEARCOAT_TEXTURE_BIT # u32 16384u
STANDARD_MATERIAL_FLAGS_CLEARCOAT_ROUGHNESS_TEXTURE_BIT # u32 32768u
STANDARD_MATERIAL_FLAGS_CLEARCOAT_NORMAL_TEXTURE_BIT # u32 65536u
STANDARD_MATERIAL_FLAGS_ANISOTROPY_TEXTURE_BIT # u32 131072u
STANDARD_MATERIAL_FLAGS_ALPHA_MODE_RESERVED_BITS # u32 3758096384u
STANDARD_MATERIAL_FLAGS_ALPHA_MODE_OPAQUE # u32 0u
STANDARD_MATERIAL_FLAGS_ALPHA_MODE_MASK # u32 536870912u
STANDARD_MATERIAL_FLAGS_ALPHA_MODE_BLEND # u32 1073741824u
STANDARD_MATERIAL_FLAGS_ALPHA_MODE_PREMULTIPLIED # u32 1610612736u
STANDARD_MATERIAL_FLAGS_ALPHA_MODE_ADD # u32 2147483648u
STANDARD_MATERIAL_FLAGS_ALPHA_MODE_MULTIPLY # u32 2684354560u
STANDARD_MATERIAL_FLAGS_ALPHA_MODE_ALPHA_TO_COVERAGE # u32 3221225472u

Structures

StandardMaterial

#
Since this is a hot path, try to keep the alignment and size of the struct members in mind. You can find the alignment and sizes at <https://www.w3.org/TR/WGSL/#alignment-and-size>.
Name Type
base_color vec4<f32>
emissive vec4<f32>
attenuation_color vec4<f32>
uv_transform mat3x3<f32>
perceptual_roughness f32
metallic f32
reflectance f32
diffuse_transmission f32
specular_transmission f32
thickness f32
ior f32
attenuation_distance f32
clearcoat f32
clearcoat_perceptual_roughness f32
anisotropy_strength f32
anisotropy_rotation vec2<f32>
flags u32
alpha_cutoff f32
parallax_depth_scale f32
max_parallax_layer_count f32
lightmap_exposure f32
max_relief_mapping_search_steps u32
deferred_lighting_pass_id u32

PbrInput

#
Name Type
material StandardMaterial
diffuse_occlusion vec3<f32>
specular_occlusion f32
frag_coord vec4<f32>
world_position vec4<f32>
world_normal vec3<f32>
N vec3<f32>
V vec3<f32>
lightmap_light vec3<f32>
clearcoat_N vec3<f32>
anisotropy_strength f32
anisotropy_T vec3<f32>
anisotropy_B vec3<f32>
is_orthographic bool
flags u32

Functions

standard_material_new

#
Creates a StandardMaterial with default values
fn standard_material_new() -> StandardMaterial
Returns: StandardMaterial

pbr_input_new

#
Creates a PbrInput with default values
fn pbr_input_new() -> PbrInput
Returns: PbrInput