1#define_import_path bevy_pbr::pbr_types 5struct StandardMaterial { 8 attenuation_color: vec4<f32>, 9 uv_transform: mat3x3<f32>, 10 reflectance: vec3<f32>, 11 perceptual_roughness: f32, 13 diffuse_transmission: f32, 14 specular_transmission: f32, 17 attenuation_distance: f32, 19 clearcoat_perceptual_roughness: f32, 20 anisotropy_strength: f32, 21 anisotropy_rotation: vec2<f32>, 25 parallax_depth_scale: f32, 26 max_parallax_layer_count: f32, 27 lightmap_exposure: f32, 28 max_relief_mapping_search_steps: u32, 30 deferred_lighting_pass_id: u32, 37const STANDARD_MATERIAL_FLAGS_BASE_COLOR_TEXTURE_BIT: u32 = 1u << 0u; 38const STANDARD_MATERIAL_FLAGS_EMISSIVE_TEXTURE_BIT: u32 = 1u << 1u; 39const STANDARD_MATERIAL_FLAGS_METALLIC_ROUGHNESS_TEXTURE_BIT: u32 = 1u << 2u; 40const STANDARD_MATERIAL_FLAGS_OCCLUSION_TEXTURE_BIT: u32 = 1u << 3u; 41const STANDARD_MATERIAL_FLAGS_DOUBLE_SIDED_BIT: u32 = 1u << 4u; 42const STANDARD_MATERIAL_FLAGS_UNLIT_BIT: u32 = 1u << 5u; 43const STANDARD_MATERIAL_FLAGS_TWO_COMPONENT_NORMAL_MAP: u32 = 1u << 6u; 44const STANDARD_MATERIAL_FLAGS_FLIP_NORMAL_MAP_Y: u32 = 1u << 7u; 45const STANDARD_MATERIAL_FLAGS_FOG_ENABLED_BIT: u32 = 1u << 8u; 46const STANDARD_MATERIAL_FLAGS_DEPTH_MAP_BIT: u32 = 1u << 9u; 47const STANDARD_MATERIAL_FLAGS_SPECULAR_TRANSMISSION_TEXTURE_BIT: u32 = 1u << 10u; 48const STANDARD_MATERIAL_FLAGS_THICKNESS_TEXTURE_BIT: u32 = 1u << 11u; 49const STANDARD_MATERIAL_FLAGS_DIFFUSE_TRANSMISSION_TEXTURE_BIT: u32 = 1u << 12u; 50const STANDARD_MATERIAL_FLAGS_ATTENUATION_ENABLED_BIT: u32 = 1u << 13u; 51const STANDARD_MATERIAL_FLAGS_CLEARCOAT_TEXTURE_BIT: u32 = 1u << 14u; 52const STANDARD_MATERIAL_FLAGS_CLEARCOAT_ROUGHNESS_TEXTURE_BIT: u32 = 1u << 15u; 53const STANDARD_MATERIAL_FLAGS_CLEARCOAT_NORMAL_TEXTURE_BIT: u32 = 1u << 16u; 54const STANDARD_MATERIAL_FLAGS_ANISOTROPY_TEXTURE_BIT: u32 = 1u << 17u; 55const STANDARD_MATERIAL_FLAGS_SPECULAR_TEXTURE_BIT: u32 = 1u << 18u; 56const STANDARD_MATERIAL_FLAGS_SPECULAR_TINT_TEXTURE_BIT: u32 = 1u << 19u; 57const STANDARD_MATERIAL_FLAGS_ALPHA_MODE_RESERVED_BITS: u32 = 7u << 29u; 58const STANDARD_MATERIAL_FLAGS_ALPHA_MODE_OPAQUE: u32 = 0u << 29u; 59const STANDARD_MATERIAL_FLAGS_ALPHA_MODE_MASK: u32 = 1u << 29u; 60const STANDARD_MATERIAL_FLAGS_ALPHA_MODE_BLEND: u32 = 2u << 29u; 61const STANDARD_MATERIAL_FLAGS_ALPHA_MODE_PREMULTIPLIED: u32 = 3u << 29u; 62const STANDARD_MATERIAL_FLAGS_ALPHA_MODE_ADD: u32 = 4u << 29u; 63const STANDARD_MATERIAL_FLAGS_ALPHA_MODE_MULTIPLY: u32 = 5u << 29u; 64const STANDARD_MATERIAL_FLAGS_ALPHA_MODE_ALPHA_TO_COVERAGE: u32 = 6u << 29u; 68fn standard_material_new() -> StandardMaterial { 69 var material: StandardMaterial; 72 material.base_color = vec4<f32>(1.0, 1.0, 1.0, 1.0); 73 material.emissive = vec4<f32>(0.0, 0.0, 0.0, 1.0); 74 material.perceptual_roughness = 0.5; 75 material.metallic = 0.00; 76 material.reflectance = vec3<f32>(0.5); 77 material.diffuse_transmission = 0.0; 78 material.specular_transmission = 0.0; 79 material.thickness = 0.0; 81 material.attenuation_distance = 1.0; 82 material.attenuation_color = vec4<f32>(1.0, 1.0, 1.0, 1.0); 83 material.clearcoat = 0.0; 84 material.clearcoat_perceptual_roughness = 0.0; 85 material.flags = STANDARD_MATERIAL_FLAGS_ALPHA_MODE_OPAQUE; 86 material.alpha_cutoff = 0.5; 87 material.parallax_depth_scale = 0.1; 88 material.max_parallax_layer_count = 16.0; 89 material.max_relief_mapping_search_steps = 5u; 90 material.deferred_lighting_pass_id = 1u; 92 material.uv_transform = mat3x3<f32>(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0); 98 material: StandardMaterial, 100 diffuse_occlusion: vec3<f32>, 102 specular_occlusion: f32, 103 frag_coord: vec4<f32>, 104 world_position: vec4<f32>, 107 world_normal: vec3<f32>, 113 lightmap_light: vec3<f32>, 114 clearcoat_N: vec3<f32>, 115 anisotropy_strength: f32, 118 anisotropy_T: vec3<f32>, 119 anisotropy_B: vec3<f32>, 120 is_orthographic: bool, 125fn pbr_input_new() -> PbrInput { 126 var pbr_input: PbrInput; 128 pbr_input.material = standard_material_new(); 129 pbr_input.diffuse_occlusion = vec3<f32>(1.0); 131 pbr_input.specular_occlusion = 1.0; 133 pbr_input.frag_coord = vec4<f32>(0.0, 0.0, 0.0, 1.0); 134 pbr_input.world_position = vec4<f32>(0.0, 0.0, 0.0, 1.0); 135 pbr_input.world_normal = vec3<f32>(0.0, 0.0, 1.0); 137 pbr_input.is_orthographic = false; 139 pbr_input.N = vec3<f32>(0.0, 0.0, 1.0); 140 pbr_input.V = vec3<f32>(1.0, 0.0, 0.0); 142 pbr_input.clearcoat_N = vec3<f32>(0.0); 143 pbr_input.anisotropy_T = vec3<f32>(0.0); 144 pbr_input.anisotropy_B = vec3<f32>(0.0); 146 pbr_input.lightmap_light = vec3<f32>(0.0); 148 pbr_input.flags = 0u;