From 3c0ed845f910fe7ea41ea6b3118f2e004a0f7683 Mon Sep 17 00:00:00 2001 From: Adam Date: Tue, 28 Mar 2017 18:26:45 -0400 Subject: [PATCH] model viewer: don't render faces with type & 2 --- .../cache/definitions/loaders/ModelLoader.java | 1 + .../java/net/runelite/modelviewer/ModelViewer.java | 10 ++++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/cache/src/main/java/net/runelite/cache/definitions/loaders/ModelLoader.java b/cache/src/main/java/net/runelite/cache/definitions/loaders/ModelLoader.java index 25304eca01..312fcc7f8c 100644 --- a/cache/src/main/java/net/runelite/cache/definitions/loaders/ModelLoader.java +++ b/cache/src/main/java/net/runelite/cache/definitions/loaders/ModelLoader.java @@ -20,6 +20,7 @@ public class ModelLoader } def.computeNormals(); + def.computeTextureUVCoordinates(); return def; } diff --git a/model-viewer/src/main/java/net/runelite/modelviewer/ModelViewer.java b/model-viewer/src/main/java/net/runelite/modelviewer/ModelViewer.java index 3ee33853e2..af37e5090f 100644 --- a/model-viewer/src/main/java/net/runelite/modelviewer/ModelViewer.java +++ b/model-viewer/src/main/java/net/runelite/modelviewer/ModelViewer.java @@ -249,6 +249,11 @@ public class ModelViewer { for (int i = 0; i < md.faceCount; ++i) { + byte faceRenderType = md.faceRenderTypes[i]; + + if ((faceRenderType & 2) != 0) + continue; // what is this? + int vertexA = md.faceVertexIndices1[i]; int vertexB = md.faceVertexIndices2[i]; int vertexC = md.faceVertexIndices3[i]; @@ -278,7 +283,7 @@ public class ModelViewer int vertexCy = md.vertexPositionsY[vertexC]; int vertexCz = md.vertexPositionsZ[vertexC]; - short textureId = md.faceTextures[i]; + short textureId = md.faceTextures != null ? md.faceTextures[i] : -1; Color color; float[] u = null; @@ -611,9 +616,6 @@ public class ModelViewer ModelLoader loader = new ModelLoader(); md = loader.load(id, b); - md.computeNormals(); - md.computeTextureUVCoordinates(); - models[id] = md; return md; }