From 7bf31dd46897f4fd590b9db275caeb42992ccd47 Mon Sep 17 00:00:00 2001 From: Tristan Schulz Date: Thu, 9 Sep 2021 18:14:15 +0200 Subject: [PATCH] Fixed loading obj models with no materials (#1984) --- src/models.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/src/models.c b/src/models.c index 045cd16a..ab3d0dd0 100644 --- a/src/models.c +++ b/src/models.c @@ -3560,13 +3560,22 @@ static Model LoadOBJ(const char *fileName) model.meshMaterial = (int *)RL_CALLOC(model.meshCount, sizeof(int)); // Count the faces for each material - int *matFaces = RL_CALLOC(materialCount, sizeof(int)); + int *matFaces = RL_CALLOC(model.meshCount, sizeof(int)); - for (int fi = 0; fi< attrib.num_faces; fi++) + // iff no materials are present use all faces on one mesh + if (materialCount > 0) { - //tinyobj_vertex_index_t face = attrib.faces[fi]; - int idx = attrib.material_ids[fi]; - matFaces[idx]++; + for (int fi = 0; fi< attrib.num_faces; fi++) + { + //tinyobj_vertex_index_t face = attrib.faces[fi]; + int idx = attrib.material_ids[fi]; + matFaces[idx]++; + } + + } + else + { + matFaces[0] = attrib.num_faces; } //-------------------------------------- @@ -5606,4 +5615,4 @@ static Model LoadVOX(const char *fileName) return model; } -#endif \ No newline at end of file +#endif