HDR skybox

This commit is contained in:
2023-06-02 18:01:45 +02:00
parent 5006149c8d
commit 6fd22a85d8
11 changed files with 326 additions and 5 deletions

22
Shaders/HDRMap.fs Normal file
View File

@ -0,0 +1,22 @@
#version 460 core
out vec4 FragColor;
in vec3 localPos;
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(localPos);
vec3 color = texture(equirectangularMap, uv).rgb;
FragColor = vec4(color,1.0);
}

12
Shaders/HDRMap.vs Normal file
View File

@ -0,0 +1,12 @@
#version 460 core
layout (location = 0) in vec3 aPos;
out vec3 localPos;
uniform mat4 projection;
uniform mat4 view;
void main(){
localPos = aPos;
gl_Position = projection * view * vec4(localPos, 1.0);
}

16
Shaders/HDRSkybox.fs Normal file
View File

@ -0,0 +1,16 @@
#version 460 core
out vec4 FragColor;
in vec3 localPos;
uniform samplerCube environmentMap;
void main(){
vec3 envColor = texture(environmentMap, localPos).rgb;
envColor = envColor /(envColor + vec3(1.0));
envColor = pow(envColor, vec3(1.0/2.2));
FragColor = vec4(envColor,1.0);
}

16
Shaders/HDRSkybox.vs Normal file
View File

@ -0,0 +1,16 @@
#version 460 core
layout (location = 0) in vec3 aPos;
uniform mat4 projection;
uniform mat4 view;
out vec3 localPos;
void main(){
localPos = aPos;
mat4 rotView = mat4(mat3(view));
vec4 clipPos = projection * rotView * vec4(localPos,1.0);
gl_Position = clipPos.xyww;
}