From 86df8b19063f73b7803daaa1e5b21da33ac976ed Mon Sep 17 00:00:00 2001 From: hachem Date: Mon, 25 Aug 2025 11:28:49 +0200 Subject: [fix]: QOL improvements --- Assets/HDRI/night_sky.hdr | Bin 0 -> 51708063 bytes Assets/Shaders/ComputeTextureQuad.glsl | 28 ---------------------- Assets/Shaders/EquirectToCubemap.glsl | 30 ++++++++++++++---------- Assets/Shaders/Grid.glsl | 41 +++++++++++++++++++++++++++++++++ Assets/Shaders/TexturedQuad.glsl | 28 ++++++++++++++++++++++ 5 files changed, 87 insertions(+), 40 deletions(-) create mode 100644 Assets/HDRI/night_sky.hdr delete mode 100644 Assets/Shaders/ComputeTextureQuad.glsl create mode 100644 Assets/Shaders/Grid.glsl create mode 100644 Assets/Shaders/TexturedQuad.glsl (limited to 'Assets') diff --git a/Assets/HDRI/night_sky.hdr b/Assets/HDRI/night_sky.hdr new file mode 100644 index 0000000..b473659 Binary files /dev/null and b/Assets/HDRI/night_sky.hdr differ diff --git a/Assets/Shaders/ComputeTextureQuad.glsl b/Assets/Shaders/ComputeTextureQuad.glsl deleted file mode 100644 index 95f433d..0000000 --- a/Assets/Shaders/ComputeTextureQuad.glsl +++ /dev/null @@ -1,28 +0,0 @@ -#type vertex - -#version 330 core - -layout (location = 0) in vec2 a_Pos; -layout (location = 1) in vec2 a_TexCoord; - -out vec2 v_TexCoord; - -void main() -{ - gl_Position = vec4(a_Pos, 0.0, 1.0); - v_TexCoord = a_TexCoord; -} - -#type fragment - -#version 330 core - -in vec2 v_TexCoord; -out vec4 o_FragColor; - -uniform sampler2D u_ScreenTexture; - -void main() -{ - o_FragColor = texture(u_ScreenTexture, v_TexCoord); -} diff --git a/Assets/Shaders/EquirectToCubemap.glsl b/Assets/Shaders/EquirectToCubemap.glsl index 2b99c9b..690706f 100644 --- a/Assets/Shaders/EquirectToCubemap.glsl +++ b/Assets/Shaders/EquirectToCubemap.glsl @@ -1,23 +1,29 @@ #type vertex #version 330 core -layout (location = 0) in vec3 aPos; -out vec3 WorldPos; -uniform mat4 projection; -uniform mat4 view; + +layout (location = 0) in vec3 a_Pos; +out vec3 v_WorldPos; + +uniform mat4 u_Projection; +uniform mat4 u_View; + void main() { - WorldPos = aPos; - gl_Position = projection * view * vec4(WorldPos, 1.0); + v_WorldPos = a_Pos; + gl_Position = u_Projection * u_View * vec4(v_WorldPos, 1.0); } #type fragment #version 330 core -out vec4 FragColor; -in vec3 WorldPos; -uniform sampler2D equirectangularMap; + +out vec4 o_FragColor; +in vec3 v_WorldPos; + +uniform sampler2D u_EquirectangularMap; const vec2 invAtan = vec2(0.1591, 0.3183); + vec2 SampleSphericalMap(vec3 v) { vec2 uv = vec2(atan(v.z, v.x), asin(v.y)); @@ -27,7 +33,7 @@ vec2 SampleSphericalMap(vec3 v) } void main() { - vec2 uv = SampleSphericalMap(normalize(WorldPos)); - vec3 color = texture(equirectangularMap, uv).rgb; - FragColor = vec4(color, 1.0); + vec2 uv = SampleSphericalMap(normalize(v_WorldPos)); + vec3 color = texture(u_EquirectangularMap, uv).rgb; + o_FragColor = vec4(color, 1.0); } diff --git a/Assets/Shaders/Grid.glsl b/Assets/Shaders/Grid.glsl new file mode 100644 index 0000000..32c091a --- /dev/null +++ b/Assets/Shaders/Grid.glsl @@ -0,0 +1,41 @@ +#type vertex + +#version 330 core + +layout(location = 0) in vec3 a_Position; + +uniform mat4 u_ViewProjection; +uniform mat4 u_Transform; +uniform float u_GridSize; + +void main() +{ + // Scale the grid based on the grid size uniform + vec3 scaledPosition = a_Position * (u_GridSize / 50.0); + gl_Position = u_ViewProjection * u_Transform * vec4(scaledPosition, 1.0); +} + +#type fragment + +#version 330 core + +uniform vec3 u_GridColor; +uniform float u_GridAlpha; +uniform float u_GridSize; +uniform vec3 u_CameraPos; + +out vec4 o_FragColor; + +void main() +{ + float distance = length(u_CameraPos); + float fadeFactor = 1.0 - clamp(distance / 100.0, 0.0, 0.8); + + vec3 color = u_GridColor; + float alpha = u_GridAlpha * fadeFactor; + + float gridFade = 1.0 - clamp(distance / 50.0, 0.0, 0.9); + alpha *= gridFade; + + o_FragColor = vec4(color, alpha); +} diff --git a/Assets/Shaders/TexturedQuad.glsl b/Assets/Shaders/TexturedQuad.glsl new file mode 100644 index 0000000..95f433d --- /dev/null +++ b/Assets/Shaders/TexturedQuad.glsl @@ -0,0 +1,28 @@ +#type vertex + +#version 330 core + +layout (location = 0) in vec2 a_Pos; +layout (location = 1) in vec2 a_TexCoord; + +out vec2 v_TexCoord; + +void main() +{ + gl_Position = vec4(a_Pos, 0.0, 1.0); + v_TexCoord = a_TexCoord; +} + +#type fragment + +#version 330 core + +in vec2 v_TexCoord; +out vec4 o_FragColor; + +uniform sampler2D u_ScreenTexture; + +void main() +{ + o_FragColor = texture(u_ScreenTexture, v_TexCoord); +} -- cgit v1.3