fixed voxel winding order for real this time
This commit is contained in:
parent
34b7febe54
commit
941e076857
1 changed files with 15 additions and 15 deletions
|
|
@ -52,15 +52,15 @@ layout(local_size_x = 16, local_size_y = 1, local_size_z = 1) in;
|
|||
layout(triangles, max_vertices = 128, max_primitives = 192) out;
|
||||
void main()
|
||||
{
|
||||
//if (gl_LocalInvocationIndex == 0) {
|
||||
//writeCounter = 0;
|
||||
//}
|
||||
if (gl_LocalInvocationIndex == 0) {
|
||||
writeCounter = 0;
|
||||
}
|
||||
|
||||
//barrier();
|
||||
barrier();
|
||||
|
||||
//uint type = voxels.voxel[gl_GlobalInvocationID.x].type;
|
||||
uint type = voxels.voxel[gl_GlobalInvocationID.x].type;
|
||||
|
||||
//if(type != 0) {
|
||||
if(type != 0) {
|
||||
uint old = atomicAdd(writeCounter, 1);
|
||||
uint z = gl_GlobalInvocationID.x / (ubo.sizeX * ubo.sizeY);
|
||||
uint y = (gl_GlobalInvocationID.x % (ubo.sizeX * ubo.sizeY)) / ubo.sizeX;
|
||||
|
|
@ -83,28 +83,28 @@ void main()
|
|||
|
||||
uint oldPrimOffset = old*12;
|
||||
|
||||
gl_PrimitiveTriangleIndicesEXT[oldPrimOffset + 0] = uvec3(oldVertexOffset + 0, oldVertexOffset + 1, oldVertexOffset + 2);
|
||||
gl_PrimitiveTriangleIndicesEXT[oldPrimOffset + 1] = uvec3(oldVertexOffset + 2, oldVertexOffset + 3, oldVertexOffset + 0);
|
||||
gl_PrimitiveTriangleIndicesEXT[oldPrimOffset + 0] = uvec3(oldVertexOffset + 2, oldVertexOffset + 1, oldVertexOffset + 0);
|
||||
gl_PrimitiveTriangleIndicesEXT[oldPrimOffset + 1] = uvec3(oldVertexOffset + 0, oldVertexOffset + 3, oldVertexOffset + 2);
|
||||
|
||||
gl_PrimitiveTriangleIndicesEXT[oldPrimOffset + 2] = uvec3(oldVertexOffset + 4, oldVertexOffset + 5, oldVertexOffset + 6);
|
||||
gl_PrimitiveTriangleIndicesEXT[oldPrimOffset + 3] = uvec3(oldVertexOffset + 4, oldVertexOffset + 6, oldVertexOffset + 7);
|
||||
|
||||
gl_PrimitiveTriangleIndicesEXT[oldPrimOffset + 4] = uvec3(oldVertexOffset + 0, oldVertexOffset + 1, oldVertexOffset + 5);
|
||||
gl_PrimitiveTriangleIndicesEXT[oldPrimOffset + 5] = uvec3(oldVertexOffset + 0, oldVertexOffset + 4, oldVertexOffset + 5);
|
||||
gl_PrimitiveTriangleIndicesEXT[oldPrimOffset + 5] = uvec3(oldVertexOffset + 5, oldVertexOffset + 4, oldVertexOffset + 0);
|
||||
|
||||
gl_PrimitiveTriangleIndicesEXT[oldPrimOffset + 6] = uvec3(oldVertexOffset + 3, oldVertexOffset + 6, oldVertexOffset + 2);
|
||||
gl_PrimitiveTriangleIndicesEXT[oldPrimOffset + 7] = uvec3(oldVertexOffset + 6, oldVertexOffset + 7, oldVertexOffset + 3);
|
||||
gl_PrimitiveTriangleIndicesEXT[oldPrimOffset + 7] = uvec3(oldVertexOffset + 3, oldVertexOffset + 7, oldVertexOffset + 6);
|
||||
|
||||
gl_PrimitiveTriangleIndicesEXT[oldPrimOffset + 8] = uvec3(oldVertexOffset + 0, oldVertexOffset + 3, oldVertexOffset + 7);
|
||||
gl_PrimitiveTriangleIndicesEXT[oldPrimOffset + 9] = uvec3(oldVertexOffset + 0, oldVertexOffset + 7, oldVertexOffset + 4);
|
||||
gl_PrimitiveTriangleIndicesEXT[oldPrimOffset + 8] = uvec3(oldVertexOffset + 7, oldVertexOffset + 3, oldVertexOffset + 0);
|
||||
gl_PrimitiveTriangleIndicesEXT[oldPrimOffset + 9] = uvec3(oldVertexOffset + 4, oldVertexOffset + 7, oldVertexOffset + 0);
|
||||
|
||||
gl_PrimitiveTriangleIndicesEXT[oldPrimOffset + 10] = uvec3(oldVertexOffset + 1, oldVertexOffset + 2, oldVertexOffset + 6);
|
||||
gl_PrimitiveTriangleIndicesEXT[oldPrimOffset + 11] = uvec3(oldVertexOffset + 6, oldVertexOffset + 5, oldVertexOffset + 1);
|
||||
//}
|
||||
}
|
||||
|
||||
//barrier();
|
||||
barrier();
|
||||
|
||||
//SetMeshOutputsEXT(writeCounter*8, writeCounter*12);
|
||||
SetMeshOutputsEXT(writeCounter*8, writeCounter*12);
|
||||
|
||||
SetMeshOutputsEXT(128, 192);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue