From e3ad918755937e308db289c4fdabea63c042f72c Mon Sep 17 00:00:00 2001 From: Klesti Selimaj Date: Tue, 3 Mar 2026 02:37:53 +0100 Subject: [PATCH] Working obj rendering --- .../java/org/saturnclient/cosmetics/obj/ObjRenderer.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/saturnclient/cosmetics/obj/ObjRenderer.java b/src/main/java/org/saturnclient/cosmetics/obj/ObjRenderer.java index 7c68a08..8d6a413 100644 --- a/src/main/java/org/saturnclient/cosmetics/obj/ObjRenderer.java +++ b/src/main/java/org/saturnclient/cosmetics/obj/ObjRenderer.java @@ -7,7 +7,6 @@ import de.javagl.obj.FloatTuple; import de.javagl.obj.Obj; import de.javagl.obj.ObjFace; import de.javagl.obj.ObjReader; -import de.javagl.obj.ObjUtils; import net.minecraft.client.MinecraftClient; import net.minecraft.client.render.RenderLayer; @@ -20,7 +19,7 @@ public class ObjRenderer { public static Obj loadObj(Identifier objId) throws IOException { try (InputStream is = MinecraftClient.getInstance().getResourceManager() .getResource(objId).get().getInputStream()) { - return ObjUtils.convertToRenderable(ObjReader.read(is)); + return ObjReader.read(is); } } @@ -33,10 +32,14 @@ public class ObjRenderer { int faces = obj.getNumFaces(); + System.out.println("Faces " + faces + ", vertices " + obj.getNumVertices()); + for (int f = 0; f < faces; f++) { ObjFace face = obj.getFace(f); + int vertices = face.getNumVertices(); - for (int i = 0; i < 3; i++) { + // Reverse winding order: OBJ is CCW, Minecraft expects CW + for (int i = vertices - 1; i >= 0; i--) { writeVertex(obj, face, i, consumer, entry, light, overlay); } }