intersection working, outlines wrong

This commit is contained in:
2018-04-10 14:02:18 -04:00
parent dd5f05a12f
commit f3bfaf021e
2 changed files with 53 additions and 26 deletions

View File

@@ -28,28 +28,35 @@ uniform PlaneMats
layout(local_size_x = 128, local_size_y = 1, local_size_z = 1) in;
void main () {
uint ti0 = gl_GlobalInvocationID.x * 4;
uint pv0 = gl_GlobalInvocationID.x * 4;
uint pe0 = gl_GlobalInvocationID.x * 8;
int ti0 = int(gl_GlobalInvocationID.x * 4);
int pv0 = int(gl_GlobalInvocationID.x * 4);
int pe0 = int(gl_GlobalInvocationID.x * 8);
uint ii = 0;
uint vv = 0;
int ii = 0;
int vv = 0;
// polyVerts[pv0 + vv++] = vec4(-1,0,0,1);
// polyVerts[pv0 + vv++] = vec4(1,0,0,1);
//
// polyEdges[pe0 + ii++] = pv0 + 0;
// polyEdges[pe0 + ii++] = pv0 + 1;
for(uint i = 1; i < 4; i++)
for (int i = 0; i < 4; i++)
for (int j = i + 1; j < 4; j++)
{
polyVerts[pv0 + vv++] = (tetraVerts[ti0] + tetraVerts[ti0 + i]) / 2;
}
vec4 a = tetraVerts[tetraInds[ti0 + i]];
vec4 a_ = tform * a;
vec4 b = tetraVerts[tetraInds[ti0 + j]];
vec4 b_ = tform * b;
polyEdges[pe0 + ii++] = pv0 + 0;
polyEdges[pe0 + ii++] = pv0 + 1;
polyEdges[pe0 + ii++] = pv0 + 1;
polyEdges[pe0 + ii++] = pv0 + 2;
polyEdges[pe0 + ii++] = pv0 + 2;
polyEdges[pe0 + ii++] = pv0 + 0;
if (a_.x * b_.x < 0)
{
vec4 p = (b-a) / (a_.x - b_.x) * b_.x + b;
polyVerts[pv0 + vv++] = p;
}
}
for (int i = 0; i < vv; i++)
{
polyEdges[pe0 + ii++] = pv0 + i;
polyEdges[pe0 + ii++] = pv0 + (i + 1) % vv;
}
while (vv < 4) polyVerts[pv0 + vv++] = vec4(0);
while (ii < 8) polyEdges[pe0 + ii++] = 0;
}