Gamma correction corrected....

This commit is contained in:
2025-08-05 22:58:21 +02:00
parent 17c3469602
commit 0736eb77b2
5 changed files with 61 additions and 9 deletions

View File

@@ -42,13 +42,6 @@ Vector3i :: struct {
z: int;
}
Color :: #type,isa Vector4;
Colored_Vert :: struct {
position: Vector2;
color : Color;
}
AABB :: struct {
min: Vector3 = .{FLOAT32_INFINITY, FLOAT32_INFINITY, FLOAT32_INFINITY};
max: Vector3 = .{-FLOAT32_INFINITY, -FLOAT32_INFINITY, -FLOAT32_INFINITY};
@@ -423,6 +416,60 @@ ease_in_out_sine :: (x: float) -> float {
return -(cos(PI * x) - 1.0) * 0.5;
}
// Color
Color :: #type,isa Vector4;
Colored_Vert :: struct {
position: Vector2;
color : Color;
}
linear_to_srgb :: (c: float) -> float {
if (c <= 0.0031308)
return 12.92 * c;
else
return 1.055 * pow(c, 1.0 / 2.4) - 0.055;
}
linear_to_srgb :: (c: Vector3) -> Vector3 {
return Vector3.{
linear_to_srgb(c.x),
linear_to_srgb(c.y),
linear_to_srgb(c.z)
};
}
linear_to_srgb :: (c: $T) -> T {
srgb_color := c;
srgb_color.x = linear_to_srgb(c.x);
srgb_color.y = linear_to_srgb(c.y);
srgb_color.z = linear_to_srgb(c.z);
return srgb_color;
}
srgb_to_linear :: (c: float) -> float {
if c <= 0.04045
return c / 12.92;
else
return pow((c + 0.055) / 1.055, 2.4);
}
srgb_to_linear :: (c: Vector3) -> Vector3 {
return float3(
srgbToLinear(c.r),
srgbToLinear(c.g),
srgbToLinear(c.b)
);
}
srgb_to_linear :: (c: $T) -> T {
linear_color := c;
linear_color.x = srgb_to_linear(c.x);
linear_color.y = srgb_to_linear(c.y);
linear_color.z = srgb_to_linear(c.z);
return linear_color;
}
#import "PCG";
#import "Math";
#load "frustum.jai";