티스토리 뷰
이미지를 불러들이기 위한 여러가지 파일포맷들 중 x 파일이 있다.
템플릿 지향의 포맷이며, 메쉬, 텍스쳐, 애니메이션, 사용자 정의 가능한 개체 등을 저장 할 수 있다.
애니메이션 세트를 지우너하고 있기 때문에 리얼타임에 재생하기 위해서 사전 정의된 패스를 저장할 수 있다. 등등등 많은 설명이 있지만 무슨말인지 모르겠다.
여튼 워드 프로세서 같은 프로그램으로 읽을 수 있다.
대부분의 3d 모델러를 이용해서도 메쉬데이터들을 .x 파일로 변환이 가능하며
DirectX 가 이 파일의 포맷을 정의하고 있으므로
우리는 DirectX에 있는 함수들을 이용하여 x파일을 바로 읽거나 저장할 수있다.
오브젝트파일이나 기타등등 처럼 우리가 직접 파싱하는 코드를 작성하지 않아도 된다.
메쉬 파일을 읽어오는 함수
엑스파일을 살펴보면 계층구조로 이루어졌음을 알 수 있다. 각각의 프래임은 자신의 변환 행렬을 담고 있고 이름도 담고 있다. 어떤 프래임은 메쉬를 저장하고 있기도 하다. 그 외에 특이한 템플릿을 발견 할 수 있는데 스킨 웨이트라는 것이다. 이것은 말 그대로 스킨 가중치라는 의미인데 프래임별로 저장되어 있다. 여기에는 가중치의 개수와 인덱스배열, 가중치 배열이 저장되어 있다. 이것은 위에서 살펴본 스키닝에 사용되는 것들이다. 가중치는 0.0~1.0 사이의 값이며 인덱스 배열은 이 뼈대(프래임이름을 통해 알 수 있다.)가 영향을 미치는 정점의 인덱스이다. 0번 정점에 0.5만큼의 영향을 미친다. 이런식으로 해석하면 되겠다. 밑으로 내려가면 또다른 템플릿이 등장하는데 모두 애니매이션에 관한 것들이다. 이것들 역시 각 프래임의 이름을 담고 있으며 특정시각에서 그 프래임(뼈대)의 변환 행렬을 담고 있다.
프래임은 자신만의 변환 행렬을 가지고 있고 또한 자식의 이름과 깊이가 똑같은 형제 프래임의 이름을 가지고 있다.(계층구조)
다음으로 스킨 정보를 가지고 있다.(bon파일에) 이것은 프래임의 이름과 영향을 받는 정점의 인덱스, 그리고 가중치 배열을 가지고 있다.
애니매이션 키도 역시 프래임이름을 가지고 있고 각각의 시간 정보와 함께 행렬을 가지고 있다.(anm 파일에 )
https://msdn.microsoft.com/en-us/library/windows/desktop/bb174837(v=vs.85).aspx
http://telnet.or.kr/directx/graphics/programmingguide/advancedtopics/xfiles/xfiles.htm
dx 설명
x파일
http://telnet.or.kr/directx/graphics/programmingguide/advancedtopics/xfiles/xfiles.htm
x파일로드
http://telnet.or.kr/directx/graphics/programmingguide/advancedtopics/xfiles/loadingxfile.htm
보존?
http://telnet.or.kr/directx/graphics/programmingguide/advancedtopics/xfiles/savingxfile.htm
x 파일 큐브생성
텍스쳐추가
프레임과 애니메이션 추가
3d 모델로부터 x 파일 변환과 export
x파일레퍼런스
http://telnet.or.kr/directx/graphics/reference/xfile/xfilereference.htm
'ComComComCom > DX .. D3D' 카테고리의 다른 글
애니메이션 - 스키닝 (0) | 2017.07.12 |
---|---|
[function] D3DXLoadMeshFromX() (0) | 2017.07.12 |
SetRenderState 로 테스트할 때 사용하기 좋은 기능들 (0) | 2017.07.06 |
[function] IDirect3DDevice9::SetRenderState (0) | 2017.07.06 |
광선추적법 (ray tracing) 이 뭐지? (2) | 2017.07.03 |