changed some rendering buffer code

This commit is contained in:
max
2025-12-15 00:18:16 +01:00
parent 35ecc36bdb
commit 0641d22c9b

View File

@@ -60,20 +60,24 @@ namespace Voxel
{
if (_world == null) return;
int offset = 0;
_chunkBufferSizes.Clear();
int faceOffset = 0;
foreach (Chunk chunk in _world.GetAllChunks())
{
ChunkMesh chunkMesh = chunk.GetChunkMesh();
if (chunkMesh.NeedsUpdate) // always true
{
byte[] data = chunkMesh.GetPackedData();
GL.BufferSubData(BufferTarget.ShaderStorageBuffer, (IntPtr)offset * 8, chunkMesh.Size * 8, data);
}
_chunkBufferSizes[(chunk.X, chunk.Y)] = faceOffset;
_chunkBufferSizes[(chunk.X, chunk.Y)] = offset;
offset += chunkMesh.Size * 8;
byte[] data = chunkMesh.GetPackedData();
GL.BufferSubData(BufferTarget.ShaderStorageBuffer,
(IntPtr)(faceOffset * 8), // faceOffset * 8 = byte offset
chunkMesh.Size * 8,
data
);
faceOffset += chunkMesh.Size;
}
}