skybox.vp 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. /*
  2. * Copyright (C) 2020, Inria
  3. * GRAPHDECO research group, https://team.inria.fr/graphdeco
  4. * All rights reserved.
  5. *
  6. * This software is free for non-commercial, research and evaluation use
  7. * under the terms of the LICENSE.md file.
  8. *
  9. * For inquiries contact sibr@inria.fr and/or George.Drettakis@inria.fr
  10. */
  11. #version 420
  12. out VSOUT
  13. {
  14. vec3 tc;
  15. } out_Vert;
  16. uniform mat4 in_View;
  17. uniform vec2 in_Aspect;
  18. const float fov = 70.0;
  19. const float vecZ = in_Aspect.y / tan(radians(fov / 2.0));
  20. //const float vecZ = 0.8033332538;
  21. mat3 rotationMatrix(vec3 axis, float angle)
  22. {
  23. axis = normalize(axis);
  24. float s = sin(angle);
  25. float c = cos(angle);
  26. float oc = 1.0 - c;
  27. return mat3(oc * axis.x * axis.x + c, oc * axis.x * axis.y - axis.z * s, oc * axis.z * axis.x + axis.y * s,
  28. oc * axis.x * axis.y + axis.z * s, oc * axis.y * axis.y + c, oc * axis.y * axis.z - axis.x * s,
  29. oc * axis.z * axis.x - axis.y * s, oc * axis.y * axis.z + axis.x * s, oc * axis.z * axis.z + c);
  30. }
  31. void main(void)
  32. {
  33. vec2[4] vertices = vec2[4](vec2(-1.0, -1.0),
  34. vec2( 1.0, -1.0),
  35. vec2(-1.0, 1.0),
  36. vec2( 1.0, 1.0));
  37. vec3 vertex = vec3(vertices[gl_VertexID], -1.0);
  38. // out gl_Position
  39. gl_Position = vec4(vertex, 1.0);
  40. vertex.y = vertex.y * in_Aspect.y;
  41. vertex.z = -vecZ;
  42. out_Vert.tc = mat3(in_View) * vertex;
  43. //out_Vert.tc = rotationMatrix(vec3(1,0,0), -1.14) * out_Vert.tc;
  44. out_Vert.tc.z = -out_Vert.tc.z;
  45. }