diff --git a/src/integration-test/kotlin/de/bixilon/minosoft/gui/rendering/system/base/RenderOrderTest.kt b/src/integration-test/kotlin/de/bixilon/minosoft/gui/rendering/system/base/RenderOrderTest.kt index 9a861706c..8e15843a4 100644 --- a/src/integration-test/kotlin/de/bixilon/minosoft/gui/rendering/system/base/RenderOrderTest.kt +++ b/src/integration-test/kotlin/de/bixilon/minosoft/gui/rendering/system/base/RenderOrderTest.kt @@ -34,6 +34,6 @@ class RenderOrderTest { val result: MutableList = mutableListOf() order.iterateReverse { position, uv -> result += position; result += uv } - assertEquals(result, listOf(0, 9, 3, 6, 2, 7, 1, 8)) + assertEquals(result, listOf(3, 6, 2, 7, 1, 8, 0, 9)) } } diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/gui/GUIRenderer.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/gui/GUIRenderer.kt index 6d29be994..4a16f1627 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/gui/GUIRenderer.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/gui/GUIRenderer.kt @@ -97,7 +97,6 @@ class GUIRenderer( destinationRGB = BlendingFunctions.ONE_MINUS_SOURCE_ALPHA, sourceAlpha = BlendingFunctions.ONE, destinationAlpha = BlendingFunctions.ONE_MINUS_SOURCE_ALPHA, - faceCulling = false, ) shader.use() } diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/models/block/state/render/BlockGUIConsumer.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/models/block/state/render/BlockGUIConsumer.kt index e603a4c83..402b89bc7 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/models/block/state/render/BlockGUIConsumer.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/models/block/state/render/BlockGUIConsumer.kt @@ -48,7 +48,7 @@ class BlockGUIConsumer( val tint = (lightTint.toBits() shl 8) or 0xFF - gui.context.system.quadOrder.iterate { p, uv -> + gui.context.system.quadOrder.iterateReverse { p, uv -> val vertexOffset = p * Vec3.length val uvOffset = uv * Vec2.length @@ -56,10 +56,9 @@ class BlockGUIConsumer( val out = matrix * xyz - val x = ((out.x) * size.x) + offset.x + 1.0f - val y = ((-out.y + 0.75f) * size.y) + offset.y - - // TODO: depth + val x = ((out.x + 0.8f) * size.x) + offset.x + 1.0f + val y = ((-out.y + 0.81f) * size.y) + offset.y + // values fresh from my ass consumer.addVertex(x, y, textureId, uvData[uvOffset], uvData[uvOffset + 1], tint, options) } diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/models/raw/display/ModelDisplay.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/models/raw/display/ModelDisplay.kt index a01535ee6..d6f7fc1bc 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/models/raw/display/ModelDisplay.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/models/raw/display/ModelDisplay.kt @@ -28,11 +28,15 @@ data class ModelDisplay( val scale: Vec3 = Vec3.ONE, ) { val matrix = Mat4() - .translateAssign(translation) - .rotateRadAssign(rotation) .scaleAssign(scale) + .translateAssign(translation) + .translateAssign(CENTER) + .rotateRadAssign(rotation) + .translateAssign(N_CENTER) companion object { + val CENTER = Vec3(0.5f) + val N_CENTER = -CENTER val DEFAULT = ModelDisplay() fun deserialize(data: JsonObject): ModelDisplay { diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/system/base/RenderOrder.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/system/base/RenderOrder.kt index 68063165b..332b40805 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/system/base/RenderOrder.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/system/base/RenderOrder.kt @@ -36,10 +36,9 @@ class RenderOrder( inline fun iterateReverse(vertex: (position: Int, uv: Int) -> Unit) { if (size == 0) return - this.vertex(0, vertex) var index = order.size - 1 - 1 // index, element alignment - while (index > 1) { + while (index >= 0) { this.vertex(index, vertex) index -= 2 }