Gamma correction corrected....
This commit is contained in:
@@ -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";
|
||||
|
||||
Reference in New Issue
Block a user