diff options
| author | Teodor Stoenescu <demonu.ro@gmail.com> | 2016-08-31 09:24:39 +0300 |
|---|---|---|
| committer | Teodor Stoenescu <demonu.ro@gmail.com> | 2016-08-31 09:24:39 +0300 |
| commit | d0cf19e03559eb5cd60035d54d4ca7b5991344b8 (patch) | |
| tree | 48a007af8d1c8418f95c1692c81607d3212f04aa | |
| parent | 6e20037f7d72931f52a0bd03abbb45e2e7abf2e8 (diff) | |
| download | raylib-d0cf19e03559eb5cd60035d54d4ca7b5991344b8.tar.gz raylib-d0cf19e03559eb5cd60035d54d4ca7b5991344b8.zip | |
Greater LoadOBJ() flexibility
LoadOBJ can now load objects with having no texture coordinates or
objects having texture coordinates specified as tuples.
| -rw-r--r-- | src/models.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/models.c b/src/models.c index 42798483..92b9850e 100644 --- a/src/models.c +++ b/src/models.c @@ -1898,9 +1898,7 @@ static Mesh LoadOBJ(const char *fileName) if (dataType == 't') // Read texCoord { - float useless = 0; - - fscanf(objFile, "%f %f %f", &midTexCoords[countTexCoords].x, &midTexCoords[countTexCoords].y, &useless); + fscanf(objFile, "%f %f%*[^\n]s\n", &midTexCoords[countTexCoords].x, &midTexCoords[countTexCoords].y); countTexCoords++; fscanf(objFile, "%c", &dataType); @@ -1959,6 +1957,7 @@ static Mesh LoadOBJ(const char *fileName) if ((numNormals == 0) && (numTexCoords == 0)) fscanf(objFile, "%i %i %i", &vNum[0], &vNum[1], &vNum[2]); else if (numNormals == 0) fscanf(objFile, "%i/%i %i/%i %i/%i", &vNum[0], &vtNum[0], &vNum[1], &vtNum[1], &vNum[2], &vtNum[2]); + else if (numTexCoords == 0) fscanf(objFile, "%i//%i %i//%i %i//%i", &vNum[0], &vnNum[0], &vNum[1], &vnNum[1], &vNum[2], &vnNum[2]); else fscanf(objFile, "%i/%i/%i %i/%i/%i %i/%i/%i", &vNum[0], &vtNum[0], &vnNum[0], &vNum[1], &vtNum[1], &vnNum[1], &vNum[2], &vtNum[2], &vnNum[2]); mesh.vertices[vCounter] = midVertices[vNum[0]-1].x; |
