我想導出一個剝皮的網格。由於某些原因,如果向網格添加蒙皮集羣,FbxSDK會在分段邊緣上打破法線。沒有皮膚,一切看起來都很好。FbxSDK打破正常
代碼:
FbxLayerElementNormal *layerElementNormal = FbxLayerElementNormal::Create(mesh, "");
layerElementNormal->SetMappingMode(FbxLayerElement::eByControlPoint);
layerElementNormal->SetReferenceMode(FbxLayerElement::eDirect);
for (int vertIndex = 0; vertIndex < vertexCount; ++vertIndex)
{
PackedNormal normal = vertices[vertIndex].normal;
double x,y,z;
x = (((normal.data) & 0xFF)/127.5f - 1.0f);
y = ((((normal.data) >> 8) & 0xFF)/127.5f - 1.0f);
z = ((((normal.data) >> 16) & 0xFF)/127.5f - 1.0f);
layerElementNormal->GetDirectArray().Add(FbxVector4(x,-y,z));
}
layer->SetNormals(layerElementNormal);
我tryied不同的映射的mods(例如eByPolygonVertex
。)和參照MODS的但至今沒有幫助。似乎法線完全被忽略,如果一個網格有皮膚簇。我註釋了上面的代碼,並且在左圖中看起來像一個皮膚模型。
我也嘗試了不同的3d軟件(Maya 2015,Maya 2013和3ds Max 2013)來查看導出的模型,但所有這些都給了我相同的結果。
P.S.此問題會影響任何蒙皮網格。
編輯 似乎這個問題是FBX管道中的一個錯誤:Autodesk Forum。要繞過我需要的「傳輸屬性」的問題。有人能幫忙嗎?
圖片上的東西真的是我認爲的,還是我需要訪問縮小? – SergeyA
這正是你的想法! – VenoMKO
這很好。對不起,不能幫助實際的問題,但。 – SergeyA