diff options
author | Sebastian Park <SebPark03@gmail.com> | 2024-04-10 02:51:43 -0400 |
---|---|---|
committer | Sebastian Park <SebPark03@gmail.com> | 2024-04-10 02:51:43 -0400 |
commit | 0b0629450e2553b2f890094290528b565d607e38 (patch) | |
tree | 16d34a6123f3e50153b5fcd6466de5057cc960a0 /wave-sim/resources/shaders/shader.frag | |
parent | ad313dcf57437ec0d40dddbce622a11c2bc2bc23 (diff) | |
parent | 47cd8a592ecad52c1b01f27d23476c0a5afeb7f1 (diff) |
Merge branch 'shaders'
Diffstat (limited to 'wave-sim/resources/shaders/shader.frag')
-rwxr-xr-x | wave-sim/resources/shaders/shader.frag | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/wave-sim/resources/shaders/shader.frag b/wave-sim/resources/shaders/shader.frag new file mode 100755 index 0000000..e4cf718 --- /dev/null +++ b/wave-sim/resources/shaders/shader.frag @@ -0,0 +1,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); + +} |