Browse Source

Move shaders to examples

Ray 8 years ago
parent
commit
aba25e9ba3
39 changed files with 117 additions and 653 deletions
  1. 1 0
      examples/shaders/resources/shaders/glsl100/base.fs
  2. 0 0
      examples/shaders/resources/shaders/glsl100/blur.fs
  3. 0 0
      examples/shaders/resources/shaders/glsl100/cross_hatching.fs
  4. 0 0
      examples/shaders/resources/shaders/glsl100/cross_stitching.fs
  5. 0 0
      examples/shaders/resources/shaders/glsl100/dream_vision.fs
  6. 0 0
      examples/shaders/resources/shaders/glsl100/fisheye.fs
  7. 0 0
      examples/shaders/resources/shaders/glsl100/pixel.fs
  8. 0 0
      examples/shaders/resources/shaders/glsl100/posterization.fs
  9. 0 0
      examples/shaders/resources/shaders/glsl100/predator.fs
  10. 0 0
      examples/shaders/resources/shaders/glsl100/scanlines.fs
  11. 41 0
      examples/shaders/resources/shaders/glsl100/sobel.fs
  12. 3 2
      examples/shaders/resources/shaders/glsl100/swirl.fs
  13. 1 0
      examples/shaders/resources/shaders/glsl330/base.fs
  14. 0 0
      examples/shaders/resources/shaders/glsl330/blur.fs
  15. 0 0
      examples/shaders/resources/shaders/glsl330/cross_hatching.fs
  16. 0 0
      examples/shaders/resources/shaders/glsl330/cross_stitching.fs
  17. 1 1
      examples/shaders/resources/shaders/glsl330/depth.fs
  18. 0 0
      examples/shaders/resources/shaders/glsl330/dream_vision.fs
  19. 0 0
      examples/shaders/resources/shaders/glsl330/fisheye.fs
  20. 26 0
      examples/shaders/resources/shaders/glsl330/overdraw.fs
  21. 0 0
      examples/shaders/resources/shaders/glsl330/pixelizer.fs
  22. 0 0
      examples/shaders/resources/shaders/glsl330/posterization.fs
  23. 0 0
      examples/shaders/resources/shaders/glsl330/predator.fs
  24. 0 0
      examples/shaders/resources/shaders/glsl330/scanlines.fs
  25. 41 0
      examples/shaders/resources/shaders/glsl330/sobel.fs
  26. 3 2
      examples/shaders/resources/shaders/glsl330/swirl.fs
  27. 0 26
      shaders/glsl100/base.vs
  28. 0 39
      shaders/glsl100/bloom.fs
  29. 0 25
      shaders/glsl100/grayscale.fs
  30. 0 150
      shaders/glsl100/standard.fs
  31. 0 23
      shaders/glsl100/standard.vs
  32. 0 46
      shaders/glsl100/swirl.fs
  33. 0 26
      shaders/glsl330/base.vs
  34. 0 40
      shaders/glsl330/bloom.fs
  35. 0 27
      shaders/glsl330/depth.fs
  36. 0 26
      shaders/glsl330/grayscale.fs
  37. 0 150
      shaders/glsl330/standard.fs
  38. 0 23
      shaders/glsl330/standard.vs
  39. 0 47
      shaders/glsl330/swirl.fs

+ 1 - 0
shaders/glsl100/template.fs → 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()
 {

+ 0 - 0
shaders/glsl100/blur.fs → examples/shaders/resources/shaders/glsl100/blur.fs


+ 0 - 0
shaders/glsl100/cross_hatching.fs → examples/shaders/resources/shaders/glsl100/cross_hatching.fs


+ 0 - 0
shaders/glsl100/cross_stitching.fs → examples/shaders/resources/shaders/glsl100/cross_stitching.fs


+ 0 - 0
shaders/glsl100/dream_vision.fs → examples/shaders/resources/shaders/glsl100/dream_vision.fs


+ 0 - 0
shaders/glsl100/fisheye.fs → examples/shaders/resources/shaders/glsl100/fisheye.fs


+ 0 - 0
shaders/glsl100/pixel.fs → examples/shaders/resources/shaders/glsl100/pixel.fs


+ 0 - 0
shaders/glsl100/posterization.fs → examples/shaders/resources/shaders/glsl100/posterization.fs


+ 0 - 0
shaders/glsl100/predator.fs → examples/shaders/resources/shaders/glsl100/predator.fs


+ 0 - 0
shaders/glsl100/scanlines.fs → examples/shaders/resources/shaders/glsl100/scanlines.fs


+ 41 - 0
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);
+}

+ 3 - 2
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;

+ 1 - 0
shaders/glsl330/template.fs → examples/shaders/resources/shaders/glsl330/base.fs

@@ -22,3 +22,4 @@ void main()
     
     finalColor = texelColor*colDiffuse;
 }
+

+ 0 - 0
shaders/glsl330/blur.fs → examples/shaders/resources/shaders/glsl330/blur.fs


+ 0 - 0
shaders/glsl330/cross_hatching.fs → examples/shaders/resources/shaders/glsl330/cross_hatching.fs


+ 0 - 0
shaders/glsl330/cross_stitching.fs → examples/shaders/resources/shaders/glsl330/cross_stitching.fs


+ 1 - 1
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;

+ 0 - 0
shaders/glsl330/dream_vision.fs → examples/shaders/resources/shaders/glsl330/dream_vision.fs


+ 0 - 0
shaders/glsl330/fisheye.fs → examples/shaders/resources/shaders/glsl330/fisheye.fs


+ 26 - 0
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);
+}
+

+ 0 - 0
shaders/glsl330/pixel.fs → examples/shaders/resources/shaders/glsl330/pixelizer.fs


+ 0 - 0
shaders/glsl330/posterization.fs → examples/shaders/resources/shaders/glsl330/posterization.fs


+ 0 - 0
shaders/glsl330/predator.fs → examples/shaders/resources/shaders/glsl330/predator.fs


+ 0 - 0
shaders/glsl330/scanlines.fs → examples/shaders/resources/shaders/glsl330/scanlines.fs


+ 41 - 0
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);
+}

+ 3 - 2
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;

+ 0 - 26
shaders/glsl100/base.vs

@@ -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);
-}

+ 0 - 39
shaders/glsl100/bloom.fs

@@ -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;
-}

+ 0 - 25
shaders/glsl100/grayscale.fs

@@ -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);
-}

+ 0 - 150
shaders/glsl100/standard.fs

@@ -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);
-}

+ 0 - 23
shaders/glsl100/standard.vs

@@ -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);
-}

+ 0 - 46
shaders/glsl100/swirl.fs

@@ -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);;
-}

+ 0 - 26
shaders/glsl330/base.vs

@@ -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);
-}

+ 0 - 40
shaders/glsl330/bloom.fs

@@ -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;
-}

+ 0 - 27
shaders/glsl330/depth.fs

@@ -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);
-}

+ 0 - 26
shaders/glsl330/grayscale.fs

@@ -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);
-}

+ 0 - 150
shaders/glsl330/standard.fs

@@ -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);
-}

+ 0 - 23
shaders/glsl330/standard.vs

@@ -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);
-}

+ 0 - 47
shaders/glsl330/swirl.fs

@@ -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);;
-}