summaryrefslogtreecommitdiff
path: root/resources/shaders/shader.frag
diff options
context:
space:
mode:
authorSebastian Park <SebPark03@gmail.com>2024-04-10 02:45:04 -0400
committerSebastian Park <SebPark03@gmail.com>2024-04-10 02:45:04 -0400
commit47cd8a592ecad52c1b01f27d23476c0a5afeb7f1 (patch)
tree36b9abaff4e92a4a6df0d5ecb0e43e05c3aefd48 /resources/shaders/shader.frag
parentfd19124693bb32835ad97802ba1950cd5202dbd2 (diff)
initial
Diffstat (limited to 'resources/shaders/shader.frag')
-rwxr-xr-xresources/shaders/shader.frag10
1 files changed, 8 insertions, 2 deletions
diff --git a/resources/shaders/shader.frag b/resources/shaders/shader.frag
index de063c2..d2183cc 100755
--- a/resources/shaders/shader.frag
+++ b/resources/shaders/shader.frag
@@ -2,6 +2,9 @@
out vec4 fragColor;
in vec3 normal_cameraSpace;
+in vec3 camera_worldSpace;
+in vec3 normal_worldSpace;
+in vec3 pos;
uniform int wire = 0;
uniform float red = 1.0;
@@ -12,7 +15,10 @@ uniform float alpha = 1.0;
void main() {
// Do lighting in camera space
vec3 lightDir = normalize(vec3(0, 0.5, 1));
- float c = clamp(dot(normal_cameraSpace, lightDir), 0, 1);
+ float d = clamp(dot(normal_cameraSpace, lightDir), 0, 1);
+ vec3 reflectedLight = lightDir - 2 * dot(lightDir, normal_worldSpace) * normal_worldSpace;
+ vec3 posToCam = normalize(camera_worldSpace - pos);
+ float spec = pow(dot(posToCam, reflectedLight), 2.f);
- fragColor = vec4(red * c, green * c, blue * c, 1);
+ fragColor = clamp(0.5f * vec4(red * d, green * d, blue * d, 0.5f) + 0.5f * vec4(1, 1, 1, 1) * spec, 0, 1);
}