diff --git a/graphics/src/AssimpLoader.cc b/graphics/src/AssimpLoader.cc index d144dbab..d2e3b754 100644 --- a/graphics/src/AssimpLoader.cc +++ b/graphics/src/AssimpLoader.cc @@ -667,18 +667,20 @@ SubMesh AssimpLoader::Implementation::CreateSubMesh( { // Add the vertex math::Vector3d vertex; - math::Vector3d normal; vertex.X(_assimpMesh->mVertices[vertexIdx].x); vertex.Y(_assimpMesh->mVertices[vertexIdx].y); vertex.Z(_assimpMesh->mVertices[vertexIdx].z); - normal.X(_assimpMesh->mNormals[vertexIdx].x); - normal.Y(_assimpMesh->mNormals[vertexIdx].y); - normal.Z(_assimpMesh->mNormals[vertexIdx].z); vertex = _transform * vertex; - normal = rot * normal; - normal.Normalize(); subMesh.AddVertex(vertex); - subMesh.AddNormal(normal); + if (_assimpMesh->HasNormals()) { + math::Vector3d normal; + normal.X(_assimpMesh->mNormals[vertexIdx].x); + normal.Y(_assimpMesh->mNormals[vertexIdx].y); + normal.Z(_assimpMesh->mNormals[vertexIdx].z); + normal = rot * normal; + normal.Normalize(); + subMesh.AddNormal(normal); + } // Iterate over sets of texture coordinates for (unsigned int i = 0; i < AI_MAX_NUMBER_OF_TEXTURECOORDS; ++i) {