보충 1
1. 애니메이션 관련 값 중 회전 정보는 쿼터니온 값으로 전달 해준다
2. asClipNode > asKeyframeData > asKeyframe > asClip 순으로 애니메이션 정보 저장
asClipNode : ai추출 해서 최초 저장하는 공간
asKeyframeData : 한개의 bone 가지는 SRT 정보
asKeyframe : asKeyframeData의 집합(해당bone의 정보)
asClip : 최종 집합
3. 애니메이션 프레임키를 가져올때는 S,R,T 중에서 최종적으로 제일 긴 프레임을 가져와서 사용
4. asBlendWeight 최종 스키닝 정보가 저장 하기전에 asBoneWeights를 통해서 계산을 하고선 저장
5. 애니메이션은 Mesh, Material 관련이 없으므로 ModelAnimator에서 불러와서 적용 시켜줘야함
6. 가중치 관련 쓰는 이유 매쉬가 움직일때 빈공간이 있으므로 본과 본사이 매쉬 들을 땡겨줄려고 씀
7. 가중치는 SRT 더해서 1이 넘어가면 안됨 (넘어가도 되긴하지만 문제가 있을순 있음)
8. 애니메이션 정보를 CBuffer 통해서 못넘김 (용량이 넘어가버림 65536?바이트 넘김)
9. CBuffer 대신에 Texture Buffer로 통해서 넘김(용량 한계가 없음) ->SRV 통해서 보내고 UAV통해서 받을수 있음
보충 2

ModelEditor 솔루션 관련
Types : 외부 파일을 읽을때 해당 관련 구조체 (Bone, Mesh, Material, Animation 관련)
Converter : 외부 파일을 읽어서 바이너리 파일로 만드는 클래스 (FBX -> bin 형태로 만드는 클래스)
ExportFile : Converter 클래스를 실행 시키기 위한 클래스 (경로에 있는 파일을 지정)
ModelDemo : Model를 한번 확인 하기 위한 클래스
Main : ModelDemo , ExportFile 실행 시키기 위한 클래스

Framework 솔루션중 Model 새필터 관련
ModelMesh : model클래스 frind 형태로 상속 하며 내부에 3가지 클래스가 정의 되어 있다
1. ModelBone : Mesh가 그려질 월드 관련 클래스
2. ModelMesh : .mesh에서 불러온 정보로 IA 셋팅 정의
3. ModelMeshPart : material정보를 mesh에 매칭해서 입혀줌
ModelRender : 모델을 렌더링 시켜주는 클래스
ModelClip : model클래스 frind 형태로 상속 .clip 형태의 바이너리 정보를 읽어서 저장 (해쉬 형태로 정의)
ModelAnimator : ModelClip 저장된 애니메이션 정보 토대로 SRT 계산 셋팅
Model : ModelDemo에서 해당 클래스를 통해서 모델을 읽어서 사용
->ExportFile 통해서 바이너리 형태의 파일이 있어야 해당 클래스 통해서 사용가능
'DirectX > DirectX 3D_(구)' 카테고리의 다른 글
22_RawBuffer (CS) (0) | 2021.07.28 |
---|---|
21_Thread (0) | 2021.07.28 |
19_ModelMaterial [2/2] (0) | 2021.07.19 |
19_ModelMaterial [1/2] (0) | 2021.07.17 |
18_ModelEditor [2/2] (0) | 2021.07.14 |