aboutsummaryrefslogtreecommitdiff
path: root/src/obj2model.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/obj2model.c')
-rw-r--r--src/obj2model.c22
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]);
}