From 9d10826ccb5d1f8a3821d4d2f4242c401146d12d Mon Sep 17 00:00:00 2001 From: Patrick Schönberger Date: Tue, 2 Feb 2021 23:18:31 +0100 Subject: render to framebufer --- shaders/fbo_frag.glsl | 13 +++++++++++++ shaders/fbo_vert.glsl | 11 +++++++++++ shaders/frag.glsl | 11 +++++++++-- shaders/vert.glsl | 2 +- 4 files changed, 34 insertions(+), 3 deletions(-) create mode 100644 shaders/fbo_frag.glsl create mode 100644 shaders/fbo_vert.glsl (limited to 'shaders') diff --git a/shaders/fbo_frag.glsl b/shaders/fbo_frag.glsl new file mode 100644 index 0000000..cf1fafa --- /dev/null +++ b/shaders/fbo_frag.glsl @@ -0,0 +1,13 @@ +#version 330 core +out vec4 FragColor; + +in vec2 TexCoords; + +uniform sampler2D screenTexture; + +void main() +{ + FragColor = vec4( + texture(screenTexture, TexCoords).rgb, + 1.0); +} diff --git a/shaders/fbo_vert.glsl b/shaders/fbo_vert.glsl new file mode 100644 index 0000000..fb80df5 --- /dev/null +++ b/shaders/fbo_vert.glsl @@ -0,0 +1,11 @@ +#version 330 core +layout (location = 0) in vec2 aPos; +layout (location = 1) in vec2 aTexCoords; + +out vec2 TexCoords; + +void main() +{ + gl_Position = vec4(aPos.x, aPos.y, 0.0, 1.0); + TexCoords = aTexCoords; +} diff --git a/shaders/frag.glsl b/shaders/frag.glsl index a92699c..a70915a 100644 --- a/shaders/frag.glsl +++ b/shaders/frag.glsl @@ -8,6 +8,7 @@ out vec4 FragColor; uniform vec3 objectColor; uniform vec3 lightColor; uniform vec3 lightPos; +uniform vec3 viewPos; void main() { @@ -20,6 +21,12 @@ void main() float ambientStrength = 0.1; vec3 ambient = ambientStrength * lightColor; - vec3 result = (ambient + diffuse) * objectColor; + float specularStrength = 0.5; + vec3 viewDir = normalize(viewPos - FragPos); + vec3 reflectDir = reflect(-lightDir, norm); + float spec = pow(max(dot(viewDir, reflectDir), 0.0), 32); + vec3 specular = specularStrength * spec * lightColor; + + vec3 result = (ambient + diffuse + specular) * objectColor; FragColor = vec4(result, 1.0f); -} \ No newline at end of file +} diff --git a/shaders/vert.glsl b/shaders/vert.glsl index fc3721a..6f48573 100644 --- a/shaders/vert.glsl +++ b/shaders/vert.glsl @@ -15,4 +15,4 @@ void main() gl_Position = projection * view * model * vec4(pos, 1.0); FragPos = vec3(model * vec4(pos, 1)); Normal = normal; -} \ No newline at end of file +} -- cgit v1.2.3