我想导出一个剥皮的网格。由于某些原因,如果向网格添加蒙皮集群,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