| [12091] | 1 | #version 100 | 
|---|
 | 2 |  | 
|---|
 | 3 | precision mediump int; | 
|---|
 | 4 | precision mediump float; | 
|---|
 | 5 |  | 
|---|
 | 6 | uniform vec4 lightDiffuse; | 
|---|
 | 7 | uniform vec4 lightSpecular; | 
|---|
 | 8 | uniform vec4 scaleBias; | 
|---|
 | 9 | uniform float exponent; | 
|---|
 | 10 | uniform sampler2D normalHeightMap; | 
|---|
 | 11 |  | 
|---|
 | 12 | varying vec3 tangentEyeDir; | 
|---|
 | 13 | varying vec3 tangentLightDir[2]; | 
|---|
 | 14 | varying vec4 shadowUV[2]; | 
|---|
 | 15 | varying vec4 oUv0; | 
|---|
 | 16 |  | 
|---|
 | 17 | vec4 lit(float NdotL, float NdotH, float m) { | 
|---|
 | 18 |  | 
|---|
 | 19 |   float ambient = 1.0; | 
|---|
 | 20 |   float diffuse = max(NdotL, 0.0); | 
|---|
 | 21 |   float specular = step(0.0, NdotL) * max(NdotH * m, 0.0); | 
|---|
 | 22 |  | 
|---|
 | 23 |   return vec4(ambient, diffuse, specular, 1.0); | 
|---|
 | 24 | } | 
|---|
 | 25 |  | 
|---|
 | 26 | vec3 expand(vec3 v) | 
|---|
 | 27 | { | 
|---|
 | 28 |         return (v - 0.5) * 2.0; | 
|---|
 | 29 | } | 
|---|
 | 30 |  | 
|---|
 | 31 | /* | 
|---|
 | 32 |   Pixel Shader for doing bump mapping with parallax plus diffuse and specular lighting by masterfalcon | 
|---|
 | 33 | */ | 
|---|
 | 34 | void main() | 
|---|
 | 35 | { | 
|---|
 | 36 |         float height = texture2D(normalHeightMap, oUv0.xy).a; | 
|---|
 | 37 |         float displacement = (height * scaleBias.x) + scaleBias.y; | 
|---|
 | 38 |         vec2 newTexCoord = ((tangentEyeDir * displacement) + oUv0.xyz).xy; | 
|---|
 | 39 |         vec3 bumpVec = expand(texture2D(normalHeightMap, newTexCoord).xyz); | 
|---|
 | 40 |         vec3 N = normalize(bumpVec); | 
|---|
 | 41 |  | 
|---|
 | 42 |         vec3 halfAngle = normalize(tangentEyeDir + tangentLightDir[0]);  | 
|---|
 | 43 |         float NdotL = dot(normalize(tangentLightDir[0]), N); | 
|---|
 | 44 |         float NdotH = dot(normalize(halfAngle), N);  | 
|---|
 | 45 |  | 
|---|
 | 46 |         vec4 Lit = lit(NdotL, NdotH, exponent); | 
|---|
 | 47 |          | 
|---|
 | 48 |         gl_FragColor = lightDiffuse * Lit.y + lightSpecular * Lit.z; | 
|---|
 | 49 | } | 
|---|