Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #version 300 es
- #extension GL_OES_geometry_shader : enable
- layout(points) in;
- layout(triangle_strip, max_vertices = 14) out;
- uniform mat4 uMVP;
- uniform vec3 uSpacing;
- out vec4 outGeomColor;
- in VS_OUT
- {
- vec4 outVSColor;
- }gsIn[];
- void main()
- {
- /*----------------------------------------------------------------------------*/
- /*--------------------------Determine cube position---------------------------*/
- /*----------------------------------------------------------------------------*/
- vec4 cubePos[8];
- vec3 spacing = vec3(0.5, 0.5, 0.5);
- //Back
- cubePos[0] = gl_in[0].gl_Position + vec4(0, 0, spacing.z, 0.0);
- cubePos[1] = gl_in[0].gl_Position + vec4(spacing.x, 0, spacing.z, 0.0);
- cubePos[2] = gl_in[0].gl_Position + vec4(0, spacing.y, spacing.z, 0.0);
- cubePos[3] = gl_in[0].gl_Position + vec4(spacing.x, spacing.y, spacing.z, 0.0);
- //Front
- cubePos[4] = gl_in[0].gl_Position + vec4(0, 0, 0, 0.0);
- cubePos[5] = gl_in[0].gl_Position + vec4(spacing.x, 0, 0, 0.0);
- cubePos[6] = gl_in[0].gl_Position + vec4(0, spacing.y, 0, 0.0);
- cubePos[7] = gl_in[0].gl_Position + vec4(spacing.x, spacing.y, 0, 0.0);
- for(int i = 0; i < 8; i++)
- {
- cubePos[i] = uMVP*cubePos[i];
- cubePos[i].xyz /= 2.0;
- }
- vec4 cubeColor[8];
- cubeColor[0] = vec4(0.0, 0.0, 0.0, 1.0);
- cubeColor[1] = vec4(1.0, 0.0, 0.0, 1.0);
- cubeColor[2] = vec4(0.0, 1.0, 0.0, 1.0);
- cubeColor[3] = vec4(0.0, 0.0, 1.0, 1.0);
- cubeColor[4] = vec4(0.0, 1.0, 1.0, 1.0);
- cubeColor[5] = vec4(1.0, 1.0, 0.0, 1.0);
- cubeColor[6] = vec4(1.0, 0.0, 1.0, 1.0);
- cubeColor[7] = vec4(1.0, 1.0, 1.0, 1.0);
- int ind[14];
- ind[0] = 6;
- ind[1] = 7;
- ind[2] = 5;
- ind[3] = 4;
- ind[4] = 1;
- ind[5] = 7;
- ind[6] = 3;
- ind[7] = 6;
- ind[8] = 2;
- ind[9] = 4;
- ind[10] = 0;
- ind[11] = 1;
- ind[12] = 2;
- ind[13] = 3;
- for(int i = 0; i < 14; i++)
- {
- outGeomColor = cubeColor[ind[i]];
- gl_Position = cubePos[ind[i]];
- EmitVertex();
- }
- EndPrimitive();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement