Advanced search tips: use spaces to require multiple terms (AND), | for alternatives (OR), wrap phrases in quotes (="a b"), =term for exact match, 'term to include, !term to exclude, ^term to match prefix, !^term to exclude prefix, .ext$ to match suffix, and !.ext$ to exclude suffix.

pbr_types.wgsl

Import path

Constants

STANDARD_MATERIAL_FLAGS_BASE_COLOR_TEXTURE_BIT

#
const STANDARD_MATERIAL_FLAGS_BASE_COLOR_TEXTURE_BIT: u32 = 1u << 0u

STANDARD_MATERIAL_FLAGS_EMISSIVE_TEXTURE_BIT

#
const STANDARD_MATERIAL_FLAGS_EMISSIVE_TEXTURE_BIT: u32 = 1u << 1u

STANDARD_MATERIAL_FLAGS_METALLIC_ROUGHNESS_TEXTURE_BIT

#
const STANDARD_MATERIAL_FLAGS_METALLIC_ROUGHNESS_TEXTURE_BIT: u32 = 1u << 2u

STANDARD_MATERIAL_FLAGS_OCCLUSION_TEXTURE_BIT

#
const STANDARD_MATERIAL_FLAGS_OCCLUSION_TEXTURE_BIT: u32 = 1u << 3u

STANDARD_MATERIAL_FLAGS_DOUBLE_SIDED_BIT

#
const STANDARD_MATERIAL_FLAGS_DOUBLE_SIDED_BIT: u32 = 1u << 4u

STANDARD_MATERIAL_FLAGS_UNLIT_BIT

#
const STANDARD_MATERIAL_FLAGS_UNLIT_BIT: u32 = 1u << 5u

STANDARD_MATERIAL_FLAGS_TWO_COMPONENT_NORMAL_MAP

#
const STANDARD_MATERIAL_FLAGS_TWO_COMPONENT_NORMAL_MAP: u32 = 1u << 6u

STANDARD_MATERIAL_FLAGS_FLIP_NORMAL_MAP_Y

#
const STANDARD_MATERIAL_FLAGS_FLIP_NORMAL_MAP_Y: u32 = 1u << 7u

STANDARD_MATERIAL_FLAGS_FOG_ENABLED_BIT

#
const STANDARD_MATERIAL_FLAGS_FOG_ENABLED_BIT: u32 = 1u << 8u

STANDARD_MATERIAL_FLAGS_DEPTH_MAP_BIT

#
const STANDARD_MATERIAL_FLAGS_DEPTH_MAP_BIT: u32 = 1u << 9u

STANDARD_MATERIAL_FLAGS_SPECULAR_TRANSMISSION_TEXTURE_BIT

#
const STANDARD_MATERIAL_FLAGS_SPECULAR_TRANSMISSION_TEXTURE_BIT: u32 = 1u << 10u

STANDARD_MATERIAL_FLAGS_THICKNESS_TEXTURE_BIT

#
const STANDARD_MATERIAL_FLAGS_THICKNESS_TEXTURE_BIT: u32 = 1u << 11u

STANDARD_MATERIAL_FLAGS_DIFFUSE_TRANSMISSION_TEXTURE_BIT

#
const STANDARD_MATERIAL_FLAGS_DIFFUSE_TRANSMISSION_TEXTURE_BIT: u32 = 1u << 12u

STANDARD_MATERIAL_FLAGS_ATTENUATION_ENABLED_BIT

#
const STANDARD_MATERIAL_FLAGS_ATTENUATION_ENABLED_BIT: u32 = 1u << 13u

STANDARD_MATERIAL_FLAGS_CLEARCOAT_TEXTURE_BIT

#
const STANDARD_MATERIAL_FLAGS_CLEARCOAT_TEXTURE_BIT: u32 = 1u << 14u

STANDARD_MATERIAL_FLAGS_CLEARCOAT_ROUGHNESS_TEXTURE_BIT

#
const STANDARD_MATERIAL_FLAGS_CLEARCOAT_ROUGHNESS_TEXTURE_BIT: u32 = 1u << 15u

STANDARD_MATERIAL_FLAGS_CLEARCOAT_NORMAL_TEXTURE_BIT

#
const STANDARD_MATERIAL_FLAGS_CLEARCOAT_NORMAL_TEXTURE_BIT: u32 = 1u << 16u

STANDARD_MATERIAL_FLAGS_ANISOTROPY_TEXTURE_BIT

#
const STANDARD_MATERIAL_FLAGS_ANISOTROPY_TEXTURE_BIT: u32 = 1u << 17u

STANDARD_MATERIAL_FLAGS_SPECULAR_TEXTURE_BIT

#
const STANDARD_MATERIAL_FLAGS_SPECULAR_TEXTURE_BIT: u32 = 1u << 18u

STANDARD_MATERIAL_FLAGS_SPECULAR_TINT_TEXTURE_BIT

#
const STANDARD_MATERIAL_FLAGS_SPECULAR_TINT_TEXTURE_BIT: u32 = 1u << 19u

STANDARD_MATERIAL_FLAGS_ALPHA_MODE_RESERVED_BITS

#
const STANDARD_MATERIAL_FLAGS_ALPHA_MODE_RESERVED_BITS: u32 = 7u << 29u

STANDARD_MATERIAL_FLAGS_ALPHA_MODE_OPAQUE

#
const STANDARD_MATERIAL_FLAGS_ALPHA_MODE_OPAQUE: u32 = 0u << 29u

STANDARD_MATERIAL_FLAGS_ALPHA_MODE_MASK

#
const STANDARD_MATERIAL_FLAGS_ALPHA_MODE_MASK: u32 = 1u << 29u

STANDARD_MATERIAL_FLAGS_ALPHA_MODE_BLEND

#
const STANDARD_MATERIAL_FLAGS_ALPHA_MODE_BLEND: u32 = 2u << 29u

STANDARD_MATERIAL_FLAGS_ALPHA_MODE_PREMULTIPLIED

#
const STANDARD_MATERIAL_FLAGS_ALPHA_MODE_PREMULTIPLIED: u32 = 3u << 29u

STANDARD_MATERIAL_FLAGS_ALPHA_MODE_ADD

#
const STANDARD_MATERIAL_FLAGS_ALPHA_MODE_ADD: u32 = 4u << 29u

STANDARD_MATERIAL_FLAGS_ALPHA_MODE_MULTIPLY

#
const STANDARD_MATERIAL_FLAGS_ALPHA_MODE_MULTIPLY: u32 = 5u << 29u

STANDARD_MATERIAL_FLAGS_ALPHA_MODE_ALPHA_TO_COVERAGE

#
const STANDARD_MATERIAL_FLAGS_ALPHA_MODE_ALPHA_TO_COVERAGE: u32 = 6u << 29u

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.

struct StandardMaterial {
base_color: vec4<f32> ,
emissive: vec4<f32> ,
attenuation_color: vec4<f32> ,
uv_transform: mat3x3<f32> ,
reflectance: vec3<f32> ,
perceptual_roughness: f32 ,
metallic: 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

#
struct PbrInput {
material: StandardMaterial ,
diffuse_occlusion: vec3<f32> ,
specular_occlusion: f32 ,
frag_coord: vec4<f32> ,
world_position: vec4<f32> ,
world_normal: 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 ()

pbr_input_new

#

Creates a PbrInput with default values

fn pbr_input_new ()