Log warning and continue. Copy default values to the buffer.

This commit is contained in:
Tommy Henriks 2024-06-20 16:16:55 +02:00
parent 67fd8b5259
commit ee5f635b1d
1 changed files with 8 additions and 8 deletions

View File

@ -631,14 +631,18 @@ bool copyInstanceToBuffer(
const glm::dmat4& instanceTransform,
std::vector<std::byte>& bufferData,
size_t i) {
bool result = true;
glm::dvec3 position, scale, skew;
glm::dquat rotation;
glm::dvec4 perspective;
if (!decompose(instanceTransform, scale, rotation, position, skew, perspective)) {
return false;
position = glm::dvec3{.0};
rotation = glm::quat_identity<double, glm::defaultp>();
scale = glm::dvec3{1.0};
result = false;
}
copyInstanceToBuffer(position, rotation, scale, bufferData, i);
return true;
return result;
}
void instantiateGltfInstances(
@ -711,12 +715,8 @@ void instantiateGltfInstances(
for (const auto& modelInstanceTransform : modelInstanceTransforms) {
glm::dmat4 finalTransform =
instanceTransform * modelInstanceTransform;
if (!copyInstanceToBuffer(
finalTransform,
instanceBuffer.cesium.data,
destInstanceIndx++)) {
result.errors.emplaceError("Matrix decompose failed.");
return;
if (!copyInstanceToBuffer(finalTransform, instanceBuffer.cesium.data, destInstanceIndx++)) {
result.errors.emplaceWarning("Matrix decompose failed. Default identity values copied to instance buffer.");
}
}
}