Gamma correction corrected....
This commit is contained in:
@@ -81,6 +81,7 @@ MAX_CHILDREN :: 16;
|
||||
dynamic_friction: float;
|
||||
restitution: float;
|
||||
|
||||
render_collider: bool;
|
||||
collider_color: Color;
|
||||
|
||||
lock: Physics_Lock;
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -228,7 +228,9 @@ generate_member_ui_imgui :: (type: *Type_Info_Struct, builder: *String_Builder,
|
||||
} else if info_struct.name == "Vector3" {
|
||||
print_to_builder(builder, "\tImGui.DragFloat3(tprint_c(\"%\"), *e.%.component);\n", new_path, new_path);
|
||||
} else if info_struct.name == "Color" || info_struct.name == "Vector4" {
|
||||
print_to_builder(builder, "\tImGui.ColorEdit4(tprint_c(\"%\"), *e.%.component);\n", new_path, new_path);
|
||||
print_to_builder(builder, "\tsrgb_color := linear_to_srgb(e.%);\n", new_path);
|
||||
print_to_builder(builder, "\tImGui.ColorEdit4(tprint_c(\"%\"), *srgb_color.component);\n", new_path);
|
||||
print_to_builder(builder, "\te.% = srgb_to_linear(srgb_color);\n", new_path);
|
||||
} else {
|
||||
generate_member_ui_imgui(info_struct, builder, new_path);
|
||||
}
|
||||
|
||||
@@ -1115,7 +1115,7 @@ create_backend_render_target :: (using backend: *D3D11_Backend, width: u32, heig
|
||||
texture_desc.Height = height;
|
||||
texture_desc.MipLevels = 1;
|
||||
texture_desc.ArraySize = 1;
|
||||
texture_desc.Format = .DXGI_FORMAT_R32G32B32A32_FLOAT; // @Incomplete
|
||||
texture_desc.Format = .DXGI_FORMAT_R16G16B16A16_FLOAT; // @Incomplete
|
||||
texture_desc.SampleDesc.Count = 1;
|
||||
texture_desc.Usage = .D3D11_USAGE_DEFAULT;
|
||||
texture_desc.BindFlags = D3D11_BIND_FLAG.RENDER_TARGET | D3D11_BIND_FLAG.SHADER_RESOURCE;
|
||||
|
||||
@@ -64,6 +64,8 @@ render_trigger_lines :: () {
|
||||
#if PHYSICS {
|
||||
for e: engine.current_scene.entities {
|
||||
if e.physics.type == .BOX {
|
||||
if !e.physics.render_collider continue;
|
||||
|
||||
color := Color.{0,0,1,1};//e.collider.aabb_color;
|
||||
aabb := AABB.{-e.physics.box.half_extent, e.physics.box.half_extent};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user