Merge pull request #3670 from ms-maxvollmer/user/mavollme/GLTF2_CheckNormalCount
Check that normal count and tangent count match vertex count.fix_vs2017_warnings^2
commit
05ee5432f6
|
@ -452,10 +452,16 @@ void glTF2Importer::ImportMeshes(glTF2::Asset &r) {
|
|||
}
|
||||
|
||||
if (attr.normal.size() > 0 && attr.normal[0]) {
|
||||
if (attr.normal[0]->count != aim->mNumVertices) {
|
||||
DefaultLogger::get()->warn("Normal count in mesh \"" + mesh.name + "\" does not match the vertex count, normals ignored.");
|
||||
} else {
|
||||
attr.normal[0]->ExtractData(aim->mNormals);
|
||||
|
||||
// only extract tangents if normals are present
|
||||
if (attr.tangent.size() > 0 && attr.tangent[0]) {
|
||||
if (attr.tangent[0]->count != aim->mNumVertices) {
|
||||
DefaultLogger::get()->warn("Tangent count in mesh \"" + mesh.name + "\" does not match the vertex count, tangents ignored.");
|
||||
} else {
|
||||
// generate bitangents from normals and tangents according to spec
|
||||
Tangent *tangents = nullptr;
|
||||
|
||||
|
@ -472,6 +478,8 @@ void glTF2Importer::ImportMeshes(glTF2::Asset &r) {
|
|||
delete[] tangents;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (size_t c = 0; c < attr.color.size() && c < AI_MAX_NUMBER_OF_COLOR_SETS; ++c) {
|
||||
if (attr.color[c]->count != aim->mNumVertices) {
|
||||
|
|
Loading…
Reference in New Issue