+ aiColor4D acol;
+ aiGetMaterialColor(amtl, AI_MATKEY_COLOR_DIFFUSE, &acol);
+ mesh->mtl.diffuse = Vec3(acol.r, acol.g, acol.b);
+
+ float sstr;
+ aiGetMaterialFloat(amtl, AI_MATKEY_SHININESS_STRENGTH, &sstr);
+
+ aiGetMaterialColor(amtl, AI_MATKEY_COLOR_SPECULAR, &acol);
+ mesh->mtl.specular = sstr * Vec3(acol.r, acol.g, acol.b) * 0.3;
+ printf("mtl sstr: %f\n", sstr);
+ printf("mtl spec: %f %f %f\n", acol.r, acol.g, acol.b);
+
+ float shin;
+ aiGetMaterialFloat(amtl, AI_MATKEY_SHININESS, &shin);
+ mesh->mtl.shininess = shin * 6;
+ printf("mtl shin: %f\n", mesh->mtl.shininess);
+
+ aiString astr;
+ if(aiGetMaterialTexture(amtl, aiTextureType_DIFFUSE, 0, &astr) == 0) {
+ char *fname = astr.data;
+ char *slash;
+ char *path;
+
+ if((slash = strrchr(fname, '/'))) {
+ fname = slash + 1;
+ }
+ if((slash = strrchr(fname, '\\'))) {
+ fname = slash + 1;
+ }
+ path = new char[strlen(fname) + 6];
+ sprintf(path, "data/%s", fname);
+ if(!(mesh->mtl.tex = img_gltexture_load(path))) {
+ fprintf(stderr, "Failed to load texture %s\n", fname);
+ }
+ delete [] path;
+ }
+