FIX: Obj loader failed to read models with strange UV coordinates (see https://sourceforge.net/forum/forum.php?thread_id=2869243&forum_id=817653).
Added the model that was reported as crashing to the regression test suite. git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@306 67173fc5-114c-0410-ac8e-9d2fd5bffc1fpull/1/head
parent
d41f570dc0
commit
561943e75c
|
@ -319,17 +319,18 @@ void ObjFileImporter::createVertexArray(const ObjFile::Model* pModel,
|
||||||
pMesh->mNormals = new aiVector3D[ pMesh->mNumVertices ];
|
pMesh->mNormals = new aiVector3D[ pMesh->mNumVertices ];
|
||||||
|
|
||||||
// Allocate buffer for texture coordinates
|
// Allocate buffer for texture coordinates
|
||||||
if ( !pModel->m_TextureCoord.empty() )
|
if ( !pModel->m_TextureCoord.empty() && pObjMesh->m_uiUVCoordinates[0] )
|
||||||
{
|
{
|
||||||
for ( size_t i=0; i < AI_MAX_NUMBER_OF_TEXTURECOORDS; i++ )
|
// FIXME (@Kimmi): cleanup, I don't see the intention behind this
|
||||||
{
|
// for ( size_t i=0; i < AI_MAX_NUMBER_OF_TEXTURECOORDS; i++ )
|
||||||
const unsigned int num_uv = pObjMesh->m_uiUVCoordinates[ i ];
|
// {
|
||||||
if ( num_uv > 0 )
|
// const unsigned int num_uv = pObjMesh->m_uiUVCoordinates[ i ];
|
||||||
{
|
// if ( num_uv > 0 )
|
||||||
pMesh->mNumUVComponents[ i ] = num_uv;
|
// {
|
||||||
pMesh->mTextureCoords[ i ] = new aiVector3D[ num_uv ];
|
pMesh->mNumUVComponents[ 0 ] = 2;
|
||||||
}
|
pMesh->mTextureCoords[ 0 ] = new aiVector3D[ pMesh->mNumVertices ];
|
||||||
}
|
// }
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
// Copy vertices, normals and textures into aiMesh instance
|
// Copy vertices, normals and textures into aiMesh instance
|
||||||
|
|
|
@ -0,0 +1,99 @@
|
||||||
|
# Max2Mtl Version 4.0 Mar 10th, 2001
|
||||||
|
#
|
||||||
|
newmtl Base
|
||||||
|
Ka 0.2 0.2 0.2
|
||||||
|
Kd 0.2 0.2 0.2
|
||||||
|
Ks 0.9 0.9 0.9
|
||||||
|
d 1.0
|
||||||
|
Ns 0.0
|
||||||
|
illum 2
|
||||||
|
#
|
||||||
|
newmtl Door
|
||||||
|
Ka 0.8 0.6 0.4
|
||||||
|
Kd 0.8 0.6 0.4
|
||||||
|
Ks 0.9 0.9 0.9
|
||||||
|
d 1.0
|
||||||
|
Ns 0.0
|
||||||
|
illum 2
|
||||||
|
#
|
||||||
|
newmtl Floor
|
||||||
|
Ka 0.9 0.9 0.7
|
||||||
|
Kd 0.9 0.9 0.7
|
||||||
|
Ks 0.9 0.9 0.9
|
||||||
|
d 1.0
|
||||||
|
Ns 0.0
|
||||||
|
illum 2
|
||||||
|
#
|
||||||
|
newmtl Rafter
|
||||||
|
Ka 0.8 0.5 0.2
|
||||||
|
Kd 0.8 0.5 0.2
|
||||||
|
Ks 0.9 0.9 0.9
|
||||||
|
d 1.0
|
||||||
|
Ns 0.0
|
||||||
|
illum 2
|
||||||
|
#
|
||||||
|
newmtl Ridging
|
||||||
|
Ka 0.4 0.3 0.3
|
||||||
|
Kd 0.4 0.3 0.3
|
||||||
|
Ks 0.9 0.9 0.9
|
||||||
|
d 1.0
|
||||||
|
Ns 0.0
|
||||||
|
illum 2
|
||||||
|
#
|
||||||
|
newmtl Sill
|
||||||
|
Ka 0.2 0.2 0.2
|
||||||
|
Kd 0.2 0.2 0.2
|
||||||
|
Ks 0.9 0.9 0.9
|
||||||
|
d 1.0
|
||||||
|
Ns 0.0
|
||||||
|
illum 2
|
||||||
|
#
|
||||||
|
newmtl Site
|
||||||
|
Ka 0.5 0.7 0.4
|
||||||
|
Kd 0.5 0.7 0.4
|
||||||
|
Ks 0.9 0.9 0.9
|
||||||
|
d 1.0
|
||||||
|
Ns 0.0
|
||||||
|
illum 2
|
||||||
|
#
|
||||||
|
newmtl Roof
|
||||||
|
Ka 0.9 0.9 0.6
|
||||||
|
Kd 0.9 0.9 0.6
|
||||||
|
Ks 0.9 0.9 0.9
|
||||||
|
d 1.0
|
||||||
|
Ns 0.0
|
||||||
|
illum 2
|
||||||
|
#
|
||||||
|
newmtl Terraindæk
|
||||||
|
Ka 0.4 0.3 0.3
|
||||||
|
Kd 0.4 0.3 0.3
|
||||||
|
Ks 0.9 0.9 0.9
|
||||||
|
d 1.0
|
||||||
|
Ns 0.0
|
||||||
|
illum 2
|
||||||
|
#
|
||||||
|
newmtl Wall-inner
|
||||||
|
Ka 0.8 0.7 0.5
|
||||||
|
Kd 0.8 0.7 0.5
|
||||||
|
Ks 0.9 0.9 0.9
|
||||||
|
d 1.0
|
||||||
|
Ns 0.0
|
||||||
|
illum 2
|
||||||
|
#
|
||||||
|
newmtl Wall-out
|
||||||
|
Ka 0.5 0.0 0.0
|
||||||
|
Kd 0.5 0.0 0.0
|
||||||
|
Ks 0.9 0.9 0.9
|
||||||
|
d 1.0
|
||||||
|
Ns 0.0
|
||||||
|
illum 2
|
||||||
|
#
|
||||||
|
newmtl Windows
|
||||||
|
Ka 0.6 0.7 0.8
|
||||||
|
Kd 0.6 0.7 0.8
|
||||||
|
Ks 0.9 0.9 0.9
|
||||||
|
d 0.5
|
||||||
|
Ns 0.0
|
||||||
|
illum 2
|
||||||
|
#
|
||||||
|
# EOF
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue