light_fs.glsl 620 B

1234567891011121314151617181920212223242526
  1. //shared data between vs/ps
  2. varying mediump vec2 result_pos;
  3. varying lowp vec4 result_color;
  4. varying mediump vec2 result_uv;
  5. varying mediump vec2 result_uv2;
  6. uniform lowp sampler2D base_texture;
  7. uniform lowp sampler2D normal_texture;
  8. uniform mediump vec2 light;
  9. void main()
  10. {
  11. lowp vec4 base = texture2D(base_texture, result_uv);
  12. lowp vec3 normal = texture2D(normal_texture, result_uv2).xyz * 2.0 - 1.0;
  13. mediump vec3 dir = normalize(vec3(result_pos.xy, 0.0) - vec3(light, 200.0));
  14. dir = vec3(-dir.x, dir.y, -dir.z);
  15. lowp float l = max(dot(normal, dir), 0.0);
  16. gl_FragColor = vec4(l * base.rgb, base.a);
  17. }