diff --git a/buildNumber.properties b/buildNumber.properties index 35d40c72..a377d61b 100644 --- a/buildNumber.properties +++ b/buildNumber.properties @@ -1,3 +1,3 @@ #maven.buildNumber.plugin properties file -#Fri Mar 28 09:59:20 EDT 2025 -buildNumber=609 +#Fri Mar 28 12:07:10 EDT 2025 +buildNumber=611 diff --git a/docs/src/progress/renderertodo.md b/docs/src/progress/renderertodo.md index 0451837c..c5ee4dea 100644 --- a/docs/src/progress/renderertodo.md +++ b/docs/src/progress/renderertodo.md @@ -1354,6 +1354,9 @@ Fix TextureInstancedActor packing data texture incorrectly (column major instead (03/28/2025) Grass height variance with control from ui + file Fix block mesh ray casting bug due to trimesh overlap +Fix block mesh samplers incorrectly buffering + + # TODO diff --git a/src/main/java/electrosphere/renderer/meshgen/BlockMeshgen.java b/src/main/java/electrosphere/renderer/meshgen/BlockMeshgen.java index 070c95b8..2fade580 100644 --- a/src/main/java/electrosphere/renderer/meshgen/BlockMeshgen.java +++ b/src/main/java/electrosphere/renderer/meshgen/BlockMeshgen.java @@ -127,6 +127,7 @@ public class BlockMeshgen { // //face 1 // + int samplerIndex = Globals.blockTextureAtlas.getVoxelTypeOffset(blockType); //verts verts.add(new Vector3f(quad.x, quad.y, quad.z).mul(BlockChunkData.BLOCK_SIZE_MULTIPLIER)); @@ -150,6 +151,11 @@ public class BlockMeshgen { uvs.add(new Vector2f(quad.w, 0)); uvs.add(new Vector2f( 0, quad.h)); uvs.add(new Vector2f(quad.w, quad.h)); + //samplers + samplers.add(samplerIndex); + samplers.add(samplerIndex); + samplers.add(samplerIndex); + samplers.add(samplerIndex); // //face 2 @@ -177,6 +183,11 @@ public class BlockMeshgen { uvs.add(new Vector2f(depth, 0)); uvs.add(new Vector2f( 0, quad.h)); uvs.add(new Vector2f(depth, quad.h)); + //samplers + samplers.add(samplerIndex); + samplers.add(samplerIndex); + samplers.add(samplerIndex); + samplers.add(samplerIndex); // //face 3 @@ -204,6 +215,11 @@ public class BlockMeshgen { uvs.add(new Vector2f(depth, 0)); uvs.add(new Vector2f( 0, quad.w)); uvs.add(new Vector2f(depth, quad.w)); + //samplers + samplers.add(samplerIndex); + samplers.add(samplerIndex); + samplers.add(samplerIndex); + samplers.add(samplerIndex); // //face 4 @@ -231,6 +247,11 @@ public class BlockMeshgen { uvs.add(new Vector2f(quad.w, 0)); uvs.add(new Vector2f( 0, quad.h)); uvs.add(new Vector2f(quad.w, quad.h)); + //samplers + samplers.add(samplerIndex); + samplers.add(samplerIndex); + samplers.add(samplerIndex); + samplers.add(samplerIndex); // @@ -259,6 +280,11 @@ public class BlockMeshgen { uvs.add(new Vector2f(depth, 0)); uvs.add(new Vector2f( 0, quad.h)); uvs.add(new Vector2f(depth, quad.h)); + //samplers + samplers.add(samplerIndex); + samplers.add(samplerIndex); + samplers.add(samplerIndex); + samplers.add(samplerIndex); // @@ -287,6 +313,11 @@ public class BlockMeshgen { uvs.add(new Vector2f(depth, 0)); uvs.add(new Vector2f( 0, quad.w)); uvs.add(new Vector2f(depth, quad.w)); + //samplers + samplers.add(samplerIndex); + samplers.add(samplerIndex); + samplers.add(samplerIndex); + samplers.add(samplerIndex); } diff --git a/src/main/java/electrosphere/renderer/model/Mesh.java b/src/main/java/electrosphere/renderer/model/Mesh.java index dd22b319..8250d1ca 100644 --- a/src/main/java/electrosphere/renderer/model/Mesh.java +++ b/src/main/java/electrosphere/renderer/model/Mesh.java @@ -235,7 +235,7 @@ public class Mesh { bufferPointer = glGenBuffers(); glBindBuffer(GL_ARRAY_BUFFER, bufferPointer); GL15.glBufferData(GL_ARRAY_BUFFER, buffer, GL_STATIC_DRAW); - glVertexAttribPointer(attribIndex, bufferDimension, GL_INT, false, 0, 0); + GL40.glVertexAttribIPointer(attribIndex, bufferDimension, GL_INT, 0, 0); glEnableVertexAttribArray(attribIndex); } return bufferPointer; @@ -255,7 +255,7 @@ public class Mesh { bufferPointer = glGenBuffers(); glBindBuffer(GL_ARRAY_BUFFER, bufferPointer); GL15.glBufferData(GL_ARRAY_BUFFER, buffer, GL_STATIC_DRAW); - glVertexAttribPointer(attribIndex, bufferDimension, GL_UNSIGNED_INT, false, 0, 0); + GL40.glVertexAttribIPointer(attribIndex, bufferDimension, GL_UNSIGNED_INT, 0, 0); glEnableVertexAttribArray(attribIndex); } return bufferPointer;