mirror of
https://github.com/overte-org/overte.git
synced 2025-08-08 11:58:10 +02:00
fix material triangle index insertion
This commit is contained in:
parent
a25e5796dc
commit
b253d3b57c
1 changed files with 11 additions and 5 deletions
|
@ -408,16 +408,22 @@ ExtractedMesh FBXReader::extractMesh(const FBXNode& object, unsigned int& meshIn
|
||||||
data.extracted.mesh.colors.push_back({ colorValue[0], colorValue[1], colorValue[2] });
|
data.extracted.mesh.colors.push_back({ colorValue[0], colorValue[1], colorValue[2] });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
data.extracted.newIndices.insert(i, i);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < dracoMesh->num_faces(); ++i) {
|
||||||
|
// grab the material ID and texture ID for this face, if we have it
|
||||||
|
auto firstCorner = dracoMesh->face(draco::FaceIndex(i))[0];
|
||||||
|
|
||||||
int64_t matTexValue[2] = { 0, 0 };
|
int64_t matTexValue[2] = { 0, 0 };
|
||||||
|
|
||||||
if (matTexAttribute) {
|
if (matTexAttribute) {
|
||||||
// read material ID and texture ID mappings into materials and texture vectors
|
// read material ID and texture ID mappings into materials and texture vectors
|
||||||
auto mappedIndex = matTexAttribute->mapped_index(vertexIndex);
|
auto mappedIndex = matTexAttribute->mapped_index(firstCorner);
|
||||||
|
|
||||||
matTexAttribute->ConvertValue<int64_t, 2>(mappedIndex, &matTexValue[0]);
|
matTexAttribute->ConvertValue<int64_t, 2>(mappedIndex, &matTexValue[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// grab the material ID and texture ID for this face, if we have it
|
|
||||||
QPair<int, int> materialTexture(matTexValue[0], matTexValue[1]);
|
QPair<int, int> materialTexture(matTexValue[0], matTexValue[1]);
|
||||||
|
|
||||||
// grab or setup the FBXMeshPart for the part this face belongs to
|
// grab or setup the FBXMeshPart for the part this face belongs to
|
||||||
|
@ -430,9 +436,9 @@ ExtractedMesh FBXReader::extractMesh(const FBXNode& object, unsigned int& meshIn
|
||||||
|
|
||||||
// give the mesh part this index
|
// give the mesh part this index
|
||||||
FBXMeshPart& part = data.extracted.mesh.parts[partIndexPlusOne - 1];
|
FBXMeshPart& part = data.extracted.mesh.parts[partIndexPlusOne - 1];
|
||||||
part.triangleIndices.append(i);
|
part.triangleIndices.append(firstCorner.value());
|
||||||
|
part.triangleIndices.append(dracoMesh->face(draco::FaceIndex(i))[1].value());
|
||||||
data.extracted.newIndices.insert(i, i);
|
part.triangleIndices.append(dracoMesh->face(draco::FaceIndex(i))[2].value());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue