anchors.glslv 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #version GLSL_VERSION
  2. /*==============================================================================
  3. VARS
  4. ==============================================================================*/
  5. #var ANCHOR_NUM 0
  6. /*============================================================================*/
  7. #include <std.glsl>
  8. uniform vec3 u_position[ANCHOR_NUM];
  9. uniform mat4 u_view_proj_matrix;
  10. uniform vec2 u_texel_size;
  11. /*==============================================================================
  12. SHADER INTERFACE
  13. ==============================================================================*/
  14. GLSL_IN float a_index;
  15. //------------------------------------------------------------------------------
  16. /*==============================================================================
  17. MAIN
  18. ==============================================================================*/
  19. void main(void) {
  20. int face_index = int(mod(a_index, 3.0));
  21. int pos_index = int(a_index / 3.0);
  22. vec2 ver_offset;
  23. if (face_index == 0) {
  24. ver_offset = vec2(-4.0 * u_texel_size[0], -u_texel_size[1]);
  25. } else if (face_index == 1) {
  26. ver_offset = vec2(4.0 * u_texel_size[0], -u_texel_size[1]);
  27. } else {
  28. ver_offset = vec2(0.0, 5.0 * u_texel_size[1]);
  29. }
  30. vec4 pos_clip = u_view_proj_matrix * vec4(u_position[pos_index], 1.0);
  31. pos_clip.xy += ver_offset * pos_clip.w;
  32. gl_Position = pos_clip;
  33. }