mirror of
https://github.com/overte-org/overte.git
synced 2025-08-10 11:42:55 +02:00
refuse to re-bake an already baked FBX
This commit is contained in:
parent
9816070e70
commit
2a62bac4f9
3 changed files with 8 additions and 1 deletions
|
@ -301,6 +301,11 @@ void FBXBaker::rewriteAndBakeSceneModels() {
|
||||||
auto extractedMesh = FBXReader::extractMesh(objectChild, meshIndex);
|
auto extractedMesh = FBXReader::extractMesh(objectChild, meshIndex);
|
||||||
auto& mesh = extractedMesh.mesh;
|
auto& mesh = extractedMesh.mesh;
|
||||||
|
|
||||||
|
if (mesh.wasCompressed) {
|
||||||
|
handleError("Cannot re-bake a file that contains compressed mesh");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
Q_ASSERT(mesh.normals.size() == 0 || mesh.normals.size() == mesh.vertices.size());
|
Q_ASSERT(mesh.normals.size() == 0 || mesh.normals.size() == mesh.vertices.size());
|
||||||
Q_ASSERT(mesh.colors.size() == 0 || mesh.colors.size() == mesh.vertices.size());
|
Q_ASSERT(mesh.colors.size() == 0 || mesh.colors.size() == mesh.vertices.size());
|
||||||
Q_ASSERT(mesh.texCoords.size() == 0 || mesh.texCoords.size() == mesh.vertices.size());
|
Q_ASSERT(mesh.texCoords.size() == 0 || mesh.texCoords.size() == mesh.vertices.size());
|
||||||
|
@ -529,7 +534,7 @@ void FBXBaker::rewriteAndBakeSceneTextures() {
|
||||||
if (textureFileInfo.suffix() == BAKED_TEXTURE_EXT.mid(1)) {
|
if (textureFileInfo.suffix() == BAKED_TEXTURE_EXT.mid(1)) {
|
||||||
// re-baking an FBX that already references baked textures is a fail
|
// re-baking an FBX that already references baked textures is a fail
|
||||||
// so we add an error and return from here
|
// so we add an error and return from here
|
||||||
handleError("Cannot re-bake a partially baked FBX file that references baked KTX textures");
|
handleError("Cannot re-bake a file that references compressed textures");
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -234,6 +234,7 @@ public:
|
||||||
unsigned int meshIndex; // the order the meshes appeared in the object file
|
unsigned int meshIndex; // the order the meshes appeared in the object file
|
||||||
|
|
||||||
model::MeshPointer _mesh;
|
model::MeshPointer _mesh;
|
||||||
|
bool wasCompressed { false };
|
||||||
};
|
};
|
||||||
|
|
||||||
class ExtractedMesh {
|
class ExtractedMesh {
|
||||||
|
|
|
@ -338,6 +338,7 @@ ExtractedMesh FBXReader::extractMesh(const FBXNode& object, unsigned int& meshIn
|
||||||
}
|
}
|
||||||
} else if (child.name == "DracoMesh") {
|
} else if (child.name == "DracoMesh") {
|
||||||
isDracoMesh = true;
|
isDracoMesh = true;
|
||||||
|
data.extracted.mesh.wasCompressed = true;
|
||||||
|
|
||||||
// load the draco mesh from the FBX and create a draco::Mesh
|
// load the draco mesh from the FBX and create a draco::Mesh
|
||||||
draco::Decoder decoder;
|
draco::Decoder decoder;
|
||||||
|
|
Loading…
Reference in a new issue