Gamma correction corrected....
This commit is contained in:
@@ -81,6 +81,7 @@ MAX_CHILDREN :: 16;
|
|||||||
dynamic_friction: float;
|
dynamic_friction: float;
|
||||||
restitution: float;
|
restitution: float;
|
||||||
|
|
||||||
|
render_collider: bool;
|
||||||
collider_color: Color;
|
collider_color: Color;
|
||||||
|
|
||||||
lock: Physics_Lock;
|
lock: Physics_Lock;
|
||||||
|
|||||||
@@ -42,13 +42,6 @@ Vector3i :: struct {
|
|||||||
z: int;
|
z: int;
|
||||||
}
|
}
|
||||||
|
|
||||||
Color :: #type,isa Vector4;
|
|
||||||
|
|
||||||
Colored_Vert :: struct {
|
|
||||||
position: Vector2;
|
|
||||||
color : Color;
|
|
||||||
}
|
|
||||||
|
|
||||||
AABB :: struct {
|
AABB :: struct {
|
||||||
min: Vector3 = .{FLOAT32_INFINITY, FLOAT32_INFINITY, FLOAT32_INFINITY};
|
min: Vector3 = .{FLOAT32_INFINITY, FLOAT32_INFINITY, FLOAT32_INFINITY};
|
||||||
max: 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;
|
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 "PCG";
|
||||||
#import "Math";
|
#import "Math";
|
||||||
#load "frustum.jai";
|
#load "frustum.jai";
|
||||||
|
|||||||
@@ -228,7 +228,9 @@ generate_member_ui_imgui :: (type: *Type_Info_Struct, builder: *String_Builder,
|
|||||||
} else if info_struct.name == "Vector3" {
|
} else if info_struct.name == "Vector3" {
|
||||||
print_to_builder(builder, "\tImGui.DragFloat3(tprint_c(\"%\"), *e.%.component);\n", new_path, new_path);
|
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" {
|
} 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 {
|
} else {
|
||||||
generate_member_ui_imgui(info_struct, builder, new_path);
|
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.Height = height;
|
||||||
texture_desc.MipLevels = 1;
|
texture_desc.MipLevels = 1;
|
||||||
texture_desc.ArraySize = 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.SampleDesc.Count = 1;
|
||||||
texture_desc.Usage = .D3D11_USAGE_DEFAULT;
|
texture_desc.Usage = .D3D11_USAGE_DEFAULT;
|
||||||
texture_desc.BindFlags = D3D11_BIND_FLAG.RENDER_TARGET | D3D11_BIND_FLAG.SHADER_RESOURCE;
|
texture_desc.BindFlags = D3D11_BIND_FLAG.RENDER_TARGET | D3D11_BIND_FLAG.SHADER_RESOURCE;
|
||||||
|
|||||||
@@ -64,6 +64,8 @@ render_trigger_lines :: () {
|
|||||||
#if PHYSICS {
|
#if PHYSICS {
|
||||||
for e: engine.current_scene.entities {
|
for e: engine.current_scene.entities {
|
||||||
if e.physics.type == .BOX {
|
if e.physics.type == .BOX {
|
||||||
|
if !e.physics.render_collider continue;
|
||||||
|
|
||||||
color := Color.{0,0,1,1};//e.collider.aabb_color;
|
color := Color.{0,0,1,1};//e.collider.aabb_color;
|
||||||
aabb := AABB.{-e.physics.box.half_extent, e.physics.box.half_extent};
|
aabb := AABB.{-e.physics.box.half_extent, e.physics.box.half_extent};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user