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;
|
layout(triangles, max_vertices = 128, max_primitives = 192) out;
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
//if (gl_LocalInvocationIndex == 0) {
|
if (gl_LocalInvocationIndex == 0) {
|
||||||
//writeCounter = 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 old = atomicAdd(writeCounter, 1);
|
||||||
uint z = gl_GlobalInvocationID.x / (ubo.sizeX * ubo.sizeY);
|
uint z = gl_GlobalInvocationID.x / (ubo.sizeX * ubo.sizeY);
|
||||||
uint y = (gl_GlobalInvocationID.x % (ubo.sizeX * ubo.sizeY)) / ubo.sizeX;
|
uint y = (gl_GlobalInvocationID.x % (ubo.sizeX * ubo.sizeY)) / ubo.sizeX;
|
||||||
|
|
@ -83,28 +83,28 @@ void main()
|
||||||
|
|
||||||
uint oldPrimOffset = old*12;
|
uint oldPrimOffset = old*12;
|
||||||
|
|
||||||
gl_PrimitiveTriangleIndicesEXT[oldPrimOffset + 0] = uvec3(oldVertexOffset + 0, oldVertexOffset + 1, oldVertexOffset + 2);
|
gl_PrimitiveTriangleIndicesEXT[oldPrimOffset + 0] = uvec3(oldVertexOffset + 2, oldVertexOffset + 1, oldVertexOffset + 0);
|
||||||
gl_PrimitiveTriangleIndicesEXT[oldPrimOffset + 1] = uvec3(oldVertexOffset + 2, oldVertexOffset + 3, 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 + 2] = uvec3(oldVertexOffset + 4, oldVertexOffset + 5, oldVertexOffset + 6);
|
||||||
gl_PrimitiveTriangleIndicesEXT[oldPrimOffset + 3] = uvec3(oldVertexOffset + 4, oldVertexOffset + 6, oldVertexOffset + 7);
|
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 + 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 + 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 + 8] = uvec3(oldVertexOffset + 7, oldVertexOffset + 3, oldVertexOffset + 0);
|
||||||
gl_PrimitiveTriangleIndicesEXT[oldPrimOffset + 9] = uvec3(oldVertexOffset + 0, oldVertexOffset + 7, oldVertexOffset + 4);
|
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 + 10] = uvec3(oldVertexOffset + 1, oldVertexOffset + 2, oldVertexOffset + 6);
|
||||||
gl_PrimitiveTriangleIndicesEXT[oldPrimOffset + 11] = uvec3(oldVertexOffset + 6, oldVertexOffset + 5, oldVertexOffset + 1);
|
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);
|
SetMeshOutputsEXT(128, 192);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue