diff options
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]); } |