如何从头开始构建和导出FBX模型?我试图绘制一个平面,但是导出的模型是空的!如何从零开始创建场景并导出?
// Create an SDK manager.
FbxManager* lSdkManager = FbxManager::Create();
std::string newfile = R"(F:/fbxdata/test.fbx)";
// Create a new scene so it can be populated by the imported file.
FbxScene* newScene = FbxScene::Create(lSdkManager, "New Scene");
FbxNode* root = newScene->GetRootNode();
FbxNode* child = FbxNode::Create(newScene, "child");
{
FbxMesh* pMesh =FbxMesh::Create(newScene,"mesh") ;
pMesh->InitControlPoints(4);
FbxVector4* pCtrlPoint = pMesh->GetControlPoints();
FbxVector4 vertex0(-1, -1, 0);
FbxVector4 vertex1(-1, 1, 0);
FbxVector4 vertex2(1, 1, 0);
FbxVector4 vertex3(1, -1, 0);
pCtrlPoint[0] = vertex0;
pCtrlPoint[1] = vertex1;
pCtrlPoint[2] = vertex2;
pCtrlPoint[3] = vertex3;
pMesh->BeginPolygon();
pMesh->AddPolygon(0);
pMesh->AddPolygon(1);
pMesh->AddPolygon(2);
pMesh->EndPolygon();
pMesh->BeginPolygon();
pMesh->AddPolygon(2);
pMesh->AddPolygon(3);
pMesh->AddPolygon(0);
pMesh->EndPolygon();
child->AddNodeAttribute(pMesh);
}
root->AddChild(child);
ExportScene(lSdkManager, newScene, newfile.c_str());发布于 2022-02-28 04:52:43
您使用的是AddNodeAttribute而不是SetNodeAttribute。
void AddPlaneTo(FbxScene* Scene) const
{
auto* Plane = FbxNode::Create(Scene, "plane-node");
auto* Mesh = FbxMesh::Create(Scene, "plane-mesh");
Plane->SetNodeAttribute(Mesh);
Scene->GetRootNode()->AddChild(Plane);
Mesh->InitControlPoints(4);
auto* ControlPoints = Mesh->GetControlPoints();
ControlPoints[0] = FbxVector4( 1, 0, 1);
ControlPoints[1] = FbxVector4(-1, 0, 1);
ControlPoints[2] = FbxVector4(-1, 0, -1);
ControlPoints[3] = FbxVector4( 1, 0, -1);
Mesh->BeginPolygon();
Mesh->AddPolygon(0);
Mesh->AddPolygon(1);
Mesh->AddPolygon(2);
Mesh->AddPolygon(3);
Mesh->EndPolygon();
}https://stackoverflow.com/questions/68886402
复制相似问题