mirror of
https://github.com/johndoe6345789/SDL3CPlusPlus.git
synced 2026-04-24 13:44:58 +00:00
feat: Update colors and add texture effects for floor, ceiling, and wall shaders
This commit is contained in:
@@ -576,9 +576,9 @@ local function create_room_objects()
|
||||
local wall_outer_edge = wall_offset + room.wall_thickness
|
||||
log_debug("Room walls: inner=%.2f outer=%.2f", wall_inner_edge, wall_outer_edge)
|
||||
|
||||
local floor_color = {0.08, 0.26, 0.55}
|
||||
local wall_color = {0.78, 0.38, 0.18}
|
||||
local ceiling_color = {0.72, 0.9, 0.96}
|
||||
local floor_color = {0.18, 0.45, 0.25}
|
||||
local wall_color = {0.75, 0.35, 0.2}
|
||||
local ceiling_color = {0.85, 0.85, 0.76}
|
||||
|
||||
local objects = {
|
||||
create_static_cube({0.0, floor_center_y, 0.0},
|
||||
|
||||
@@ -4,6 +4,12 @@ layout(location = 0) in vec3 fragColor;
|
||||
layout(location = 1) in vec3 fragWorldPos;
|
||||
layout(location = 0) out vec4 outColor;
|
||||
|
||||
float hash(vec2 p) {
|
||||
return fract(sin(dot(p, vec2(63.1, 157.9))) * 43758.5453123);
|
||||
}
|
||||
|
||||
const vec3 SURFACE_TINT = vec3(0.9, 0.93, 0.8);
|
||||
|
||||
const vec3 LIGHT_POSITIONS[8] = vec3[8](
|
||||
vec3(13.0, 4.5, 13.0),
|
||||
vec3(-13.0, 4.5, 13.0),
|
||||
@@ -27,7 +33,14 @@ float calculateAttenuation(float distance) {
|
||||
}
|
||||
|
||||
void main() {
|
||||
vec3 baseColor = clamp(fragColor * 1.15, 0.0, 1.0);
|
||||
vec3 baseColor = clamp(fragColor * 1.15 * SURFACE_TINT, 0.0, 1.0);
|
||||
vec2 gridUv = fragWorldPos.xz * 0.45;
|
||||
vec2 grid = abs(fract(gridUv) - 0.5);
|
||||
float gridLine = step(0.48, max(grid.x, grid.y));
|
||||
float speckle = hash(floor(fragWorldPos.xz * 3.0));
|
||||
baseColor *= mix(0.94, 1.04, speckle);
|
||||
baseColor *= mix(1.0, 0.84, gridLine);
|
||||
|
||||
vec3 ambient = AMBIENT_STRENGTH * baseColor;
|
||||
vec3 lighting = vec3(0.0);
|
||||
|
||||
|
||||
Binary file not shown.
@@ -4,6 +4,12 @@ layout(location = 0) in vec3 fragColor;
|
||||
layout(location = 1) in vec3 fragWorldPos;
|
||||
layout(location = 0) out vec4 outColor;
|
||||
|
||||
float hash(vec2 p) {
|
||||
return fract(sin(dot(p, vec2(127.1, 311.7))) * 43758.5453123);
|
||||
}
|
||||
|
||||
const vec3 SURFACE_TINT = vec3(0.35, 0.6, 0.35);
|
||||
|
||||
const vec3 LIGHT_POSITIONS[8] = vec3[8](
|
||||
vec3(13.0, 4.5, 13.0),
|
||||
vec3(-13.0, 4.5, 13.0),
|
||||
@@ -27,7 +33,15 @@ float calculateAttenuation(float distance) {
|
||||
}
|
||||
|
||||
void main() {
|
||||
vec3 baseColor = clamp(fragColor * 1.1, 0.0, 1.0);
|
||||
vec3 baseColor = clamp(fragColor * 1.1 * SURFACE_TINT, 0.0, 1.0);
|
||||
float checkerScale = 0.55;
|
||||
float cx = step(0.5, fract(fragWorldPos.x * checkerScale));
|
||||
float cz = step(0.5, fract(fragWorldPos.z * checkerScale));
|
||||
float checker = abs(cx - cz);
|
||||
float grit = hash(floor(fragWorldPos.xz * 2.2));
|
||||
float pattern = mix(0.82, 1.08, checker) * mix(0.96, 1.04, grit);
|
||||
baseColor *= pattern;
|
||||
|
||||
vec3 ambient = AMBIENT_STRENGTH * baseColor;
|
||||
vec3 lighting = vec3(0.0);
|
||||
|
||||
|
||||
Binary file not shown.
@@ -4,6 +4,12 @@ layout(location = 0) in vec3 fragColor;
|
||||
layout(location = 1) in vec3 fragWorldPos;
|
||||
layout(location = 0) out vec4 outColor;
|
||||
|
||||
float hash(vec2 p) {
|
||||
return fract(sin(dot(p, vec2(91.7, 127.3))) * 43758.5453123);
|
||||
}
|
||||
|
||||
const vec3 SURFACE_TINT = vec3(0.9, 0.55, 0.3);
|
||||
|
||||
const vec3 LIGHT_POSITIONS[8] = vec3[8](
|
||||
vec3(13.0, 4.5, 13.0),
|
||||
vec3(-13.0, 4.5, 13.0),
|
||||
@@ -27,7 +33,16 @@ float calculateAttenuation(float distance) {
|
||||
}
|
||||
|
||||
void main() {
|
||||
vec3 baseColor = clamp(fragColor * 1.05, 0.0, 1.0);
|
||||
vec3 baseColor = clamp(fragColor * 1.05 * SURFACE_TINT, 0.0, 1.0);
|
||||
float axisSelector = step(abs(fragWorldPos.z), abs(fragWorldPos.x));
|
||||
float coord = mix(fragWorldPos.z, fragWorldPos.x, axisSelector);
|
||||
float plankScale = 0.4;
|
||||
float plank = abs(fract(coord * plankScale) - 0.5);
|
||||
float groove = smoothstep(0.46, 0.5, plank);
|
||||
float grain = hash(floor(vec2(coord * 1.2, fragWorldPos.y * 2.0)));
|
||||
baseColor *= mix(0.92, 1.05, grain);
|
||||
baseColor *= mix(1.0, 0.78, groove);
|
||||
|
||||
vec3 ambient = AMBIENT_STRENGTH * baseColor;
|
||||
vec3 lighting = vec3(0.0);
|
||||
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user