From 0d819f2b9a71e862bce8799c6b0c1304e62219b3 Mon Sep 17 00:00:00 2001 From: hachem Date: Fri, 22 Aug 2025 12:24:05 +0200 Subject: [add]: add HDRI --- Assets/Shaders/EquirectToCubemap.glsl | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 Assets/Shaders/EquirectToCubemap.glsl (limited to 'Assets/Shaders/EquirectToCubemap.glsl') diff --git a/Assets/Shaders/EquirectToCubemap.glsl b/Assets/Shaders/EquirectToCubemap.glsl new file mode 100644 index 0000000..2b99c9b --- /dev/null +++ b/Assets/Shaders/EquirectToCubemap.glsl @@ -0,0 +1,33 @@ +#type vertex + +#version 330 core +layout (location = 0) in vec3 aPos; +out vec3 WorldPos; +uniform mat4 projection; +uniform mat4 view; +void main() +{ + WorldPos = aPos; + gl_Position = projection * view * vec4(WorldPos, 1.0); +} + +#type fragment + +#version 330 core +out vec4 FragColor; +in vec3 WorldPos; +uniform sampler2D equirectangularMap; +const vec2 invAtan = vec2(0.1591, 0.3183); +vec2 SampleSphericalMap(vec3 v) +{ + vec2 uv = vec2(atan(v.z, v.x), asin(v.y)); + uv *= invAtan; + uv += 0.5; + return uv; +} +void main() +{ + vec2 uv = SampleSphericalMap(normalize(WorldPos)); + vec3 color = texture(equirectangularMap, uv).rgb; + FragColor = vec4(color, 1.0); +} -- cgit v1.3