HDR skybox
This commit is contained in:
		
							
								
								
									
										22
									
								
								Shaders/HDRMap.fs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								Shaders/HDRMap.fs
									
									
									
									
									
										Normal 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
									
								
							
							
						
						
									
										12
									
								
								Shaders/HDRMap.vs
									
									
									
									
									
										Normal 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
									
								
							
							
						
						
									
										16
									
								
								Shaders/HDRSkybox.fs
									
									
									
									
									
										Normal 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
									
								
							
							
						
						
									
										16
									
								
								Shaders/HDRSkybox.vs
									
									
									
									
									
										Normal 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;
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user