aboutsummaryrefslogtreecommitdiff
path: root/sdk/extensions/exporter
diff options
context:
space:
mode:
authorAnton Novoselov <[email protected]>2017-08-08 20:14:22 +0300
committerAnton Novoselov <[email protected]>2017-08-08 20:14:22 +0300
commitd41654b469fa51870b5952c836c04d9da17f32d3 (patch)
tree64f8f437eef394630355f281d35ca1d53e5c4d6c /sdk/extensions/exporter
parentadd +x for packman script (diff)
downloadblast-d41654b469fa51870b5952c836c04d9da17f32d3.tar.xz
blast-d41654b469fa51870b5952c836c04d9da17f32d3.zip
Updated to CL 22627414:
* docs updates * authoring fixes * stress solver crash fixes
Diffstat (limited to 'sdk/extensions/exporter')
-rw-r--r--sdk/extensions/exporter/source/NvBlastExtExporterFbxReader.cpp19
-rw-r--r--sdk/extensions/exporter/source/NvBlastExtExporterFbxReader.h2
-rw-r--r--sdk/extensions/exporter/source/NvBlastExtExporterFbxWriter.cpp12
3 files changed, 25 insertions, 8 deletions
diff --git a/sdk/extensions/exporter/source/NvBlastExtExporterFbxReader.cpp b/sdk/extensions/exporter/source/NvBlastExtExporterFbxReader.cpp
index df0500e..c376701 100644
--- a/sdk/extensions/exporter/source/NvBlastExtExporterFbxReader.cpp
+++ b/sdk/extensions/exporter/source/NvBlastExtExporterFbxReader.cpp
@@ -218,7 +218,8 @@ void FbxFileReader::loadFromFile(const char* filename)
std::cerr << "Mesh has more than 1 material mappings, first one will be used. " << std::endl;
}
auto matLayer = mesh->GetElementMaterial(0);
-
+ auto smLayer = mesh->GetElementSmoothing();
+
for (int i = 0; i < polyCount; i++)
{
@@ -245,6 +246,10 @@ void FbxFileReader::loadFromFile(const char* filename)
{
mMaterialIds.push_back(matLayer->GetIndexArray().GetAt(i));
}
+ if (smLayer != nullptr)
+ {
+ mSmoothingGroups.push_back(smLayer->GetDirectArray().GetAt(i));
+ }
}
mVertexPositions = positions;
@@ -255,6 +260,18 @@ void FbxFileReader::loadFromFile(const char* filename)
getBoneInfluencesInternal(mesh);
}
+int32_t* FbxFileReader::getSmoothingGroups()
+{
+ if (!mSmoothingGroups.empty())
+ {
+ return mSmoothingGroups.data();
+ }
+ else
+ {
+ return nullptr;
+ }
+}
+
int32_t FbxFileReader::getMaterialCount()
{
return mMaterialNames.size();
diff --git a/sdk/extensions/exporter/source/NvBlastExtExporterFbxReader.h b/sdk/extensions/exporter/source/NvBlastExtExporterFbxReader.h
index 4155b25..b7c81aa 100644
--- a/sdk/extensions/exporter/source/NvBlastExtExporterFbxReader.h
+++ b/sdk/extensions/exporter/source/NvBlastExtExporterFbxReader.h
@@ -104,7 +104,7 @@ public:
/**
Get loaded per triangle smoothing groups. Currently not supported.
*/
- int32_t* getSmoothingGroups() override { return nullptr; };
+ int32_t* getSmoothingGroups() override;
/**
Get material name.
diff --git a/sdk/extensions/exporter/source/NvBlastExtExporterFbxWriter.cpp b/sdk/extensions/exporter/source/NvBlastExtExporterFbxWriter.cpp
index b5fd04b..161ec5f 100644
--- a/sdk/extensions/exporter/source/NvBlastExtExporterFbxWriter.cpp
+++ b/sdk/extensions/exporter/source/NvBlastExtExporterFbxWriter.cpp
@@ -148,7 +148,7 @@ bool FbxFileWriter::appendMesh(const AuthoringResult& aResult, const char* asset
//Found a valid smoothing group
smElement = mesh->CreateElementSmoothing();
smElement->SetMappingMode(FbxGeometryElement::eByPolygon);
- smElement->SetReferenceMode(FbxGeometryElement::eIndexToDirect);
+ smElement->SetReferenceMode(FbxGeometryElement::eDirect);
break;
}
}
@@ -423,11 +423,11 @@ uint32_t FbxFileWriter::createChunkRecursive(uint32_t currentCpIdx, uint32_t chu
{
if (tri.userData == 0)
{
- smElement->GetIndexArray().SetAt(polyCount, tri.smoothingGroup);
+ smElement->GetDirectArray().Add(tri.smoothingGroup);
}
else
{
- smElement->GetIndexArray().SetAt(polyCount, SMOOTHING_GROUP_INTERIOR);
+ smElement->GetDirectArray().Add(SMOOTHING_GROUP_INTERIOR);
}
}
@@ -611,7 +611,7 @@ void FbxFileWriter::createChunkRecursiveNonSkinned(const std::string& meshName,
//Found a valid smoothing group
smElement = mesh->CreateElementSmoothing();
smElement->SetMappingMode(FbxGeometryElement::eByPolygon);
- smElement->SetReferenceMode(FbxGeometryElement::eIndexToDirect);
+ smElement->SetReferenceMode(FbxGeometryElement::eDirect);
break;
}
}
@@ -658,11 +658,11 @@ void FbxFileWriter::createChunkRecursiveNonSkinned(const std::string& meshName,
{
if (geo.userData == 0)
{
- smElement->GetIndexArray().SetAt(polyCount, geo.smoothingGroup);
+ smElement->GetDirectArray().Add(geo.smoothingGroup);
}
else
{
- smElement->GetIndexArray().SetAt(polyCount, SMOOTHING_GROUP_INTERIOR);
+ smElement->GetDirectArray().Add(SMOOTHING_GROUP_INTERIOR);
}
}