Advertisement
Guest User

Untitled

a guest
Nov 1st, 2014
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.33 KB | None | 0 0
  1. /* VERTEX SHADER */
  2. /*****************/
  3. #version 330 core
  4.  
  5. layout(location = 0) in vec3 vertexpos_vec3;
  6.  
  7. uniform vec4 scale;
  8. uniform vec4 window_to_unit;
  9.  
  10. uniform mat4 model_translation;
  11. uniform mat4 model_rotation;
  12. uniform mat4 projection;
  13.  
  14. out vec4 vertexpos_gamespace;
  15. out vec4 vertexpos_pre_projection;
  16. out vec4 vertexpos_post_projection;
  17.  
  18. uniform mat4 camera_translation;
  19.  
  20. void main()
  21. {
  22.     vec4 vertexpos;
  23.     vertexpos.xyz = vertexpos_vec3;
  24.     vertexpos.w = 1.0;
  25.  
  26.     vertexpos_gamespace = vertexpos;
  27.     vertexpos = scale * vertexpos;
  28.  
  29.     vertexpos = model_translation * vertexpos;
  30.     gl_Position = vertexpos;
  31. }
  32.  
  33.  
  34. /* GEOMETRY SHADER */
  35. /*******************/
  36. #version 330 core
  37.  
  38. uniform mat4 shadowmap_rotation_matrices[6];
  39.  
  40. out vec4 pos_from_gs;
  41.  
  42. void main()
  43. {
  44.     for(gl_Layer = 0; gl_Layer < 6; ++gl_Layer)
  45.     {
  46.         for(int tri_vert = 0; tri_vert < 3; ++tri_vert)
  47.         {
  48.             pos_from_gs = gl_in[tri_vert].gl_Position;
  49.             gl_Position = shadowmap_rotation_matrices[gl_Layer] * pos_from_gs;
  50.             EmitVertex();
  51.         }
  52.         EndPrimitive();
  53.     }
  54. }
  55.  
  56.  
  57. /* FRAGMENT SHADER */
  58. /*******************/
  59. #version 330 core
  60.  
  61. uniform vec2 near_far;
  62. uniform vec4 light_pos;
  63.  
  64. in vec4 pos_from_gs;
  65.  
  66. void main()
  67. {
  68.     float dist = distance(pos_from_gs, light_pos);
  69.     dist = dist / near_far.y; // divide by far plane distance
  70.     gl_FragDepth = dist;
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement