Skip to content

Commit 2b9968b

Browse files
committed
added function to create right handed FbxVector4
1 parent 89ed221 commit 2b9968b

File tree

1 file changed

+22
-9
lines changed

1 file changed

+22
-9
lines changed

Assets/FbxExporters/Editor/FbxExporter.cs

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -73,9 +73,7 @@ public void ExportComponentAttributes (MeshInfo mesh, FbxMesh fbxMesh, int[] unm
7373

7474
for (int n = 0; n < unmergedTriangles.Length; n++) {
7575
int unityTriangle = unmergedTriangles [n];
76-
fbxElementArray.Add (new FbxVector4 (-mesh.Normals [unityTriangle] [0],
77-
mesh.Normals [unityTriangle] [1],
78-
mesh.Normals [unityTriangle] [2]));
76+
fbxElementArray.Add (CreateRightHandedFbxVector4 (mesh.Normals [unityTriangle]));
7977
}
8078

8179
fbxLayer.SetNormals (fbxLayerElement);
@@ -116,9 +114,7 @@ public void ExportComponentAttributes (MeshInfo mesh, FbxMesh fbxMesh, int[] unm
116114

117115
for (int n = 0; n < unmergedTriangles.Length; n++) {
118116
int unityTriangle = unmergedTriangles [n];
119-
fbxElementArray.Add (new FbxVector4 (-mesh.Binormals [unityTriangle] [0],
120-
mesh.Binormals [unityTriangle] [1],
121-
mesh.Binormals [unityTriangle] [2]));
117+
fbxElementArray.Add (CreateRightHandedFbxVector4 (mesh.Binormals [unityTriangle]));
122118
}
123119
fbxLayer.SetBinormals (fbxLayerElement);
124120
}
@@ -134,14 +130,31 @@ public void ExportComponentAttributes (MeshInfo mesh, FbxMesh fbxMesh, int[] unm
134130

135131
for (int n = 0; n < unmergedTriangles.Length; n++) {
136132
int unityTriangle = unmergedTriangles [n];
137-
fbxElementArray.Add (new FbxVector4 (-mesh.Tangents [unityTriangle] [0],
138-
mesh.Tangents [unityTriangle] [1],
139-
mesh.Tangents [unityTriangle] [2]));
133+
fbxElementArray.Add (CreateRightHandedFbxVector4(
134+
new Vector3(
135+
mesh.Tangents[unityTriangle][0],
136+
mesh.Tangents[unityTriangle][1],
137+
mesh.Tangents[unityTriangle][2]
138+
)));
140139
}
141140
fbxLayer.SetTangents (fbxLayerElement);
142141
}
143142
}
144143

144+
/// <summary>
145+
/// Takes in a left-handed Vector3, and returns a right-handed FbxVector4.
146+
/// Helper for ExportComponentAttributes()
147+
/// </summary>
148+
/// <returns>The right-handed FbxVector4.</returns>
149+
private FbxVector4 CreateRightHandedFbxVector4(Vector3 leftHandedVector)
150+
{
151+
// negating the x component of the vector converts it from left to right handed coordinates
152+
return new FbxVector4 (
153+
-leftHandedVector[0],
154+
leftHandedVector[1],
155+
leftHandedVector[2]);
156+
}
157+
145158
/// <summary>
146159
/// Export an Unity Texture
147160
/// </summary>

0 commit comments

Comments
 (0)