diff options
| author | Ray <raysan5@gmail.com> | 2016-07-19 12:48:55 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2016-07-19 12:48:55 +0200 |
| commit | ab0d19f356dc6aadff11ab4034880c8759315000 (patch) | |
| tree | fcd102935dcbd0d007fc413e8e97ba9c4fd90701 /shaders/glsl330/phong.fs | |
| parent | 13e18c23edb668e40d07c100fd1652c9c0af300b (diff) | |
| parent | c482f37dfde9343ee1cc315153dcef80254c7a0b (diff) | |
| download | raylib-1.5.0.tar.gz raylib-1.5.0.zip | |
Merge pull request #137 from raysan5/develop1.5.0
Integrate Develop branch
Diffstat (limited to 'shaders/glsl330/phong.fs')
| -rw-r--r-- | shaders/glsl330/phong.fs | 85 |
1 files changed, 0 insertions, 85 deletions
diff --git a/shaders/glsl330/phong.fs b/shaders/glsl330/phong.fs deleted file mode 100644 index b2414a15..00000000 --- a/shaders/glsl330/phong.fs +++ /dev/null @@ -1,85 +0,0 @@ -#version 330 - -// Input vertex attributes (from vertex shader) -in vec2 fragTexCoord; -in vec3 fragNormal; - -// Input uniform values -uniform sampler2D texture0; -uniform vec4 colDiffuse; - -// Output fragment color -out vec4 finalColor; - -// NOTE: Add here your custom variables - -// Light uniform values -uniform vec3 lightAmbientColor = vec3(0.6, 0.3, 0.0); -uniform vec3 lightDiffuseColor = vec3(1.0, 0.5, 0.0); -uniform vec3 lightSpecularColor = vec3(0.0, 1.0, 0.0); -uniform float lightIntensity = 1.0; -uniform float lightSpecIntensity = 1.0; - -// Material uniform values -uniform vec3 matAmbientColor = vec3(1.0, 1.0, 1.0); -uniform vec3 matSpecularColor = vec3(1.0, 1.0, 1.0); -uniform float matGlossiness = 50.0; - -// World uniform values -uniform vec3 lightPosition; -uniform vec3 cameraPosition; - -// Fragment shader output data -out vec4 fragColor; - -// Calculate ambient lighting component -vec3 AmbientLighting() -{ - return (matAmbientColor*lightAmbientColor); -} - -// Calculate diffuse lighting component -vec3 DiffuseLighting(in vec3 N, in vec3 L) -{ - // Lambertian reflection calculation - float diffuse = clamp(dot(N, L), 0, 1); - - return (colDiffuse.xyz*lightDiffuseColor*lightIntensity*diffuse); -} - -// Calculate specular lighting component -vec3 SpecularLighting(in vec3 N, in vec3 L, in vec3 V) -{ - float specular = 0.0; - - // Calculate specular reflection only if the surface is oriented to the light source - if (dot(N, L) > 0) - { - // Calculate half vector - vec3 H = normalize(L + V); - - // Calculate specular intensity - specular = pow(dot(N, H), 3 + matGlossiness); - } - - return (matSpecularColor*lightSpecularColor*lightSpecIntensity*specular); -} - -void main() -{ - // Normalize input vectors - vec3 L = normalize(lightPosition); - vec3 V = normalize(cameraPosition); - vec3 N = normalize(fragNormal); - - // Calculate lighting components - vec3 ambient = AmbientLighting(); - vec3 diffuse = DiffuseLighting(N, L); - vec3 specular = SpecularLighting(N, L, V); - - // Texel color fetching from texture sampler - vec4 texelColor = texture(texture0, fragTexCoord); - - // Calculate final fragment color - finalColor = vec4(texelColor.rgb*(ambient + diffuse + specular), texelColor.a); -}
\ No newline at end of file |
