changed some rendering buffer code
This commit is contained in:
20
Renderer.cs
20
Renderer.cs
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user