| 1234567891011121314151617181920212223242526272829 |
- varying vec2 v_vTexcoord;
- varying vec4 v_vColour;
- varying vec2 v_vPosition;
- uniform sampler2D u_sNormalMap;
- uniform vec2 u_vCameraVector; //cos, sin
- uniform vec4 u_vInfo;
- uniform vec4 u_vCamera;
- uniform float u_fSpecularIntensity;
- void main()
- {
- #ifdef _YY_HLSL11_
- vec2 objectPos = v_vPosition*vec2(1.0, -1.0);
- #else
- vec2 objectPos = v_vPosition;
- #endif
-
- vec3 lightPos = vec3((u_vInfo.xy - u_vCamera.xy) / u_vCamera.zw, u_vInfo.z);
-
- vec4 normalSpecular = texture2D(u_sNormalMap, 0.5 + 0.5*objectPos);
- vec3 normal = 2.0*normalSpecular.xyz - 1.0;
- normal.xy = mat2(u_vCameraVector.x, -u_vCameraVector.y, u_vCameraVector.y, u_vCameraVector.x)*normal.xy;
-
- gl_FragColor = v_vColour*texture2D(gm_BaseTexture, v_vTexcoord);
- gl_FragColor.rgb *= u_vInfo.w*((u_fSpecularIntensity*(1.0 - normalSpecular.w) + 1.0)*max(0.0, dot(normalize(lightPos - vec3(objectPos, 0.0)), normal)));
-
- gl_FragColor.rgb *= u_vInfo.w*(u_fSpecularIntensity*(1.0 - normalSpecular.w) + 1.0);
- }
|