summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRay <[email protected]>2017-05-15 22:48:04 +0200
committerRay <[email protected]>2017-05-15 22:48:04 +0200
commitaba25e9ba379cdf2e68b65f55dd08ab4e0d713d8 (patch)
tree7a280f0f2a422a938aba1e93fcff83340e6504a0
parent5f09c71f983be066207522818f7be504a1b4592e (diff)
downloadraylib-aba25e9ba379cdf2e68b65f55dd08ab4e0d713d8.tar.gz
raylib-aba25e9ba379cdf2e68b65f55dd08ab4e0d713d8.zip
Move shaders to examples
-rw-r--r--examples/shaders/resources/shaders/glsl100/base.fs (renamed from shaders/glsl100/template.fs)1
-rw-r--r--examples/shaders/resources/shaders/glsl100/blur.fs (renamed from shaders/glsl100/blur.fs)0
-rw-r--r--examples/shaders/resources/shaders/glsl100/cross_hatching.fs (renamed from shaders/glsl100/cross_hatching.fs)0
-rw-r--r--examples/shaders/resources/shaders/glsl100/cross_stitching.fs (renamed from shaders/glsl100/cross_stitching.fs)0
-rw-r--r--examples/shaders/resources/shaders/glsl100/dream_vision.fs (renamed from shaders/glsl100/dream_vision.fs)0
-rw-r--r--examples/shaders/resources/shaders/glsl100/fisheye.fs (renamed from shaders/glsl100/fisheye.fs)0
-rw-r--r--examples/shaders/resources/shaders/glsl100/pixel.fs (renamed from shaders/glsl100/pixel.fs)0
-rw-r--r--examples/shaders/resources/shaders/glsl100/posterization.fs (renamed from shaders/glsl100/posterization.fs)0
-rw-r--r--examples/shaders/resources/shaders/glsl100/predator.fs (renamed from shaders/glsl100/predator.fs)0
-rw-r--r--examples/shaders/resources/shaders/glsl100/scanlines.fs (renamed from shaders/glsl100/scanlines.fs)0
-rw-r--r--examples/shaders/resources/shaders/glsl100/sobel.fs41
-rw-r--r--examples/shaders/resources/shaders/glsl100/swirl.fs5
-rw-r--r--examples/shaders/resources/shaders/glsl330/base.fs (renamed from shaders/glsl330/template.fs)1
-rw-r--r--examples/shaders/resources/shaders/glsl330/blur.fs (renamed from shaders/glsl330/blur.fs)0
-rw-r--r--examples/shaders/resources/shaders/glsl330/cross_hatching.fs (renamed from shaders/glsl330/cross_hatching.fs)0
-rw-r--r--examples/shaders/resources/shaders/glsl330/cross_stitching.fs (renamed from shaders/glsl330/cross_stitching.fs)0
-rw-r--r--examples/shaders/resources/shaders/glsl330/depth.fs2
-rw-r--r--examples/shaders/resources/shaders/glsl330/dream_vision.fs (renamed from shaders/glsl330/dream_vision.fs)0
-rw-r--r--examples/shaders/resources/shaders/glsl330/fisheye.fs (renamed from shaders/glsl330/fisheye.fs)0
-rw-r--r--examples/shaders/resources/shaders/glsl330/overdraw.fs26
-rw-r--r--examples/shaders/resources/shaders/glsl330/pixelizer.fs (renamed from shaders/glsl330/pixel.fs)0
-rw-r--r--examples/shaders/resources/shaders/glsl330/posterization.fs (renamed from shaders/glsl330/posterization.fs)0
-rw-r--r--examples/shaders/resources/shaders/glsl330/predator.fs (renamed from shaders/glsl330/predator.fs)0
-rw-r--r--examples/shaders/resources/shaders/glsl330/scanlines.fs (renamed from shaders/glsl330/scanlines.fs)0
-rw-r--r--examples/shaders/resources/shaders/glsl330/sobel.fs41
-rw-r--r--examples/shaders/resources/shaders/glsl330/swirl.fs5
-rw-r--r--shaders/glsl100/base.vs26
-rw-r--r--shaders/glsl100/bloom.fs39
-rw-r--r--shaders/glsl100/grayscale.fs25
-rw-r--r--shaders/glsl100/standard.fs150
-rw-r--r--shaders/glsl100/standard.vs23
-rw-r--r--shaders/glsl100/swirl.fs46
-rw-r--r--shaders/glsl330/base.vs26
-rw-r--r--shaders/glsl330/bloom.fs40
-rw-r--r--shaders/glsl330/depth.fs27
-rw-r--r--shaders/glsl330/grayscale.fs26
-rw-r--r--shaders/glsl330/standard.fs150
-rw-r--r--shaders/glsl330/standard.vs23
-rw-r--r--shaders/glsl330/swirl.fs47
39 files changed, 117 insertions, 653 deletions
diff --git a/shaders/glsl100/template.fs b/examples/shaders/resources/shaders/glsl100/base.fs
index c1126423..b004ba0b 100644
--- a/shaders/glsl100/template.fs
+++ b/examples/shaders/resources/shaders/glsl100/base.fs
@@ -11,6 +11,7 @@ uniform sampler2D texture0;
uniform vec4 colDiffuse;
// NOTE: Add here your custom variables
+uniform vec2 resolution = vec2(800, 450);
void main()
{
diff --git a/shaders/glsl100/blur.fs b/examples/shaders/resources/shaders/glsl100/blur.fs
index 1935f080..1935f080 100644
--- a/shaders/glsl100/blur.fs
+++ b/examples/shaders/resources/shaders/glsl100/blur.fs
diff --git a/shaders/glsl100/cross_hatching.fs b/examples/shaders/resources/shaders/glsl100/cross_hatching.fs
index ced0fd63..ced0fd63 100644
--- a/shaders/glsl100/cross_hatching.fs
+++ b/examples/shaders/resources/shaders/glsl100/cross_hatching.fs
diff --git a/shaders/glsl100/cross_stitching.fs b/examples/shaders/resources/shaders/glsl100/cross_stitching.fs
index 67639a55..67639a55 100644
--- a/shaders/glsl100/cross_stitching.fs
+++ b/examples/shaders/resources/shaders/glsl100/cross_stitching.fs
diff --git a/shaders/glsl100/dream_vision.fs b/examples/shaders/resources/shaders/glsl100/dream_vision.fs
index fa9c5b77..fa9c5b77 100644
--- a/shaders/glsl100/dream_vision.fs
+++ b/examples/shaders/resources/shaders/glsl100/dream_vision.fs
diff --git a/shaders/glsl100/fisheye.fs b/examples/shaders/resources/shaders/glsl100/fisheye.fs
index 461e1405..461e1405 100644
--- a/shaders/glsl100/fisheye.fs
+++ b/examples/shaders/resources/shaders/glsl100/fisheye.fs
diff --git a/shaders/glsl100/pixel.fs b/examples/shaders/resources/shaders/glsl100/pixel.fs
index 41ba3ed6..41ba3ed6 100644
--- a/shaders/glsl100/pixel.fs
+++ b/examples/shaders/resources/shaders/glsl100/pixel.fs
diff --git a/shaders/glsl100/posterization.fs b/examples/shaders/resources/shaders/glsl100/posterization.fs
index a7942c82..a7942c82 100644
--- a/shaders/glsl100/posterization.fs
+++ b/examples/shaders/resources/shaders/glsl100/posterization.fs
diff --git a/shaders/glsl100/predator.fs b/examples/shaders/resources/shaders/glsl100/predator.fs
index efa7fe79..efa7fe79 100644
--- a/shaders/glsl100/predator.fs
+++ b/examples/shaders/resources/shaders/glsl100/predator.fs
diff --git a/shaders/glsl100/scanlines.fs b/examples/shaders/resources/shaders/glsl100/scanlines.fs
index 529120d0..529120d0 100644
--- a/shaders/glsl100/scanlines.fs
+++ b/examples/shaders/resources/shaders/glsl100/scanlines.fs
diff --git a/examples/shaders/resources/shaders/glsl100/sobel.fs b/examples/shaders/resources/shaders/glsl100/sobel.fs
new file mode 100644
index 00000000..9617592e
--- /dev/null
+++ b/examples/shaders/resources/shaders/glsl100/sobel.fs
@@ -0,0 +1,41 @@
+#version 330
+
+// Input vertex attributes (from vertex shader)
+in vec2 fragTexCoord;
+in vec4 fragColor;
+
+// Input uniform values
+uniform sampler2D texture0;
+uniform vec4 colDiffuse;
+
+// Output fragment color
+out vec4 finalColor;
+
+// NOTE: Add here your custom variables
+uniform vec2 resolution = vec2(800, 450);
+
+void main()
+{
+ float x = 1.0/resolution.x;
+ float y = 1.0/resolution.y;
+
+ vec4 horizEdge = vec4(0.0);
+ horizEdge -= texture2D(texture0, vec2(fragTexCoord.x - x, fragTexCoord.y - y))*1.0;
+ horizEdge -= texture2D(texture0, vec2(fragTexCoord.x - x, fragTexCoord.y ))*2.0;
+ horizEdge -= texture2D(texture0, vec2(fragTexCoord.x - x, fragTexCoord.y + y))*1.0;
+ horizEdge += texture2D(texture0, vec2(fragTexCoord.x + x, fragTexCoord.y - y))*1.0;
+ horizEdge += texture2D(texture0, vec2(fragTexCoord.x + x, fragTexCoord.y ))*2.0;
+ horizEdge += texture2D(texture0, vec2(fragTexCoord.x + x, fragTexCoord.y + y))*1.0;
+
+ vec4 vertEdge = vec4(0.0);
+ vertEdge -= texture2D(texture0, vec2(fragTexCoord.x - x, fragTexCoord.y - y))*1.0;
+ vertEdge -= texture2D(texture0, vec2(fragTexCoord.x , fragTexCoord.y - y))*2.0;
+ vertEdge -= texture2D(texture0, vec2(fragTexCoord.x + x, fragTexCoord.y - y))*1.0;
+ vertEdge += texture2D(texture0, vec2(fragTexCoord.x - x, fragTexCoord.y + y))*1.0;
+ vertEdge += texture2D(texture0, vec2(fragTexCoord.x , fragTexCoord.y + y))*2.0;
+ vertEdge += texture2D(texture0, vec2(fragTexCoord.x + x, fragTexCoord.y + y))*1.0;
+
+ vec3 edge = sqrt((horizEdge.rgb*horizEdge.rgb) + (vertEdge.rgb*vertEdge.rgb));
+
+ gl_FragColor = vec4(edge, texture2D(texture0, fragTexCoord).a);
+} \ No newline at end of file
diff --git a/examples/shaders/resources/shaders/glsl100/swirl.fs b/examples/shaders/resources/shaders/glsl100/swirl.fs
index ca7668b2..b969aab7 100644
--- a/examples/shaders/resources/shaders/glsl100/swirl.fs
+++ b/examples/shaders/resources/shaders/glsl100/swirl.fs
@@ -12,8 +12,9 @@ uniform vec4 colDiffuse;
// NOTE: Add here your custom variables
-const float renderWidth = 800.0; // HARDCODED for example!
-const float renderHeight = 480.0; // Use uniforms instead...
+// NOTE: Render size values should be passed from code
+const float renderWidth = 800;
+const float renderHeight = 450;
float radius = 250.0;
float angle = 0.8;
diff --git a/shaders/glsl330/template.fs b/examples/shaders/resources/shaders/glsl330/base.fs
index 2e73de14..f1418df1 100644
--- a/shaders/glsl330/template.fs
+++ b/examples/shaders/resources/shaders/glsl330/base.fs
@@ -22,3 +22,4 @@ void main()
finalColor = texelColor*colDiffuse;
}
+
diff --git a/shaders/glsl330/blur.fs b/examples/shaders/resources/shaders/glsl330/blur.fs
index e4df406d..e4df406d 100644
--- a/shaders/glsl330/blur.fs
+++ b/examples/shaders/resources/shaders/glsl330/blur.fs
diff --git a/shaders/glsl330/cross_hatching.fs b/examples/shaders/resources/shaders/glsl330/cross_hatching.fs
index f95ad075..f95ad075 100644
--- a/shaders/glsl330/cross_hatching.fs
+++ b/examples/shaders/resources/shaders/glsl330/cross_hatching.fs
diff --git a/shaders/glsl330/cross_stitching.fs b/examples/shaders/resources/shaders/glsl330/cross_stitching.fs
index 9cdd36ca..9cdd36ca 100644
--- a/shaders/glsl330/cross_stitching.fs
+++ b/examples/shaders/resources/shaders/glsl330/cross_stitching.fs
diff --git a/examples/shaders/resources/shaders/glsl330/depth.fs b/examples/shaders/resources/shaders/glsl330/depth.fs
index 06d399f9..2422f390 100644
--- a/examples/shaders/resources/shaders/glsl330/depth.fs
+++ b/examples/shaders/resources/shaders/glsl330/depth.fs
@@ -6,7 +6,7 @@ in vec4 fragColor;
// Input uniform values
uniform sampler2D texture0; // Depth texture
-uniform vec4 fragTintColor;
+uniform vec4 colDiffuse;
// Output fragment color
out vec4 finalColor;
diff --git a/shaders/glsl330/dream_vision.fs b/examples/shaders/resources/shaders/glsl330/dream_vision.fs
index 03115862..03115862 100644
--- a/shaders/glsl330/dream_vision.fs
+++ b/examples/shaders/resources/shaders/glsl330/dream_vision.fs
diff --git a/shaders/glsl330/fisheye.fs b/examples/shaders/resources/shaders/glsl330/fisheye.fs
index e85d7c9d..e85d7c9d 100644
--- a/shaders/glsl330/fisheye.fs
+++ b/examples/shaders/resources/shaders/glsl330/fisheye.fs
diff --git a/examples/shaders/resources/shaders/glsl330/overdraw.fs b/examples/shaders/resources/shaders/glsl330/overdraw.fs
new file mode 100644
index 00000000..435217c3
--- /dev/null
+++ b/examples/shaders/resources/shaders/glsl330/overdraw.fs
@@ -0,0 +1,26 @@
+#version 330
+
+// Input vertex attributes (from vertex shader)
+in vec2 fragTexCoord;
+in vec4 fragColor;
+
+// Input uniform values
+uniform sampler2D texture0;
+uniform vec4 colDiffuse;
+
+// Output fragment color
+out vec4 finalColor;
+
+// NOTE: Add here your custom variables
+
+void main()
+{
+ // To show overdraw, we just render all the fragments
+ // with a solid color and some transparency
+
+ // NOTE: This is not a postpro render,
+ // it will only render all screen texture in a plain color
+
+ finalColor = vec4(1.0, 0.0, 0.0, 0.2);
+}
+
diff --git a/shaders/glsl330/pixel.fs b/examples/shaders/resources/shaders/glsl330/pixelizer.fs
index cf8aec44..cf8aec44 100644
--- a/shaders/glsl330/pixel.fs
+++ b/examples/shaders/resources/shaders/glsl330/pixelizer.fs
diff --git a/shaders/glsl330/posterization.fs b/examples/shaders/resources/shaders/glsl330/posterization.fs
index be2b5dd6..be2b5dd6 100644
--- a/shaders/glsl330/posterization.fs
+++ b/examples/shaders/resources/shaders/glsl330/posterization.fs
diff --git a/shaders/glsl330/predator.fs b/examples/shaders/resources/shaders/glsl330/predator.fs
index 6a55c762..6a55c762 100644
--- a/shaders/glsl330/predator.fs
+++ b/examples/shaders/resources/shaders/glsl330/predator.fs
diff --git a/shaders/glsl330/scanlines.fs b/examples/shaders/resources/shaders/glsl330/scanlines.fs
index 22dc9cd5..22dc9cd5 100644
--- a/shaders/glsl330/scanlines.fs
+++ b/examples/shaders/resources/shaders/glsl330/scanlines.fs
diff --git a/examples/shaders/resources/shaders/glsl330/sobel.fs b/examples/shaders/resources/shaders/glsl330/sobel.fs
new file mode 100644
index 00000000..a1430cdd
--- /dev/null
+++ b/examples/shaders/resources/shaders/glsl330/sobel.fs
@@ -0,0 +1,41 @@
+#version 330
+
+// Input vertex attributes (from vertex shader)
+in vec2 fragTexCoord;
+in vec4 fragColor;
+
+// Input uniform values
+uniform sampler2D texture0;
+uniform vec4 colDiffuse;
+
+// Output fragment color
+out vec4 finalColor;
+
+// NOTE: Add here your custom variables
+uniform vec2 resolution = vec2(800, 450);
+
+void main()
+{
+ float x = 1.0/resolution.x;
+ float y = 1.0/resolution.y;
+
+ vec4 horizEdge = vec4(0.0);
+ horizEdge -= texture2D(texture0, vec2(fragTexCoord.x - x, fragTexCoord.y - y))*1.0;
+ horizEdge -= texture2D(texture0, vec2(fragTexCoord.x - x, fragTexCoord.y ))*2.0;
+ horizEdge -= texture2D(texture0, vec2(fragTexCoord.x - x, fragTexCoord.y + y))*1.0;
+ horizEdge += texture2D(texture0, vec2(fragTexCoord.x + x, fragTexCoord.y - y))*1.0;
+ horizEdge += texture2D(texture0, vec2(fragTexCoord.x + x, fragTexCoord.y ))*2.0;
+ horizEdge += texture2D(texture0, vec2(fragTexCoord.x + x, fragTexCoord.y + y))*1.0;
+
+ vec4 vertEdge = vec4(0.0);
+ vertEdge -= texture2D(texture0, vec2(fragTexCoord.x - x, fragTexCoord.y - y))*1.0;
+ vertEdge -= texture2D(texture0, vec2(fragTexCoord.x , fragTexCoord.y - y))*2.0;
+ vertEdge -= texture2D(texture0, vec2(fragTexCoord.x + x, fragTexCoord.y - y))*1.0;
+ vertEdge += texture2D(texture0, vec2(fragTexCoord.x - x, fragTexCoord.y + y))*1.0;
+ vertEdge += texture2D(texture0, vec2(fragTexCoord.x , fragTexCoord.y + y))*2.0;
+ vertEdge += texture2D(texture0, vec2(fragTexCoord.x + x, fragTexCoord.y + y))*1.0;
+
+ vec3 edge = sqrt((horizEdge.rgb*horizEdge.rgb) + (vertEdge.rgb*vertEdge.rgb));
+
+ finalColor = vec4(edge, texture2D(texture0, fragTexCoord).a);
+} \ No newline at end of file
diff --git a/examples/shaders/resources/shaders/glsl330/swirl.fs b/examples/shaders/resources/shaders/glsl330/swirl.fs
index 5d238ac9..4741e597 100644
--- a/examples/shaders/resources/shaders/glsl330/swirl.fs
+++ b/examples/shaders/resources/shaders/glsl330/swirl.fs
@@ -13,8 +13,9 @@ out vec4 finalColor;
// NOTE: Add here your custom variables
-const float renderWidth = 800.0; // HARDCODED for example!
-const float renderHeight = 480.0; // Use uniforms instead...
+// NOTE: Render size values should be passed from code
+const float renderWidth = 800;
+const float renderHeight = 450;
float radius = 250.0;
float angle = 0.8;
diff --git a/shaders/glsl100/base.vs b/shaders/glsl100/base.vs
deleted file mode 100644
index e9386939..00000000
--- a/shaders/glsl100/base.vs
+++ /dev/null
@@ -1,26 +0,0 @@
-#version 100
-
-// Input vertex attributes
-attribute vec3 vertexPosition;
-attribute vec2 vertexTexCoord;
-attribute vec3 vertexNormal;
-attribute vec4 vertexColor;
-
-// Input uniform values
-uniform mat4 mvpMatrix;
-
-// Output vertex attributes (to fragment shader)
-varying vec2 fragTexCoord;
-varying vec4 fragColor;
-
-// NOTE: Add here your custom variables
-
-void main()
-{
- // Send vertex attributes to fragment shader
- fragTexCoord = vertexTexCoord;
- fragColor = vertexColor;
-
- // Calculate final vertex position
- gl_Position = mvpMatrix*vec4(vertexPosition, 1.0);
-} \ No newline at end of file
diff --git a/shaders/glsl100/bloom.fs b/shaders/glsl100/bloom.fs
deleted file mode 100644
index a8e1d20f..00000000
--- a/shaders/glsl100/bloom.fs
+++ /dev/null
@@ -1,39 +0,0 @@
-#version 100
-
-precision mediump float;
-
-// Input vertex attributes (from vertex shader)
-varying vec2 fragTexCoord;
-varying vec4 fragColor;
-
-// Input uniform values
-uniform sampler2D texture0;
-uniform vec4 colDiffuse;
-
-// NOTE: Add here your custom variables
-
-const vec2 size = vec2(800, 450); // render size
-const float samples = 5.0; // pixels per axis; higher = bigger glow, worse performance
-const float quality = 2.5; // lower = smaller glow, better quality
-
-void main()
-{
- vec4 sum = vec4(0);
- vec2 sizeFactor = vec2(1)/size*quality;
-
- // Texel color fetching from texture sampler
- vec4 source = texture2D(texture0, fragTexCoord);
-
- const int range = 2; // should be = (samples - 1)/2;
-
- for (int x = -range; x <= range; x++)
- {
- for (int y = -range; y <= range; y++)
- {
- sum += texture2D(texture0, fragTexCoord + vec2(x, y)*sizeFactor);
- }
- }
-
- // Calculate final fragment color
- gl_FragColor = ((sum/(samples*samples)) + source)*colDiffuse;
-} \ No newline at end of file
diff --git a/shaders/glsl100/grayscale.fs b/shaders/glsl100/grayscale.fs
deleted file mode 100644
index 15174ea5..00000000
--- a/shaders/glsl100/grayscale.fs
+++ /dev/null
@@ -1,25 +0,0 @@
-#version 100
-
-precision mediump float;
-
-// Input vertex attributes (from vertex shader)
-varying vec2 fragTexCoord;
-varying vec4 fragColor;
-
-// Input uniform values
-uniform sampler2D texture0;
-uniform vec4 colDiffuse;
-
-// NOTE: Add here your custom variables
-
-void main()
-{
- // Texel color fetching from texture sampler
- vec4 texelColor = texture2D(texture0, fragTexCoord)*colDiffuse*fragColor;
-
- // Convert texel color to grayscale using NTSC conversion weights
- float gray = dot(texelColor.rgb, vec3(0.299, 0.587, 0.114));
-
- // Calculate final fragment color
- gl_FragColor = vec4(gray, gray, gray, texelColor.a);
-} \ No newline at end of file
diff --git a/shaders/glsl100/standard.fs b/shaders/glsl100/standard.fs
deleted file mode 100644
index 3e78022d..00000000
--- a/shaders/glsl100/standard.fs
+++ /dev/null
@@ -1,150 +0,0 @@
-#version 100
-
-precision mediump float;
-
-varying vec3 fragPosition;
-varying vec2 fragTexCoord;
-varying vec4 fragColor;
-varying vec3 fragNormal;
-
-uniform sampler2D texture0;
-uniform sampler2D texture1;
-uniform sampler2D texture2;
-
-uniform vec4 colAmbient;
-uniform vec4 colDiffuse;
-uniform vec4 colSpecular;
-uniform float glossiness;
-
-uniform int useNormal;
-uniform int useSpecular;
-
-uniform mat4 modelMatrix;
-uniform vec3 viewDir;
-
-struct Light {
- int enabled;
- int type;
- vec3 position;
- vec3 direction;
- vec4 diffuse;
- float intensity;
- float radius;
- float coneAngle;
-};
-
-const int maxLights = 8;
-uniform Light lights[maxLights];
-
-vec3 CalcPointLight(Light l, vec3 n, vec3 v, float s)
-{
- vec3 surfacePos = vec3(modelMatrix*vec4(fragPosition, 1));
- vec3 surfaceToLight = l.position - surfacePos;
-
- // Diffuse shading
- float brightness = clamp(dot(n, surfaceToLight)/(length(surfaceToLight)*length(n)), 0, 1);
- float diff = 1.0/dot(surfaceToLight/l.radius, surfaceToLight/l.radius)*brightness*l.intensity;
-
- // Specular shading
- float spec = 0.0;
- if (diff > 0.0)
- {
- vec3 h = normalize(-l.direction + v);
- spec = pow(dot(n, h), 3 + glossiness)*s;
- }
-
- return (diff*l.diffuse.rgb + spec*colSpecular.rgb);
-}
-
-vec3 CalcDirectionalLight(Light l, vec3 n, vec3 v, float s)
-{
- vec3 lightDir = normalize(-l.direction);
-
- // Diffuse shading
- float diff = clamp(dot(n, lightDir), 0.0, 1.0)*l.intensity;
-
- // Specular shading
- float spec = 0.0;
- if (diff > 0.0)
- {
- vec3 h = normalize(lightDir + v);
- spec = pow(dot(n, h), 3 + glossiness)*s;
- }
-
- // Combine results
- return (diff*l.intensity*l.diffuse.rgb + spec*colSpecular.rgb);
-}
-
-vec3 CalcSpotLight(Light l, vec3 n, vec3 v, float s)
-{
- vec3 surfacePos = vec3(modelMatrix*vec4(fragPosition, 1));
- vec3 lightToSurface = normalize(surfacePos - l.position);
- vec3 lightDir = normalize(-l.direction);
-
- // Diffuse shading
- float diff = clamp(dot(n, lightDir), 0.0, 1.0)*l.intensity;
-
- // Spot attenuation
- float attenuation = clamp(dot(n, lightToSurface), 0.0, 1.0);
- attenuation = dot(lightToSurface, -lightDir);
-
- float lightToSurfaceAngle = degrees(acos(attenuation));
- if (lightToSurfaceAngle > l.coneAngle) attenuation = 0.0;
-
- float falloff = (l.coneAngle - lightToSurfaceAngle)/l.coneAngle;
-
- // Combine diffuse and attenuation
- float diffAttenuation = diff*attenuation;
-
- // Specular shading
- float spec = 0.0;
- if (diffAttenuation > 0.0)
- {
- vec3 h = normalize(lightDir + v);
- spec = pow(dot(n, h), 3 + glossiness)*s;
- }
-
- return (falloff*(diffAttenuation*l.diffuse.rgb + spec*colSpecular.rgb));
-}
-
-void main()
-{
- // Calculate fragment normal in screen space
- // NOTE: important to multiply model matrix by fragment normal to apply model transformation (rotation and scale)
- mat3 normalMatrix = transpose(inverse(mat3(modelMatrix)));
- vec3 normal = normalize(normalMatrix*fragNormal);
-
- // Normalize normal and view direction vectors
- vec3 n = normalize(normal);
- vec3 v = normalize(viewDir);
-
- // Calculate diffuse texture color fetching
- vec4 texelColor = texture2D(texture0, fragTexCoord);
- vec3 lighting = colAmbient.rgb;
-
- // Calculate normal texture color fetching or set to maximum normal value by default
- if (useNormal == 1)
- {
- n *= texture2D(texture1, fragTexCoord).rgb;
- n = normalize(n);
- }
-
- // Calculate specular texture color fetching or set to maximum specular value by default
- float spec = 1.0;
- if (useSpecular == 1) spec *= normalize(texture2D(texture2, fragTexCoord).r);
-
- for (int i = 0; i < maxLights; i++)
- {
- // Check if light is enabled
- if (lights[i].enabled == 1)
- {
- // Calculate lighting based on light type
- if(lights[i].type == 0) lighting += CalcPointLight(lights[i], n, v, spec);
- else if(lights[i].type == 1) lighting += CalcDirectionalLight(lights[i], n, v, spec);
- else if(lights[i].type == 2) lighting += CalcSpotLight(lights[i], n, v, spec);
- }
- }
-
- // Calculate final fragment color
- gl_FragColor = vec4(texelColor.rgb*lighting*colDiffuse.rgb, texelColor.a*colDiffuse.a);
-}
diff --git a/shaders/glsl100/standard.vs b/shaders/glsl100/standard.vs
deleted file mode 100644
index 49c5a3eb..00000000
--- a/shaders/glsl100/standard.vs
+++ /dev/null
@@ -1,23 +0,0 @@
-#version 100
-
-attribute vec3 vertexPosition;
-attribute vec3 vertexNormal;
-attribute vec2 vertexTexCoord;
-attribute vec4 vertexColor;
-
-varying vec3 fragPosition;
-varying vec2 fragTexCoord;
-varying vec4 fragColor;
-varying vec3 fragNormal;
-
-uniform mat4 mvpMatrix;
-
-void main()
-{
- fragPosition = vertexPosition;
- fragTexCoord = vertexTexCoord;
- fragColor = vertexColor;
- fragNormal = vertexNormal;
-
- gl_Position = mvpMatrix*vec4(vertexPosition, 1.0);
-} \ No newline at end of file
diff --git a/shaders/glsl100/swirl.fs b/shaders/glsl100/swirl.fs
deleted file mode 100644
index 6b17874c..00000000
--- a/shaders/glsl100/swirl.fs
+++ /dev/null
@@ -1,46 +0,0 @@
-#version 100
-
-precision mediump float;
-
-// Input vertex attributes (from vertex shader)
-varying vec2 fragTexCoord;
-varying vec4 fragColor;
-
-// Input uniform values
-uniform sampler2D texture0;
-uniform vec4 colDiffuse;
-
-// NOTE: Add here your custom variables
-
-// NOTE: Render size values must be passed from code
-const float renderWidth = 800;
-const float renderHeight = 450;
-
-float radius = 250.0;
-float angle = 0.8;
-
-uniform vec2 center = vec2(200.0, 200.0);
-
-void main()
-{
- vec2 texSize = vec2(renderWidth, renderHeight);
- vec2 tc = fragTexCoord*texSize;
- tc -= center;
-
- float dist = length(tc);
-
- if (dist < radius)
- {
- float percent = (radius - dist)/radius;
- float theta = percent*percent*angle*8.0;
- float s = sin(theta);
- float c = cos(theta);
-
- tc = vec2(dot(tc, vec2(c, -s)), dot(tc, vec2(s, c)));
- }
-
- tc += center;
- vec3 color = texture2D(texture0, tc/texSize).rgb;
-
- gl_FragColor = vec4(color, 1.0);;
-} \ No newline at end of file
diff --git a/shaders/glsl330/base.vs b/shaders/glsl330/base.vs
deleted file mode 100644
index 638cb8ae..00000000
--- a/shaders/glsl330/base.vs
+++ /dev/null
@@ -1,26 +0,0 @@
-#version 330
-
-// Input vertex attributes
-in vec3 vertexPosition;
-in vec2 vertexTexCoord;
-in vec3 vertexNormal;
-in vec4 vertexColor;
-
-// Input uniform values
-uniform mat4 mvpMatrix;
-
-// Output vertex attributes (to fragment shader)
-out vec2 fragTexCoord;
-out vec4 fragColor;
-
-// NOTE: Add here your custom variables
-
-void main()
-{
- // Send vertex attributes to fragment shader
- fragTexCoord = vertexTexCoord;
- fragColor = vertexColor;
-
- // Calculate final vertex position
- gl_Position = mvpMatrix*vec4(vertexPosition, 1.0);
-} \ No newline at end of file
diff --git a/shaders/glsl330/bloom.fs b/shaders/glsl330/bloom.fs
deleted file mode 100644
index 333d5b05..00000000
--- a/shaders/glsl330/bloom.fs
+++ /dev/null
@@ -1,40 +0,0 @@
-#version 330
-
-// Input vertex attributes (from vertex shader)
-in vec2 fragTexCoord;
-in vec4 fragColor;
-
-// Input uniform values
-uniform sampler2D texture0;
-uniform vec4 colDiffuse;
-
-// Output fragment color
-out vec4 finalColor;
-
-// NOTE: Add here your custom variables
-
-const vec2 size = vec2(800, 450); // render size
-const float samples = 5.0; // pixels per axis; higher = bigger glow, worse performance
-const float quality = 2.5; // lower = smaller glow, better quality
-
-void main()
-{
- vec4 sum = vec4(0);
- vec2 sizeFactor = vec2(1)/size*quality;
-
- // Texel color fetching from texture sampler
- vec4 source = texture(texture0, fragTexCoord);
-
- const int range = 2; // should be = (samples - 1)/2;
-
- for (int x = -range; x <= range; x++)
- {
- for (int y = -range; y <= range; y++)
- {
- sum += texture(texture0, fragTexCoord + vec2(x, y)*sizeFactor);
- }
- }
-
- // Calculate final fragment color
- finalColor = ((sum/(samples*samples)) + source)*colDiffuse;
-} \ No newline at end of file
diff --git a/shaders/glsl330/depth.fs b/shaders/glsl330/depth.fs
deleted file mode 100644
index 2422f390..00000000
--- a/shaders/glsl330/depth.fs
+++ /dev/null
@@ -1,27 +0,0 @@
-#version 330
-
-// Input vertex attributes (from vertex shader)
-in vec2 fragTexCoord;
-in vec4 fragColor;
-
-// Input uniform values
-uniform sampler2D texture0; // Depth texture
-uniform vec4 colDiffuse;
-
-// Output fragment color
-out vec4 finalColor;
-
-// NOTE: Add here your custom variables
-
-void main()
-{
- float zNear = 0.01; // camera z near
- float zFar = 10.0; // camera z far
- float z = texture(texture0, fragTexCoord).x;
-
- // Linearize depth value
- float depth = (2.0*zNear)/(zFar + zNear - z*(zFar - zNear));
-
- // Calculate final fragment color
- finalColor = vec4(depth, depth, depth, 1.0f);
-} \ No newline at end of file
diff --git a/shaders/glsl330/grayscale.fs b/shaders/glsl330/grayscale.fs
deleted file mode 100644
index 5b3e11be..00000000
--- a/shaders/glsl330/grayscale.fs
+++ /dev/null
@@ -1,26 +0,0 @@
-#version 330
-
-// Input vertex attributes (from vertex shader)
-in vec2 fragTexCoord;
-in vec4 fragColor;
-
-// Input uniform values
-uniform sampler2D texture0;
-uniform vec4 colDiffuse;
-
-// Output fragment color
-out vec4 finalColor;
-
-// NOTE: Add here your custom variables
-
-void main()
-{
- // Texel color fetching from texture sampler
- vec4 texelColor = texture(texture0, fragTexCoord)*colDiffuse*fragColor;
-
- // Convert texel color to grayscale using NTSC conversion weights
- float gray = dot(texelColor.rgb, vec3(0.299, 0.587, 0.114));
-
- // Calculate final fragment color
- finalColor = vec4(gray, gray, gray, texelColor.a);
-} \ No newline at end of file
diff --git a/shaders/glsl330/standard.fs b/shaders/glsl330/standard.fs
deleted file mode 100644
index f728be81..00000000
--- a/shaders/glsl330/standard.fs
+++ /dev/null
@@ -1,150 +0,0 @@
-#version 330
-
-in vec3 fragPosition;
-in vec2 fragTexCoord;
-in vec4 fragColor;
-in vec3 fragNormal;
-
-out vec4 finalColor;
-
-uniform sampler2D texture0;
-uniform sampler2D texture1;
-uniform sampler2D texture2;
-
-uniform vec4 colAmbient;
-uniform vec4 colDiffuse;
-uniform vec4 colSpecular;
-uniform float glossiness;
-
-uniform int useNormal;
-uniform int useSpecular;
-
-uniform mat4 modelMatrix;
-uniform vec3 viewDir;
-
-struct Light {
- int enabled;
- int type;
- vec3 position;
- vec3 direction;
- vec4 diffuse;
- float intensity;
- float radius;
- float coneAngle;
-};
-
-const int maxLights = 8;
-uniform Light lights[maxLights];
-
-vec3 CalcPointLight(Light l, vec3 n, vec3 v, float s)
-{
- vec3 surfacePos = vec3(modelMatrix*vec4(fragPosition, 1));
- vec3 surfaceToLight = l.position - surfacePos;
-
- // Diffuse shading
- float brightness = clamp(dot(n, surfaceToLight)/(length(surfaceToLight)*length(n)), 0, 1);
- float diff = 1.0/dot(surfaceToLight/l.radius, surfaceToLight/l.radius)*brightness*l.intensity;
-
- // Specular shading
- float spec = 0.0;
- if (diff > 0.0)
- {
- vec3 h = normalize(-l.direction + v);
- spec = pow(dot(n, h), 3 + glossiness)*s;
- }
-
- return (diff*l.diffuse.rgb + spec*colSpecular.rgb);
-}
-
-vec3 CalcDirectionalLight(Light l, vec3 n, vec3 v, float s)
-{
- vec3 lightDir = normalize(-l.direction);
-
- // Diffuse shading
- float diff = clamp(dot(n, lightDir), 0.0, 1.0)*l.intensity;
-
- // Specular shading
- float spec = 0.0;
- if (diff > 0.0)
- {
- vec3 h = normalize(lightDir + v);
- spec = pow(dot(n, h), 3 + glossiness)*s;
- }
-
- // Combine results
- return (diff*l.intensity*l.diffuse.rgb + spec*colSpecular.rgb);
-}
-
-vec3 CalcSpotLight(Light l, vec3 n, vec3 v, float s)
-{
- vec3 surfacePos = vec3(modelMatrix*vec4(fragPosition, 1));
- vec3 lightToSurface = normalize(surfacePos - l.position);
- vec3 lightDir = normalize(-l.direction);
-
- // Diffuse shading
- float diff = clamp(dot(n, lightDir), 0.0, 1.0)*l.intensity;
-
- // Spot attenuation
- float attenuation = clamp(dot(n, lightToSurface), 0.0, 1.0);
- attenuation = dot(lightToSurface, -lightDir);
-
- float lightToSurfaceAngle = degrees(acos(attenuation));
- if (lightToSurfaceAngle > l.coneAngle) attenuation = 0.0;
-
- float falloff = (l.coneAngle - lightToSurfaceAngle)/l.coneAngle;
-
- // Combine diffuse and attenuation
- float diffAttenuation = diff*attenuation;
-
- // Specular shading
- float spec = 0.0;
- if (diffAttenuation > 0.0)
- {
- vec3 h = normalize(lightDir + v);
- spec = pow(dot(n, h), 3 + glossiness)*s;
- }
-
- return (falloff*(diffAttenuation*l.diffuse.rgb + spec*colSpecular.rgb));
-}
-
-void main()
-{
- // Calculate fragment normal in screen space
- // NOTE: important to multiply model matrix by fragment normal to apply model transformation (rotation and scale)
- mat3 normalMatrix = transpose(inverse(mat3(modelMatrix)));
- vec3 normal = normalize(normalMatrix*fragNormal);
-
- // Normalize normal and view direction vectors
- vec3 n = normalize(normal);
- vec3 v = normalize(viewDir);
-
- // Calculate diffuse texture color fetching
- vec4 texelColor = texture(texture0, fragTexCoord);
- vec3 lighting = colAmbient.rgb;
-
- // Calculate normal texture color fetching or set to maximum normal value by default
- if (useNormal == 1)
- {
- n *= texture(texture1, fragTexCoord).rgb;
- n = normalize(n);
- }
-
- // Calculate specular texture color fetching or set to maximum specular value by default
- float spec = 1.0;
- if (useSpecular == 1) spec *= normalize(texture(texture2, fragTexCoord).r);
-
- for (int i = 0; i < maxLights; i++)
- {
- // Check if light is enabled
- if (lights[i].enabled == 1)
- {
- // Calculate lighting based on light type
- if(lights[i].type == 0) lighting += CalcPointLight(lights[i], n, v, spec);
- else if(lights[i].type == 1) lighting += CalcDirectionalLight(lights[i], n, v, spec);
- else if(lights[i].type == 2) lighting += CalcSpotLight(lights[i], n, v, spec);
- }
- }
-
- // Calculate final fragment color
- finalColor = vec4(texelColor.rgb*lighting*colDiffuse.rgb, texelColor.a*colDiffuse.a);
-}
diff --git a/shaders/glsl330/standard.vs b/shaders/glsl330/standard.vs
deleted file mode 100644
index fc0a5ff4..00000000
--- a/shaders/glsl330/standard.vs
+++ /dev/null
@@ -1,23 +0,0 @@
-#version 330
-
-in vec3 vertexPosition;
-in vec3 vertexNormal;
-in vec2 vertexTexCoord;
-in vec4 vertexColor;
-
-out vec3 fragPosition;
-out vec2 fragTexCoord;
-out vec4 fragColor;
-out vec3 fragNormal;
-
-uniform mat4 mvpMatrix;
-
-void main()
-{
- fragPosition = vertexPosition;
- fragTexCoord = vertexTexCoord;
- fragColor = vertexColor;
- fragNormal = vertexNormal;
-
- gl_Position = mvpMatrix*vec4(vertexPosition, 1.0);
-} \ No newline at end of file
diff --git a/shaders/glsl330/swirl.fs b/shaders/glsl330/swirl.fs
deleted file mode 100644
index c4b66768..00000000
--- a/shaders/glsl330/swirl.fs
+++ /dev/null
@@ -1,47 +0,0 @@
-#version 330
-
-// Input vertex attributes (from vertex shader)
-in vec2 fragTexCoord;
-in vec4 fragColor;
-
-// Input uniform values
-uniform sampler2D texture0;
-uniform vec4 colDiffuse;
-
-// Output fragment color
-out vec4 finalColor;
-
-// NOTE: Add here your custom variables
-
-// NOTE: Render size values must be passed from code
-const float renderWidth = 800;
-const float renderHeight = 450;
-
-float radius = 250.0;
-float angle = 0.8;
-
-uniform vec2 center = vec2(200.0, 200.0);
-
-void main()
-{
- vec2 texSize = vec2(renderWidth, renderHeight);
- vec2 tc = fragTexCoord*texSize;
- tc -= center;
-
- float dist = length(tc);
-
- if (dist < radius)
- {
- float percent = (radius - dist)/radius;
- float theta = percent*percent*angle*8.0;
- float s = sin(theta);
- float c = cos(theta);
-
- tc = vec2(dot(tc, vec2(c, -s)), dot(tc, vec2(s, c)));
- }
-
- tc += center;
- vec3 color = texture(texture0, tc/texSize).rgb;
-
- finalColor = vec4(color, 1.0);;
-} \ No newline at end of file