Merge branch 'master' into master
commit
855537f232
|
@ -102,6 +102,7 @@ ColladaLoader::ColladaLoader() :
|
||||||
mTextures(),
|
mTextures(),
|
||||||
mAnims(),
|
mAnims(),
|
||||||
noSkeletonMesh(false),
|
noSkeletonMesh(false),
|
||||||
|
removeEmptyBones(false),
|
||||||
ignoreUpDirection(false),
|
ignoreUpDirection(false),
|
||||||
useColladaName(false),
|
useColladaName(false),
|
||||||
mNodeNameCounter(0) {
|
mNodeNameCounter(0) {
|
||||||
|
@ -130,6 +131,7 @@ bool ColladaLoader::CanRead(const std::string &pFile, IOSystem *pIOHandler, bool
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
void ColladaLoader::SetupProperties(const Importer *pImp) {
|
void ColladaLoader::SetupProperties(const Importer *pImp) {
|
||||||
noSkeletonMesh = pImp->GetPropertyInteger(AI_CONFIG_IMPORT_NO_SKELETON_MESHES, 0) != 0;
|
noSkeletonMesh = pImp->GetPropertyInteger(AI_CONFIG_IMPORT_NO_SKELETON_MESHES, 0) != 0;
|
||||||
|
removeEmptyBones = pImp->GetPropertyInteger(AI_CONFIG_IMPORT_REMOVE_EMPTY_BONES, true) != 0;
|
||||||
ignoreUpDirection = pImp->GetPropertyInteger(AI_CONFIG_IMPORT_COLLADA_IGNORE_UP_DIRECTION, 0) != 0;
|
ignoreUpDirection = pImp->GetPropertyInteger(AI_CONFIG_IMPORT_COLLADA_IGNORE_UP_DIRECTION, 0) != 0;
|
||||||
useColladaName = pImp->GetPropertyInteger(AI_CONFIG_IMPORT_COLLADA_USE_COLLADA_NAMES, 0) != 0;
|
useColladaName = pImp->GetPropertyInteger(AI_CONFIG_IMPORT_COLLADA_USE_COLLADA_NAMES, 0) != 0;
|
||||||
}
|
}
|
||||||
|
@ -798,9 +800,10 @@ aiMesh *ColladaLoader::CreateMesh(const ColladaParser &pParser, const Mesh *pSrc
|
||||||
// count the number of bones which influence vertices of the current submesh
|
// count the number of bones which influence vertices of the current submesh
|
||||||
size_t numRemainingBones = 0;
|
size_t numRemainingBones = 0;
|
||||||
for (const auto & dstBone : dstBones) {
|
for (const auto & dstBone : dstBones) {
|
||||||
if (!dstBone.empty()) {
|
if (dstBone.empty() && removeEmptyBones) {
|
||||||
++numRemainingBones;
|
continue;
|
||||||
}
|
}
|
||||||
|
++numRemainingBones;
|
||||||
}
|
}
|
||||||
|
|
||||||
// create bone array and copy bone weights one by one
|
// create bone array and copy bone weights one by one
|
||||||
|
@ -809,7 +812,7 @@ aiMesh *ColladaLoader::CreateMesh(const ColladaParser &pParser, const Mesh *pSrc
|
||||||
size_t boneCount = 0;
|
size_t boneCount = 0;
|
||||||
for (size_t a = 0; a < numBones; ++a) {
|
for (size_t a = 0; a < numBones; ++a) {
|
||||||
// omit bones without weights
|
// omit bones without weights
|
||||||
if (dstBones[a].empty()) {
|
if (dstBones[a].empty() && removeEmptyBones) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -237,6 +237,7 @@ protected:
|
||||||
std::vector<aiAnimation *> mAnims;
|
std::vector<aiAnimation *> mAnims;
|
||||||
|
|
||||||
bool noSkeletonMesh;
|
bool noSkeletonMesh;
|
||||||
|
bool removeEmptyBones;
|
||||||
bool ignoreUpDirection;
|
bool ignoreUpDirection;
|
||||||
bool useColladaName;
|
bool useColladaName;
|
||||||
|
|
||||||
|
|
|
@ -3377,6 +3377,10 @@ FBXConverter::KeyFrameListList FBXConverter::GetRotationKeyframeList(const std::
|
||||||
Keys->push_back(tnew);
|
Keys->push_back(tnew);
|
||||||
Values->push_back(vnew);
|
Values->push_back(vnew);
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
// Something broke
|
||||||
|
break;
|
||||||
|
}
|
||||||
tp = tnew;
|
tp = tnew;
|
||||||
vp = vnew;
|
vp = vnew;
|
||||||
}
|
}
|
||||||
|
|
|
@ -287,7 +287,7 @@ void LWOImporter::InternReadFile(const std::string &pFile,
|
||||||
if (UINT_MAX == iDefaultSurface) {
|
if (UINT_MAX == iDefaultSurface) {
|
||||||
pSorted.erase(pSorted.end() - 1);
|
pSorted.erase(pSorted.end() - 1);
|
||||||
}
|
}
|
||||||
for (unsigned int p = 0, j = 0; j < mSurfaces->size(); ++j) {
|
for (unsigned int j = 0; j < mSurfaces->size(); ++j) {
|
||||||
SortedRep &sorted = pSorted[j];
|
SortedRep &sorted = pSorted[j];
|
||||||
if (sorted.empty())
|
if (sorted.empty())
|
||||||
continue;
|
continue;
|
||||||
|
@ -425,7 +425,6 @@ void LWOImporter::InternReadFile(const std::string &pFile,
|
||||||
} else {
|
} else {
|
||||||
ASSIMP_LOG_VERBOSE_DEBUG("LWO2: No need to compute normals, they're already there");
|
ASSIMP_LOG_VERBOSE_DEBUG("LWO2: No need to compute normals, they're already there");
|
||||||
}
|
}
|
||||||
++p;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -683,7 +683,7 @@ bool glTF2Exporter::GetMatSheen(const aiMaterial &mat, glTF2::MaterialSheen &she
|
||||||
}
|
}
|
||||||
|
|
||||||
// Default Sheen color factor {0,0,0} disables Sheen, so do not export
|
// Default Sheen color factor {0,0,0} disables Sheen, so do not export
|
||||||
if (sheen.sheenColorFactor == defaultSheenFactor) {
|
if (sheen.sheenColorFactor[0] == defaultSheenFactor[0] && sheen.sheenColorFactor[1] == defaultSheenFactor[1] && sheen.sheenColorFactor[2] == defaultSheenFactor[2]) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue