diff --git a/simulator/src/shader.wgsl b/simulator/src/shader.wgsl index 68f015a..04fd28b 100644 --- a/simulator/src/shader.wgsl +++ b/simulator/src/shader.wgsl @@ -18,7 +18,16 @@ fn vs_main( return out; } +fn srgb_to_linear(c: f32) -> f32 { + return pow((c + 0.055) / 1.055, 2.4); +} + @fragment fn fs_main(in: VertexOutput) -> @location(0) vec4 { - return vec4(in.color, 1.0); + let linear_color = vec3( + srgb_to_linear(in.color.r), + srgb_to_linear(in.color.g), + srgb_to_linear(in.color.b), + ); + return vec4(linear_color, 1.0); }