43 lines
1.4 KiB
Text
43 lines
1.4 KiB
Text
![]() |
#extension GL_GOOGLE_include_directive : enable
|
||
|
|
||
|
#include "atmosphere.glsl"
|
||
|
|
||
|
layout (location = 0) in vec2 inUV;
|
||
|
|
||
|
layout (location = 0) out vec4 outColor;
|
||
|
|
||
|
layout(push_constant, binding = 1) uniform PushConstant{
|
||
|
mat4 view;
|
||
|
vec4 aspectFovY, sunPosition;
|
||
|
};
|
||
|
|
||
|
vec3 skyRay (vec2 Texcoord) {
|
||
|
float d = 0.5 / tan(aspectFovY.y/2.0);
|
||
|
return normalize(vec3((Texcoord.x - 0.5) * aspectFovY.x,
|
||
|
Texcoord.y - 0.5,
|
||
|
-d));
|
||
|
}
|
||
|
|
||
|
void main() {
|
||
|
vec3 vPosition = mat3(view) * skyRay(inUV);
|
||
|
|
||
|
vec3 color = atmosphere(
|
||
|
normalize(vPosition), // normalized ray direction
|
||
|
vec3(0,6372e3,0), // ray origin
|
||
|
sunPosition.xyz, // position of the sun
|
||
|
22.0, // intensity of the sun
|
||
|
6371e3, // radius of the planet in meters
|
||
|
6471e3, // radius of the atmosphere in meters
|
||
|
vec3(5.5e-6, 13.0e-6, 22.4e-6), // Rayleigh scattering coefficient
|
||
|
21e-6, // Mie scattering coefficient
|
||
|
8e3, // Rayleigh scale height
|
||
|
1.2e3, // Mie scale height
|
||
|
0.758 // Mie preferred scattering direction
|
||
|
);
|
||
|
|
||
|
// Apply exposure.
|
||
|
color = 1.0 - exp(-1.0 * color);
|
||
|
|
||
|
outColor = vec4(color, 1);
|
||
|
}
|