diff --git a/src/main/java/me/cortex/voxy/client/core/rendering/Gl46MeshletsFarWorldRenderer.java b/src/main/java/me/cortex/voxy/client/core/rendering/Gl46MeshletsFarWorldRenderer.java index 99b79e2a..769bd7b3 100644 --- a/src/main/java/me/cortex/voxy/client/core/rendering/Gl46MeshletsFarWorldRenderer.java +++ b/src/main/java/me/cortex/voxy/client/core/rendering/Gl46MeshletsFarWorldRenderer.java @@ -58,7 +58,7 @@ public class Gl46MeshletsFarWorldRenderer extends AbstractFarWorldRenderer= 1<<8) { + throw new IllegalArgumentException("Quad count to large"); + } + MemoryBuffer buffer = new MemoryBuffer(quadCount * 6L); + long ptr = buffer.address; + for(int i = 0; i < quadCount*4; i += 4) { + MemoryUtil.memPutByte(ptr + (0), (byte) i); + MemoryUtil.memPutByte(ptr + (1), (byte) (i + 1)); + MemoryUtil.memPutByte(ptr + (2), (byte) (i + 2)); + MemoryUtil.memPutByte(ptr + (3), (byte) (i + 1)); + MemoryUtil.memPutByte(ptr + (4), (byte) (i + 3)); + MemoryUtil.memPutByte(ptr + (5), (byte) (i + 2)); + + ptr += 6; + } + + return buffer; + } public static MemoryBuffer generateQuadIndicesShort(int quadCount) { if ((quadCount*4) >= 1<<16) { throw new IllegalArgumentException("Quad count to large"); diff --git a/src/main/resources/assets/voxy/shaders/lod/gl46mesh/cmdgen.comp b/src/main/resources/assets/voxy/shaders/lod/gl46mesh/cmdgen.comp index a00d0047..0094118c 100644 --- a/src/main/resources/assets/voxy/shaders/lod/gl46mesh/cmdgen.comp +++ b/src/main/resources/assets/voxy/shaders/lod/gl46mesh/cmdgen.comp @@ -7,7 +7,7 @@ #import #define extractMeshletStart extractQuadStart layout(local_size_x = 64) in; -#define QUADS_PER_MESHLET 126 +#define QUADS_PER_MESHLET 62 void emitMeshlets(inout uint mli, inout uint meshletPtr, uint mskedCnt, uint cnt) { for (;mskedCnt != 0; mskedCnt--,mli++) { diff --git a/src/main/resources/assets/voxy/shaders/lod/gl46mesh/quads.vert b/src/main/resources/assets/voxy/shaders/lod/gl46mesh/quads.vert index 8db9ceb7..8241f8d3 100644 --- a/src/main/resources/assets/voxy/shaders/lod/gl46mesh/quads.vert +++ b/src/main/resources/assets/voxy/shaders/lod/gl46mesh/quads.vert @@ -1,8 +1,8 @@ #version 450 #extension GL_ARB_gpu_shader_int64 : enable +#define QUADS_PER_MESHLET 62 #define MESHLET_ACCESS readonly -#define QUADS_PER_MESHLET 126 //There are 16 bytes of metadata at the start of the meshlet #define MESHLET_SIZE (QUADS_PER_MESHLET+2) #import