text.vert 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. /**
  2. * Copyright (c) 2019 mol* contributors, licensed under MIT, See LICENSE file for more info.
  3. *
  4. * @author Alexander Rose <alexander.rose@weirdbyte.de>
  5. */
  6. precision highp float;
  7. precision highp int;
  8. #pragma glslify: import('./chunks/common-vert-params.glsl')
  9. #pragma glslify: import('./chunks/color-vert-params.glsl')
  10. #pragma glslify: import('./chunks/size-vert-params.glsl')
  11. uniform mat4 uModelView;
  12. attribute vec3 aPosition;
  13. attribute vec2 aMapping;
  14. attribute vec2 aTexCoord;
  15. attribute mat4 aTransform;
  16. attribute float aInstance;
  17. attribute float aGroup;
  18. uniform float uOffsetX;
  19. uniform float uOffsetY;
  20. uniform float uOffsetZ;
  21. // uniform bool ortho;
  22. uniform float uPixelRatio;
  23. uniform float uViewportHeight;
  24. varying vec2 vTexCoord;
  25. #pragma glslify: matrixScale = require(./utils/matrix-scale.glsl)
  26. void main(void){
  27. #pragma glslify: import('./chunks/assign-color-varying.glsl')
  28. #pragma glslify: import('./chunks/assign-marker-varying.glsl')
  29. #pragma glslify: import('./chunks/assign-size.glsl')
  30. vTexCoord = aTexCoord;
  31. float scale = matrixScale(uModelView);
  32. float offsetX = uOffsetX * scale;
  33. float offsetY = uOffsetY * scale;
  34. float offsetZ = uOffsetZ * scale;
  35. if (vTexCoord.x == 10.0) {
  36. offsetZ -= 0.001;
  37. }
  38. vec4 mvPosition = uModelView * aTransform * vec4(aPosition, 1.0);
  39. // #ifdef FIXED_SIZE
  40. // if (ortho) {
  41. // scale /= pixelRatio * ((uViewportHeight / 2.0) / -uCameraPosition.z) * 0.1;
  42. // } else {
  43. // scale /= pixelRatio * ((uViewportHeight / 2.0) / -mvPosition.z) * 0.1;
  44. // }
  45. // #endif
  46. vec4 mvCorner = vec4(mvPosition.xyz, 1.0);
  47. mvCorner.xy += aMapping * size * scale;
  48. mvCorner.x += offsetX;
  49. mvCorner.y += offsetY;
  50. // if(ortho){
  51. // mvCorner.xyz += normalize(-uCameraPosition) * offsetZ;
  52. // } else {
  53. // mvCorner.xyz += normalize(-mvCorner.xyz) * offsetZ;
  54. // }
  55. mvCorner.xyz += normalize(-mvCorner.xyz) * offsetZ;
  56. gl_Position = uProjection * mvCorner;
  57. vViewPosition = -mvCorner.xyz;
  58. }