diff options
| author | raysan5 <raysan5@gmail.com> | 2016-04-07 12:32:32 +0200 |
|---|---|---|
| committer | raysan5 <raysan5@gmail.com> | 2016-04-07 12:32:32 +0200 |
| commit | 1d545449bb19148b45d2d92f213e1001a8eb527c (patch) | |
| tree | 3e9627f74717b957521202fb17c316e936301bbb /examples/resources | |
| parent | 78b502b0bf1ee796d86837c611150ed5f8d58fd2 (diff) | |
| download | raylib-1d545449bb19148b45d2d92f213e1001a8eb527c.tar.gz raylib-1d545449bb19148b45d2d92f213e1001a8eb527c.zip | |
Reviewed shaders and added comments
Diffstat (limited to 'examples/resources')
| -rw-r--r-- | examples/resources/shaders/bloom.fs | 43 | ||||
| -rw-r--r-- | examples/resources/shaders/glsl100/base.vs | 26 | ||||
| -rw-r--r-- | examples/resources/shaders/glsl100/bloom.fs | 37 | ||||
| -rw-r--r-- | examples/resources/shaders/glsl100/grayscale.fs | 25 | ||||
| -rw-r--r-- | examples/resources/shaders/glsl100/swirl.fs | 45 | ||||
| -rw-r--r-- | examples/resources/shaders/glsl330/base.vs (renamed from examples/resources/shaders/base.vs) | 13 | ||||
| -rw-r--r-- | examples/resources/shaders/glsl330/bloom.fs | 38 | ||||
| -rw-r--r-- | examples/resources/shaders/glsl330/grayscale.fs | 26 | ||||
| -rw-r--r-- | examples/resources/shaders/glsl330/phong.fs (renamed from examples/resources/shaders/phong.fs) | 2 | ||||
| -rw-r--r-- | examples/resources/shaders/glsl330/phong.vs (renamed from examples/resources/shaders/phong.vs) | 16 | ||||
| -rw-r--r-- | examples/resources/shaders/glsl330/swirl.fs (renamed from examples/resources/shaders/swirl.fs) | 11 | ||||
| -rw-r--r-- | examples/resources/shaders/grayscale.fs | 20 | ||||
| -rw-r--r-- | examples/resources/shaders/shapes_base.vs | 18 | ||||
| -rw-r--r-- | examples/resources/shaders/shapes_grayscale.fs | 15 |
14 files changed, 223 insertions, 112 deletions
diff --git a/examples/resources/shaders/bloom.fs b/examples/resources/shaders/bloom.fs deleted file mode 100644 index 0a73161a..00000000 --- a/examples/resources/shaders/bloom.fs +++ /dev/null @@ -1,43 +0,0 @@ -#version 330 - -in vec2 fragTexCoord; -in vec4 fragTintColor; - -out vec4 fragColor; - -uniform sampler2D texture0; -//uniform vec4 fragTintColor; - -// NOTE: Add here your custom variables - -void main() -{ - vec4 sum = vec4(0); - vec4 tc = vec4(0); - - for (int i = -4; i < 4; i++) - { - for (int j = -3; j < 3; j++) - { - sum += texture2D(texture0, fragTexCoord + vec2(j, i)*0.004) * 0.25; - } - } - - if (texture2D(texture0, fragTexCoord).r < 0.3) - { - tc = sum*sum*0.012 + texture2D(texture0, fragTexCoord); - } - else - { - if (texture2D(texture0, fragTexCoord).r < 0.5) - { - tc = sum*sum*0.009 + texture2D(texture0, fragTexCoord); - } - else - { - tc = sum*sum*0.0075 + texture2D(texture0, fragTexCoord); - } - } - - fragColor = tc; -}
\ No newline at end of file diff --git a/examples/resources/shaders/glsl100/base.vs b/examples/resources/shaders/glsl100/base.vs new file mode 100644 index 00000000..e9386939 --- /dev/null +++ b/examples/resources/shaders/glsl100/base.vs @@ -0,0 +1,26 @@ +#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/examples/resources/shaders/glsl100/bloom.fs b/examples/resources/shaders/glsl100/bloom.fs new file mode 100644 index 00000000..5a08843d --- /dev/null +++ b/examples/resources/shaders/glsl100/bloom.fs @@ -0,0 +1,37 @@ +#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 fragTintColor; + +// NOTE: Add here your custom variables + +void main() +{ + vec4 sum = vec4(0); + vec4 tc = vec4(0); + + for (int i = -4; i < 4; i++) + { + for (int j = -3; j < 3; j++) + { + sum += texture2D(texture0, fragTexCoord + vec2(j, i)*0.004) * 0.25; + } + } + + // Texel color fetching from texture sampler + vec4 texelColor = texture(texture0, fragTexCoord); + + // Calculate final fragment color + if (texelColor.r < 0.3) tc = sum*sum*0.012 + texelColor; + else if (texelColor.r < 0.5) tc = sum*sum*0.009 + texelColor; + else tc = sum*sum*0.0075 + texelColor; + + finalColor = tc; +}
\ No newline at end of file diff --git a/examples/resources/shaders/glsl100/grayscale.fs b/examples/resources/shaders/glsl100/grayscale.fs new file mode 100644 index 00000000..f92ec335 --- /dev/null +++ b/examples/resources/shaders/glsl100/grayscale.fs @@ -0,0 +1,25 @@ +#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 fragTintColor; + +// NOTE: Add here your custom variables + +void main() +{ + // Texel color fetching from texture sampler + vec4 texelColor = texture(texture0, fragTexCoord)*fragTintColor*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/examples/resources/shaders/glsl100/swirl.fs b/examples/resources/shaders/glsl100/swirl.fs new file mode 100644 index 00000000..e77d4f87 --- /dev/null +++ b/examples/resources/shaders/glsl100/swirl.fs @@ -0,0 +1,45 @@ +#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 fragTintColor; + +// NOTE: Add here your custom variables + +const float renderWidth = 800.0; // HARDCODED for example! +const float renderHeight = 480.0; // Use uniforms instead... + +float radius = 250.0; +float angle = 0.8; + +uniform vec2 center = vec2(200.0, 200.0); + +void main (void) +{ + 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/examples/resources/shaders/base.vs b/examples/resources/shaders/glsl330/base.vs index 9b8cca69..638cb8ae 100644 --- a/examples/resources/shaders/base.vs +++ b/examples/resources/shaders/glsl330/base.vs @@ -1,21 +1,26 @@ #version 330 +// Input vertex attributes in vec3 vertexPosition; in vec2 vertexTexCoord; in vec3 vertexNormal; in vec4 vertexColor; -out vec2 fragTexCoord; -out vec4 fragTintColor; - +// 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; - fragTintColor = vertexColor; + fragColor = vertexColor; + // Calculate final vertex position gl_Position = mvpMatrix*vec4(vertexPosition, 1.0); }
\ No newline at end of file diff --git a/examples/resources/shaders/glsl330/bloom.fs b/examples/resources/shaders/glsl330/bloom.fs new file mode 100644 index 00000000..c8cb0d32 --- /dev/null +++ b/examples/resources/shaders/glsl330/bloom.fs @@ -0,0 +1,38 @@ +#version 330 + +// Input vertex attributes (from vertex shader) +in vec2 fragTexCoord; +in vec4 fragColor; + +// Input uniform values +uniform sampler2D texture0; +uniform vec4 fragTintColor; + +// Output fragment color +out vec4 finalColor; + +// NOTE: Add here your custom variables + +void main() +{ + vec4 sum = vec4(0); + vec4 tc = vec4(0); + + for (int i = -4; i < 4; i++) + { + for (int j = -3; j < 3; j++) + { + sum += texture2D(texture0, fragTexCoord + vec2(j, i)*0.004)*0.25; + } + } + + // Texel color fetching from texture sampler + vec4 texelColor = texture(texture0, fragTexCoord); + + // Calculate final fragment color + if (texelColor.r < 0.3) tc = sum*sum*0.012 + texelColor; + else if (texelColor.r < 0.5) tc = sum*sum*0.009 + texelColor; + else tc = sum*sum*0.0075 + texelColor; + + finalColor = tc; +}
\ No newline at end of file diff --git a/examples/resources/shaders/glsl330/grayscale.fs b/examples/resources/shaders/glsl330/grayscale.fs new file mode 100644 index 00000000..d4a8824f --- /dev/null +++ b/examples/resources/shaders/glsl330/grayscale.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 fragTintColor; + +// 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)*fragTintColor*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/examples/resources/shaders/phong.fs b/examples/resources/shaders/glsl330/phong.fs index f79413d9..2e7a95f6 100644 --- a/examples/resources/shaders/phong.fs +++ b/examples/resources/shaders/glsl330/phong.fs @@ -1,6 +1,6 @@ #version 330 -// Vertex shader input data +// Input vertex attributes (from vertex shader) in vec2 fragTexCoord; in vec3 fragNormal; diff --git a/examples/resources/shaders/phong.vs b/examples/resources/shaders/glsl330/phong.vs index 52cc2227..d68d9b3f 100644 --- a/examples/resources/shaders/phong.vs +++ b/examples/resources/shaders/glsl330/phong.vs @@ -1,25 +1,25 @@ #version 330 -// Vertex input data +// Input vertex attributes in vec3 vertexPosition; in vec2 vertexTexCoord; in vec3 vertexNormal; -// Projection and model data +// Input uniform values uniform mat4 mvpMatrix; -uniform mat4 modelMatrix; -//uniform mat4 viewMatrix; // Not used - -// Attributes to fragment shader +// Output vertex attributes (to fragment shader) out vec2 fragTexCoord; out vec3 fragNormal; +// NOTE: Add here your custom variables +uniform mat4 modelMatrix; + void main() { - // Send texture coord to fragment shader + // Send vertex attributes to fragment shader fragTexCoord = vertexTexCoord; - + // Calculate view vector normal from model mat3 normalMatrix = transpose(inverse(mat3(modelMatrix))); fragNormal = normalize(normalMatrix*vertexNormal); diff --git a/examples/resources/shaders/swirl.fs b/examples/resources/shaders/glsl330/swirl.fs index f89ef406..b1dc82f0 100644 --- a/examples/resources/shaders/swirl.fs +++ b/examples/resources/shaders/glsl330/swirl.fs @@ -1,12 +1,16 @@ #version 330 +// Input vertex attributes (from vertex shader) in vec2 fragTexCoord; +in vec4 fragColor; -out vec4 fragColor; - +// Input uniform values uniform sampler2D texture0; uniform vec4 fragTintColor; +// Output fragment color +out vec4 finalColor; + // NOTE: Add here your custom variables const float renderWidth = 800.0; // HARDCODED for example! @@ -22,6 +26,7 @@ void main (void) vec2 texSize = vec2(renderWidth, renderHeight); vec2 tc = fragTexCoord*texSize; tc -= center; + float dist = length(tc); if (dist < radius) @@ -37,5 +42,5 @@ void main (void) tc += center; vec3 color = texture2D(texture0, tc/texSize).rgb; - fragColor = vec4(color, 1.0);; + finalColor = vec4(color, 1.0);; }
\ No newline at end of file diff --git a/examples/resources/shaders/grayscale.fs b/examples/resources/shaders/grayscale.fs deleted file mode 100644 index af50b8c1..00000000 --- a/examples/resources/shaders/grayscale.fs +++ /dev/null @@ -1,20 +0,0 @@ -#version 330 - -in vec2 fragTexCoord; - -out vec4 fragColor; - -uniform sampler2D texture0; -uniform vec4 fragTintColor; - -// NOTE: Add here your custom variables - -void main() -{ - vec4 base = texture2D(texture0, fragTexCoord)*fragTintColor; - - // Convert to grayscale using NTSC conversion weights - float gray = dot(base.rgb, vec3(0.299, 0.587, 0.114)); - - fragColor = vec4(gray, gray, gray, fragTintColor.a); -}
\ No newline at end of file diff --git a/examples/resources/shaders/shapes_base.vs b/examples/resources/shaders/shapes_base.vs deleted file mode 100644 index ad272dc1..00000000 --- a/examples/resources/shaders/shapes_base.vs +++ /dev/null @@ -1,18 +0,0 @@ -#version 330 - -attribute vec3 vertexPosition; -attribute vec2 vertexTexCoord; -attribute vec4 vertexColor; - -uniform mat4 mvpMatrix; - -varying vec2 fragTexCoord; -varying vec4 fragTintColor; - -void main() -{ - fragTexCoord = vertexTexCoord; - fragTintColor = vertexColor; - - gl_Position = mvpMatrix*vec4(vertexPosition, 1.0); -}
\ No newline at end of file diff --git a/examples/resources/shaders/shapes_grayscale.fs b/examples/resources/shaders/shapes_grayscale.fs deleted file mode 100644 index 0698e1bf..00000000 --- a/examples/resources/shaders/shapes_grayscale.fs +++ /dev/null @@ -1,15 +0,0 @@ -#version 330 - -uniform sampler2D texture0; -varying vec2 fragTexCoord; -varying vec4 fragTintColor; - -void main() -{ - vec4 base = texture2D(texture0, fragTexCoord)*fragTintColor; - - // Convert to grayscale using NTSC conversion weights - float gray = dot(base.rgb, vec3(0.299, 0.587, 0.114)); - - gl_FragColor = vec4(gray, gray, gray, base.a); -}
\ No newline at end of file |
