diff options
author | taw27 <taw27@84d2e878-0bd5-11dd-ad15-13eda11d74c5> | 2008-08-10 19:14:40 +0000 |
---|---|---|
committer | taw27 <taw27@84d2e878-0bd5-11dd-ad15-13eda11d74c5> | 2008-08-10 19:14:40 +0000 |
commit | 9836d52cebef33002b8cea7d2e15d4e0da043e76 (patch) | |
tree | be29c88526015ce27b8c480b4ce79c2b5a038ab2 /src/obj2model.c | |
parent | 98315c0a86e2d8157e3aec73d532bb4c87860ed2 (diff) |
Process texture and Ks components from OBJ files
git-svn-id: svn://cook.msm.cam.ac.uk:745/thrust3d/thrust3d@246 84d2e878-0bd5-11dd-ad15-13eda11d74c5
Diffstat (limited to 'src/obj2model.c')
-rw-r--r-- | src/obj2model.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/obj2model.c b/src/obj2model.c index a720273..9b6f9ba 100644 --- a/src/obj2model.c +++ b/src/obj2model.c @@ -22,6 +22,19 @@ #define MAX_VERTICES 65536 +static char *texname(const char *filename) { + int i; + char *rval; + rval = strdup(filename); + for ( i=0; i<strlen(rval); i++ ) { + if ( rval[i] == '.' ) { + rval[i] = '\0'; + return rval; + } + } + return rval; +} + static void do_material(const char *mtllib, const char *mtlname, FILE *out, char *infilename) { FILE *fh; @@ -66,6 +79,15 @@ static void do_material(const char *mtllib, const char *mtlname, FILE *out, char if ( strcmp(bits[0], "Kd") == 0 ) { fprintf(out, "colour %s %s %s\n", bits[1], bits[2], bits[3]); } + if ( strcmp(bits[0], "Ks") == 0 ) { + fprintf(out, "colspec %s %s %s\n", bits[1], bits[2], bits[3]); + } + if ( strcmp(bits[0], "map_Kd") == 0 ) { + char *tex; + tex = texname(bits[1]); + fprintf(out, "texture %s\n", tex); + free(tex); + } if ( strcmp(bits[0], "Ns") == 0 ) { fprintf(out, "shiny %s\n", bits[1]); } |