summaryrefslogtreecommitdiff
path: root/wave-sim/resources/shaders/shader.frag
blob: e4cf7186c7276f2c73216ed9f400ddc292e8879e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#version 330 core
out vec4 fragColor;

// Additional information for lighting
in vec4 normal_worldSpace;
in vec4 position_worldSpace;
in vec4 force_worldSpace;

uniform int wire = 0;
uniform float red = 1.0;
uniform float green = 1.0;
uniform float blue = 1.0;
uniform float alpha = 1.0;
uniform int displayForce = 0;

void main() {
    if (wire == 1) {
        fragColor = vec4(0.0, 0.0, 0.0, 1);
        return;
    }
    vec4 lightPos   = vec4(-2.0, 2.0, -3.0 , 1.0);
    vec3 lightColor = vec3(1.0f, alpha, 0.0f);
    vec4 lightDir   = normalize(-lightPos + position_worldSpace);
    float c = clamp(dot(-normal_worldSpace, lightDir), 0, 1);

    if(displayForce == 1) {
        fragColor = force_worldSpace;
        return;
    }

    float r = red;
    float g = green;
    float b = blue;

//    if (displayForce == 1 && wire == 0) {
//        r = force_worldSpace[0];
//        g = force_worldSpace[1];
//        b = force_worldSpace[2];
//    }

    fragColor = vec4(r * c * lightColor[0], g * c * lightColor[0], b * c * lightColor[0], 1);

}