나는 fbx 파일에서 버텍스 위치 데이터를 얻으려고합니다. 테스트하기 위해 간단한 평면을 사용하고 xz 평면에 놓여 있으며 4 개의 꼭지점이 있습니다 (+/-1, 0, +/- 1). 정점 데이터는 평면을 내보내는 데 사용되는 Maya에서 확인됩니다.XNA에서 FBX의 버텍스 정보, 이상한 결과
가 여기 내 정점 추출 코드입니다 : 네 꼭지점이 있기 때문에
void getVertices()
{
foreach (ModelMesh mesh in model.Meshes)
foreach (ModelMeshPart part in mesh.MeshParts)
{
nVerts = part.NumVertices;
Vector3[] vec = new Vector3[nVerts * 2];
part.VertexBuffer.GetData<Vector3>(vec);
Console.WriteLine("#Vertices in Model: " + nVerts);
for (int i = 0; i < vec.Length; i++)
{
Console.WriteLine(i + " " vec[i].ToString());
}
}
}
, 나는 각 정점의 위치와 정상적인 각 정점 일 8 Vector3s, 1을 얻는다. 비행기의 경우 MOST가 정확합니다 (처음에는 좀 더 복잡한 모델을 사용했고 덜 정확했습니다). 여기
결과이다 : 모든 법선 Y.에 똑바로 가리켜 야포인트 : (1,0, -1) (1,0,1) (1,0,1) (-1,0,1)
법선 (0,1,0) (0,1,0) (1, -1,0) (0,0,0)
세 번째 점 (두 번째와 동일)과 마지막 두 법선이 잘못되었습니다. 왜 내가 올바른 데이터를 얻지 못하고 있는지 알 수 없습니다. vector3 배열을 늘리려고했는데 보낼 벡터가 8 개 뿐이므로 어떤 정보도 놓치지 않는다고 생각합니다.
, 고마워요! 인덱스를 찾았습니다. 버퍼가 모든 프로그램에서 변경되었습니다. 동일한 프로그램에서 가져온 것이기는하지만 생각지 못했지만 몇 가지 작은 구문 오류가있었습니다. 그래서 내가 완성 된 것을 게시 할 것입니다. 다음 녀석. 다시 한번 감사드립니다. – user1693188