tilemap.frag 918 B

1234567891011121314151617181920212223242526272829303132333435
  1. #version 110
  2. uniform sampler2D baseMap;
  3. varying vec2 vTexcoord;
  4. float fract_(float v)
  5. {
  6. return clamp(fract(v + 0.001) - 0.001, 0.000, 0.999);
  7. }
  8. float floor_(float v)
  9. {
  10. return floor(v + 0.001);
  11. }
  12. void main( void )
  13. {
  14. vec4 tileinfo = texture2D( baseMap, vec2(vTexcoord.x / 2.0, (vTexcoord.y+901.0)/1024.0));
  15. if(
  16. texture2D(baseMap, vec2(
  17. fract_((floor_(tileinfo.z * 63.75) + tileinfo.w * 255.0 * 64.0) / 64.0) + fract_(vTexcoord.x * 256.0) / 64.0
  18. ,
  19. floor_((floor_(tileinfo.z * 63.75) + tileinfo.w * 255.0 * 64.0) / 64.0) * 14.0 / 1024.0 + fract_(vTexcoord.y) * 14.0 / 1024.0
  20. )
  21. ).x > 0.5)
  22. {
  23. gl_FragColor = texture2D( baseMap, vec2(tileinfo.x * 0.5 + fract_(tileinfo.y * 127.501), 896.0/1024.0));
  24. }
  25. else
  26. {
  27. gl_FragColor = texture2D( baseMap, vec2(floor_(tileinfo.y * 127.5) / 512.0 + fract_(tileinfo.z * 63.751), 896.0/1024.0));
  28. }
  29. }