]> git.tdb.fi Git - libs/gl.git/blob - shaderlib/environment.glsl
Check the flat qualifier from the correct member
[libs/gl.git] / shaderlib / environment.glsl
1 layout(set=0) uniform EnvMap
2 {
3         mat3 env_world_matrix;
4 };
5
6 layout(set=0) uniform samplerCube environment_map;
7 layout(set=0) uniform samplerCube irradiance_map;
8
9 #pragma MSP stage(fragment)
10 virtual vec3 get_environment_sample(vec3 direction, float roughness)
11 {
12         float lod = (2-roughness)*roughness*(textureQueryLevels(environment_map)-1);
13         return textureLod(environment_map, env_world_matrix*direction, lod).rgb;
14 }
15
16 virtual vec3 get_reflection(vec3 normal, vec3 look)
17 {
18         vec3 reflect_dir = reflect(look, normal);
19         return get_environment_sample(reflect_dir, 0.0);
20 }
21
22 virtual vec3 get_irradiance_sample(vec3 normal)
23 {
24         return texture(irradiance_map, env_world_matrix*normal).rgb;
25 }
26