// // ShaderPlain.fsh // #define USE_PHONG (1) uniform lowp vec3 vMaterialAmbient; uniform mediump vec4 vMaterialSpecular; varying lowp vec4 colorDiffuse; #if USE_PHONG uniform highp vec3 vLight0; varying mediump vec3 position; varying mediump vec3 normal; #else varying lowp vec4 colorSpecular; #endif void main() { #if USE_PHONG mediump vec3 halfVector = normalize(-vLight0 + position); mediump float NdotH = max(dot(normalize(normal), halfVector), 0.0); mediump float fPower = vMaterialSpecular.w; mediump float specular = pow(NdotH, fPower); lowp vec4 colorSpecular = vec4( vMaterialSpecular.xyz * specular, 1 ); gl_FragColor = colorDiffuse + colorSpecular; #else gl_FragColor = colorDiffuse + colorSpecular; #endif }