FBX 해독 ④ Mesh 그리기 편
계속
고정 허프만으로 전개해 간다.
Vertices를 순서대로 읽으면
0x00 0x00 (4,1) F0 3F (3,6) ...
와 같이 계속된다
여기서 괄호는 (일치 길이, 자신으로부터의 거리)를 나타내며,
예 9 8 4 (2,3)
→ 9 8 4 *9 8*
또한 一致長>自分からの距離
의 경우 일치 길이에 도달 할 때까지 동일한 위치를 반복
예 3 5 2 1 (6,3)
→ 3 5 2 1 *5 2 1 5 2 1*
즉 Vertices의 Data는
0x00 0x00 0x00 0x00 0x00 0x00 0xf0 0x3f
0x00 0x00 0x00 ...
로 번역할 수 있다.
종료 코드를 읽을 때 블록은 종료 될 수 있습니다.
여러 블록이있는 경우 마지막으로 그들을 연결합니다.
이와 같이 번역해 나가면 최종적으로 192byte=(8*24)의 배열을 발견할 수 있어 이것은 Double형의 크기가 8bytes인 것을 생각하면 납득이 가는 숫자.
그리고는 나온 숫자를 Double형과 같이 배정밀도 부동 소수점수형으로서 8byte씩 갈아 갈 뿐.
Unity로 표시
Mesh 클래스 사용
mainMesh mesh = gameObject.AddComponent<MeshFilter>().mesh;
MeshRenderer renderer = gameObject.AddComponent<MeshRenderer>();
//配列から得た情報
Vector3[] vertices = new Vector3[]
{
new Vector3(1f, 1f, -1f),
... //上で得た頂点情報をそのまま使える
}
Vector3[] normals = new Vector3[]{略}
int[] verticesIndex = new int[]
{
0, 1, 2, 3,
....
}
//meshのセットアップ
mesh.vertices = vertices;
mesh.triangles = verticesIndex;//四角ポリゴンなのでtriangleを使うべきなのかは謎。
mesh normals = normals;
GetComponent<MeshFilter>.mesh = mesh;
mesh.SetIndices(makeIndices(8), MeshTopology.Quads,0);
makeIndices()int[] makeIndices(int n)
{
int[] indices = new int[n];
for(int i = 0; i<n;i++)
{
indices[i] = i;
}
return indices;
}
normals는 아직 손을 붙이지 않은 것에서 깨끗하게는 보이지 않을 것이지만 입방체가 보일 것입니다 ...
결과
WTF !!!
개선을 위해 노력하겠습니다. 결코 멀지 않다.
HoloLens 앱 개발 기사 목록
ぃ tp // 이 m/g 시라와/있어 ms/6c026f2c67dc332f829b 부터
Reference
이 문제에 관하여(FBX 해독 ④ Mesh 그리기 편), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/gshirato/items/4aa85fe31e8d48574d8c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
0x00 0x00 0x00 0x00 0x00 0x00 0xf0 0x3f
0x00 0x00 0x00 ...
Mesh 클래스 사용
main
Mesh mesh = gameObject.AddComponent<MeshFilter>().mesh;
MeshRenderer renderer = gameObject.AddComponent<MeshRenderer>();
//配列から得た情報
Vector3[] vertices = new Vector3[]
{
new Vector3(1f, 1f, -1f),
... //上で得た頂点情報をそのまま使える
}
Vector3[] normals = new Vector3[]{略}
int[] verticesIndex = new int[]
{
0, 1, 2, 3,
....
}
//meshのセットアップ
mesh.vertices = vertices;
mesh.triangles = verticesIndex;//四角ポリゴンなのでtriangleを使うべきなのかは謎。
mesh normals = normals;
GetComponent<MeshFilter>.mesh = mesh;
mesh.SetIndices(makeIndices(8), MeshTopology.Quads,0);
makeIndices()
int[] makeIndices(int n)
{
int[] indices = new int[n];
for(int i = 0; i<n;i++)
{
indices[i] = i;
}
return indices;
}
normals는 아직 손을 붙이지 않은 것에서 깨끗하게는 보이지 않을 것이지만 입방체가 보일 것입니다 ...
결과
WTF !!!
개선을 위해 노력하겠습니다. 결코 멀지 않다.
HoloLens 앱 개발 기사 목록
ぃ tp // 이 m/g 시라와/있어 ms/6c026f2c67dc332f829b 부터
Reference
이 문제에 관하여(FBX 해독 ④ Mesh 그리기 편), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/gshirato/items/4aa85fe31e8d48574d8c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
ぃ tp // 이 m/g 시라와/있어 ms/6c026f2c67dc332f829b 부터
Reference
이 문제에 관하여(FBX 해독 ④ Mesh 그리기 편), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/gshirato/items/4aa85fe31e8d48574d8c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)