diff options
| author | Patrick Schönberger | 2021-02-02 23:18:31 +0100 |
|---|---|---|
| committer | Patrick Schönberger | 2021-02-02 23:18:31 +0100 |
| commit | 9d10826ccb5d1f8a3821d4d2f4242c401146d12d (patch) | |
| tree | 14e27c325e7da6b63a476bf541b076a7c7e60b58 /shaders | |
| parent | 7afef4c11451100fa379bba1fe78122428d8d663 (diff) | |
| download | subsurface_scattering-9d10826ccb5d1f8a3821d4d2f4242c401146d12d.tar.gz subsurface_scattering-9d10826ccb5d1f8a3821d4d2f4242c401146d12d.zip | |
render to framebufer
Diffstat (limited to 'shaders')
| -rw-r--r-- | shaders/fbo_frag.glsl | 13 | ||||
| -rw-r--r-- | shaders/fbo_vert.glsl | 11 | ||||
| -rw-r--r-- | shaders/frag.glsl | 11 | ||||
| -rw-r--r-- | shaders/vert.glsl | 2 |
4 files changed, 34 insertions, 3 deletions
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 +}
|
