본문 바로가기
공부/DirectX3D

[DirectX3D/ASSIMP] ASSIMP 구조

by MY블로그 2023. 6. 21.

https://learnopengl.com/Model-Loading/Assimp

ASSIMP ?

model importing library 입니다.

Open Asset Import Library 줄여서 ASSIMP 라고 합니다.

ASSIMP는 모든 모델의 데이터를 생성한 구조로 불러옴으로써 많은 종류의 모델 파일 포멧을 import(추출)이 가능합니다.

 

ASSIMP가 모델을 로드하기만 한다면 데이터 구조에서 사용자가 원하는 모든 데이터를 얻어 올 수 있습니다.

ASSIMP의 데이터구조가 import된 파일 포멧의 유형과 관계없이 동일하게 유지되기 떄문에 다양한 확장자의 파일 포멧들을  추상화 할 수 있습니다.

 

전체적인 모델을 import된 모든 모델(Object)의 씬(Scene)을 포함하고있는 Scene 객체에 로드합니다.

ASSIMP는 노드의 모음을 가지게 되고 각 노드는 자신의 자식 노드들의 index정보를 가지게 됩니다.

ASSIMP의 구조모델은 위의 이미지를 참조합니다.

 

Scene

모델(Object)의 모든 정보(ex. material,mesh)는 Scene 객체에  포함 합니다.

이는 Scene의 루트노드(Root node)에 대한 참조를 가지고 있습니다.

참고용

Root node

루트노드는 자식 노드들을 포함 합니다.

Scene 객체의 mMeshes 배열 안의 데이터를 가리키는 인덱스들의 모음을 가지고 있으며 이 루트 노드의 mMeshes 배열은 실제 Mesh 객체들을 가지고 있으며 일반 노드의 mMeshesM 배열에 들어있는 값은 오직 ㄴscene의 mesh 배열에 대한 index들만 가지고 있습니다.

참고용

Mesh

Mesh객체는 렌더링에 필요한 모든 데이터를 포함 합니다.

오브젝트의 정점 위치, 법선 벡터, 텍스처 좌표, 면, 머테리얼이 있습니다.

Face

면은 렌더링 기본 오브젝트(삼각형, 사각형, 점)를 나타냅니다.

면은 그리는방식(primitive)를 형성하기위한 정점들의 인덱스를 가지고 있습니다.

정점들과 인덱스들이 분리되어있기 때문에 인덱스 버퍼를 통해서 렌더링을 하는 것을 쉽게 만들어 줍니다.

Material

오브젝트의 재질(material) 속성들을 얻기위한 여러가지 함수들을 관리합니다.

텍스처 map(diffuse, specular map) 그리고 색상(color)가 있습니다.

 

ASSIMP는 Github 등의 검색으로 라이브러리를 쉽게 받을 수 있습니다.

 

현재사용 버전 ( ~ 2021) 사용중.

ASSIMP 완성뒤 추가 갱신 예정.

 

ASSIMP 참고 사이트

 

LearnOpenGL - Assimp

Assimp Model-Loading/Assimp In all the scenes so far we've been extensively playing with our little container friend, but over time, even our best friends can get a little boring. In bigger graphics applications, there are usually lots of complicated and i

learnopengl.com

 

3D 모델 오픈소스 구하는 사이트

 

Opensource 3D Models Obj - Free .Obj Download - Open3dModel

1 Free 3D Opensource Models was found for Obj, files in .Obj with highly detailed, low poly, rigged, animated, printable.

open3dmodel.com

 

댓글