2 mesh2d_functions as mesh_functions, 3 mesh2d_vertex_output::VertexOutput, 4 mesh2d_view_bindings::view, 7#ifdef TONEMAP_IN_SHADER 8#import bevy_core_pipeline::tonemapping 11#import bevy_render::color_operations::linear_to_srgb 14#import bevy_render::color_operations::linear_rgb_to_oklab 18 @builtin(instance_index) instance_index: u32, 19#ifdef VERTEX_POSITIONS 20 @location(0) position: vec3<f32>, 23 @location(1) normal: vec3<f32>, 26 @location(2) uv: vec2<f32>, 29 @location(3) tangent: vec4<f32>, 32 @location(4) color: vec4<f32>, 37fn vertex(vertex: Vertex) -> VertexOutput { 38 var out: VertexOutput; 43#ifdef VERTEX_POSITIONS 44 var world_from_local = mesh_functions::get_world_from_local(vertex.instance_index); 45 out.world_position = mesh_functions::mesh2d_position_local_to_world( 47 vec4<f32>(vertex.position, 1.0) 49 out.position = mesh_functions::mesh2d_position_world_to_clip(out.world_position); 53 out.world_normal = mesh_functions::mesh2d_normal_local_to_world(vertex.normal, vertex.instance_index); 57 out.world_tangent = mesh_functions::mesh2d_tangent_local_to_world( 64 out.color = vertex.color; 72) -> @location(0) vec4<f32> { 75#ifdef TONEMAP_IN_SHADER 76 color = tonemapping::tone_mapping(color, view.color_grading); 79 color = vec4(linear_to_srgb(color.rgb), color.a); 82 color = vec4(linear_rgb_to_oklab(color.rgb), color.a); 86 return vec4<f32>(1.0, 0.0, 1.0, 1.0);