|
|
@ -1857,35 +1857,34 @@ bool ExportMesh(Mesh mesh, const char *fileName) |
|
|
|
|
|
|
|
#if defined(SUPPORT_FILEFORMAT_OBJ) || defined(SUPPORT_FILEFORMAT_MTL) |
|
|
|
// Process obj materials |
|
|
|
static void ProcessMaterialsOBJ(Material *rayMaterials, tinyobj_material_t *materials, int materialCount) |
|
|
|
static void ProcessMaterialsOBJ(Material *materials, tinyobj_material_t *mats, int materialCount) |
|
|
|
{ |
|
|
|
// Init model materials |
|
|
|
// Init model mats |
|
|
|
for (int m = 0; m < materialCount; m++) |
|
|
|
{ |
|
|
|
// Init material to default |
|
|
|
// NOTE: Uses default shader, which only supports MATERIAL_MAP_DIFFUSE |
|
|
|
rayMaterials[m] = LoadMaterialDefault(); |
|
|
|
materials[m] = LoadMaterialDefault(); |
|
|
|
|
|
|
|
// Get default texture, in case no texture is defined |
|
|
|
// NOTE: rlgl default texture is a 1x1 pixel UNCOMPRESSED_R8G8B8A8 |
|
|
|
rayMaterials[m].maps[MATERIAL_MAP_DIFFUSE].texture = (Texture2D){ rlGetTextureIdDefault(), 1, 1, 1, PIXELFORMAT_UNCOMPRESSED_R8G8B8A8 }; |
|
|
|
materials[m].maps[MATERIAL_MAP_DIFFUSE].texture = (Texture2D){ rlGetTextureIdDefault(), 1, 1, 1, PIXELFORMAT_UNCOMPRESSED_R8G8B8A8 }; |
|
|
|
|
|
|
|
if (materials[m].diffuse_texname != NULL) rayMaterials[m].maps[MATERIAL_MAP_DIFFUSE].texture = LoadTexture(materials[m].diffuse_texname); //char *diffuse_texname; // map_Kd |
|
|
|
if (mats[m].diffuse_texname != NULL) materials[m].maps[MATERIAL_MAP_DIFFUSE].texture = LoadTexture(mats[m].diffuse_texname); //char *diffuse_texname; // map_Kd |
|
|
|
else materials[m].maps[MATERIAL_MAP_DIFFUSE].color = (Color){ (unsigned char)(mats[m].diffuse[0]*255.0f), (unsigned char)(mats[m].diffuse[1]*255.0f), (unsigned char)(mats[m].diffuse[2] * 255.0f), 255 }; //float diffuse[3]; |
|
|
|
materials[m].maps[MATERIAL_MAP_DIFFUSE].value = 0.0f; |
|
|
|
|
|
|
|
rayMaterials[m].maps[MATERIAL_MAP_DIFFUSE].color = (Color){ (unsigned char)(materials[m].diffuse[0]*255.0f), (unsigned char)(materials[m].diffuse[1]*255.0f), (unsigned char)(materials[m].diffuse[2] * 255.0f), 255 }; //float diffuse[3]; |
|
|
|
rayMaterials[m].maps[MATERIAL_MAP_DIFFUSE].value = 0.0f; |
|
|
|
if (mats[m].specular_texname != NULL) materials[m].maps[MATERIAL_MAP_SPECULAR].texture = LoadTexture(mats[m].specular_texname); //char *specular_texname; // map_Ks |
|
|
|
materials[m].maps[MATERIAL_MAP_SPECULAR].color = (Color){ (unsigned char)(mats[m].specular[0]*255.0f), (unsigned char)(mats[m].specular[1]*255.0f), (unsigned char)(mats[m].specular[2] * 255.0f), 255 }; //float specular[3]; |
|
|
|
materials[m].maps[MATERIAL_MAP_SPECULAR].value = 0.0f; |
|
|
|
|
|
|
|
if (materials[m].specular_texname != NULL) rayMaterials[m].maps[MATERIAL_MAP_SPECULAR].texture = LoadTexture(materials[m].specular_texname); //char *specular_texname; // map_Ks |
|
|
|
rayMaterials[m].maps[MATERIAL_MAP_SPECULAR].color = p">(Color){ (unsigned char)(materials[m].specular[0]*255.0f), (unsigned char)(materials[m].specular[1]*255.0f), (unsigned char)(materials[m].specular[2] * 255.0f), 255 }; //float specular[3]; |
|
|
|
rayMaterials[m].maps[MATERIAL_MAP_SPECULAR].value = mf">0.0f; |
|
|
|
if (mats[m].bump_texname != NULL) materials[m].maps[MATERIAL_MAP_NORMAL].texture = LoadTexture(mats[m].bump_texname); //char *bump_texname; // map_bump, bump |
|
|
|
materials[m].maps[MATERIAL_MAP_NORMAL].color = n">WHITE; |
|
|
|
materials[m].maps[MATERIAL_MAP_NORMAL].value = n">mats[m].shininess; |
|
|
|
|
|
|
|
if (materials[m].bump_texname != NULL) rayMaterials[m].maps[MATERIAL_MAP_NORMAL].texture = LoadTexture(materials[m].bump_texname); //char *bump_texname; // map_bump, bump |
|
|
|
rayMaterials[m].maps[MATERIAL_MAP_NORMAL].color = WHITE; |
|
|
|
rayMaterials[m].maps[MATERIAL_MAP_NORMAL].value = materials[m].shininess; |
|
|
|
materials[m].maps[MATERIAL_MAP_EMISSION].color = (Color){ (unsigned char)(mats[m].emission[0]*255.0f), (unsigned char)(mats[m].emission[1]*255.0f), (unsigned char)(mats[m].emission[2] * 255.0f), 255 }; //float emission[3]; |
|
|
|
|
|
|
|
rayMaterials[m].maps[MATERIAL_MAP_EMISSION].color = (Color){ (unsigned char)(materials[m].emission[0]*255.0f), (unsigned char)(materials[m].emission[1]*255.0f), (unsigned char)(materials[m].emission[2] * 255.0f), 255 }; //float emission[3]; |
|
|
|
|
|
|
|
if (materials[m].displacement_texname != NULL) rayMaterials[m].maps[MATERIAL_MAP_HEIGHT].texture = LoadTexture(materials[m].displacement_texname); //char *displacement_texname; // disp |
|
|
|
if (mats[m].displacement_texname != NULL) materials[m].maps[MATERIAL_MAP_HEIGHT].texture = LoadTexture(mats[m].displacement_texname); //char *displacement_texname; // disp |
|
|
|
} |
|
|
|
} |
|
|
|
#endif |
|
|
|