2016-01-28 00:58:00 +01:00
|
|
|
#version 450
|
|
|
|
|
2015-12-17 14:25:42 +01:00
|
|
|
#ifdef GL_ES
|
|
|
|
precision mediump float;
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#define PI 3.1415926
|
|
|
|
#define TwoPI (2.0 * PI)
|
|
|
|
|
|
|
|
uniform sampler2D envmap;
|
2016-03-29 16:50:51 +02:00
|
|
|
// uniform sampler2D tex;
|
2015-12-17 14:25:42 +01:00
|
|
|
|
2016-02-08 12:03:20 +01:00
|
|
|
in vec3 normal;
|
2016-03-29 16:50:51 +02:00
|
|
|
// in vec2 texCoord;
|
2015-12-17 14:25:42 +01:00
|
|
|
|
2016-02-08 12:03:20 +01:00
|
|
|
vec2 envMapEquirect(vec3 normal) {
|
|
|
|
float phi = acos(normal.z);
|
2016-02-13 14:22:04 +01:00
|
|
|
float theta = atan(-normal.y, normal.x) + PI;
|
2016-01-28 00:58:00 +01:00
|
|
|
return vec2(theta / TwoPI, phi / PI);
|
2015-12-17 14:25:42 +01:00
|
|
|
}
|
|
|
|
|
2016-01-24 22:32:51 +01:00
|
|
|
void main() {
|
2016-03-29 16:50:51 +02:00
|
|
|
// if (texture(tex, texCoord).a == 0.0) {
|
|
|
|
// discard;
|
|
|
|
// }
|
|
|
|
|
2016-02-08 12:03:20 +01:00
|
|
|
vec3 n = normalize(normal);
|
2016-02-10 18:47:49 +01:00
|
|
|
gl_FragColor = texture(envmap, envMapEquirect(n));
|
2015-12-17 14:25:42 +01:00
|
|
|
}
|