Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* VERTEX SHADER */
- /*****************/
- #version 330 core
- layout(location = 0) in vec3 vertexpos_vec3;
- uniform vec4 scale;
- uniform vec4 window_to_unit;
- uniform mat4 model_translation;
- uniform mat4 model_rotation;
- uniform mat4 projection;
- out vec4 vertexpos_gamespace;
- out vec4 vertexpos_pre_projection;
- out vec4 vertexpos_post_projection;
- uniform mat4 camera_translation;
- void main()
- {
- vec4 vertexpos;
- vertexpos.xyz = vertexpos_vec3;
- vertexpos.w = 1.0;
- vertexpos_gamespace = vertexpos;
- vertexpos = scale * vertexpos;
- vertexpos = model_translation * vertexpos;
- gl_Position = vertexpos;
- }
- /* GEOMETRY SHADER */
- /*******************/
- #version 330 core
- uniform mat4 shadowmap_rotation_matrices[6];
- out vec4 pos_from_gs;
- void main()
- {
- for(gl_Layer = 0; gl_Layer < 6; ++gl_Layer)
- {
- for(int tri_vert = 0; tri_vert < 3; ++tri_vert)
- {
- pos_from_gs = gl_in[tri_vert].gl_Position;
- gl_Position = shadowmap_rotation_matrices[gl_Layer] * pos_from_gs;
- EmitVertex();
- }
- EndPrimitive();
- }
- }
- /* FRAGMENT SHADER */
- /*******************/
- #version 330 core
- uniform vec2 near_far;
- uniform vec4 light_pos;
- in vec4 pos_from_gs;
- void main()
- {
- float dist = distance(pos_from_gs, light_pos);
- dist = dist / near_far.y; // divide by far plane distance
- gl_FragDepth = dist;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement