nachdem mir mein 3ds Loader mal wieder Ärger gemacht hat habe ich mich endlich dazu durchgerungen mir mal ASSIMP vorzunehmen. Das ging erstaunlich schmerzfrei und das Interface macht einen netten Eindruck. Allerdings kann die Doku diesen Eindruck nicht ganz halten, gerade im Bereich Texturen ;)
Mein Problem ist, dass das Auslesen des Texturpfades fehlschlägt obwohl die Textur eines bestimmten Typs vorhanden sein sollte. Bevor ich mich selber durch ASSIMP grabe hoffe ich auf Erleuchtung durch die Assimpisten was mögliche Ursachen sein könnten:
Code: Alles auswählen
for (uint32 i=0; i<scene->mNumMaterials; ++i)
{
aiMaterial *mat = scene->mMaterials[i];
// blablablab Farben einlesen blabla ...
aiTextureType types[] = { aiTextureType_NONE, aiTextureType_AMBIENT, aiTextureType_DIFFUSE, aiTextureType_EMISSIVE, aiTextureType_SPECULAR };
uint32 num_tex_types = 5;
aiString path;
for (uint32 j=0; j<num_tex_types; ++j)
{
if (mat->GetTextureCount(types[j]) > 0 && path.length < 1)
{
if (!mat->GetTexture(types[j], 0, &path))
{
DebugMsg(String("extracting texture path from aiMaterial failed (type ") << j << ", count " << mat->GetTextureCount(types[j]) << ")"); continue;
}
break;
}
}
}
Ciao,
Stefan