2016-05-08 09:54:36 +02:00
|
|
|
#version 310 es
|
2016-05-08 11:11:28 +02:00
|
|
|
precision highp float;
|
2016-05-08 09:54:36 +02:00
|
|
|
|
2016-05-08 11:11:28 +02:00
|
|
|
layout(std140, set = 0, binding = 0) uniform UBO
|
2016-05-08 09:54:36 +02:00
|
|
|
{
|
|
|
|
float time;
|
2019-03-02 11:53:14 +01:00
|
|
|
float yflip;
|
2016-05-08 09:54:36 +02:00
|
|
|
} constants;
|
|
|
|
|
|
|
|
layout(location = 0) in vec3 vEC;
|
|
|
|
layout(location = 0) out vec4 FragColor;
|
|
|
|
|
|
|
|
void main()
|
|
|
|
{
|
|
|
|
const vec3 up = vec3(0.0, 0.0, 1.0);
|
|
|
|
vec3 x = dFdx(vEC);
|
|
|
|
vec3 y = dFdy(vEC);
|
2019-03-02 11:53:14 +01:00
|
|
|
y *= constants.yflip;
|
2016-05-08 09:54:36 +02:00
|
|
|
vec3 normal = normalize(cross(x, y));
|
|
|
|
float c = 1.0 - dot(normal, up);
|
|
|
|
c = (1.0 - cos(c * c)) / 3.0;
|
2017-05-22 01:29:56 +02:00
|
|
|
FragColor = vec4(c, c, c, 1.0);
|
2016-05-08 09:54:36 +02:00
|
|
|
}
|