반응형
2008/09/26 - [Ψ Programing Book/Δ 3D Data Export] - Chapter 3.1 참고자료
3D Max에서 데이터를 게임에서 사용하기 위해서 추출하는 방법 중에 하나가 ASCII Export이다.
ASE는 원래 Max의 플로그인으로 제작되어 있다. 즉, 파일을 외부로 Export하는 플러그인이 Max SDK로 제작된 것이다.
이 ASE 플러그인 소스는 Max의 Max SDK의 예제 소스로 제공해 준다. 따라서 필요한 경우 이 소스를 수정하여 사용할 수 있다.
ASE의 전반적인 구조
< Geo Object >
일반적인 Mesh를 가진 객체를 말한다. 가장 핵심적인 Object라고 할 수 있다.
Mesh를 가지고 있으며 Mesh는 Face의 모임으로 구성되어 있다. 또 Face는 3개의 Vertex로 이루어져 있으며 다양한 형태의 Vertex들로 구성되어 있다.
이 부분의 개념이 D3D와 많은 차이가 난다. D3D에서는 모든 Vertex들이 하나로 뭉쳐서 Vertex를 이루지만 3D Max에서는 좌표정보를 가진 Vertex, Texture좌표를 가진 Vertex 등 다양한 종류의 Vertex로 나뉘어 있다.
< Shape Object >
선을 가진 객체를 의미 한다. 와이어만으로 객체를 형성한 것으로 여러 개의 끊어진 선으로 출력된다.
D3D에서 보자면 LINE_LIST나 LINE_STRIP 등에 해당하는 것으로, 하나의 Line은 두개의 Vertex로 구성되어 있으며 Mesh와 같이 Vertex와 Index로 나뉘어져 있지 않고 그냥 Vertex로만 구성되어 있다. 단 선의 굵기를 설정할 수 있는데 이 부분을 제대로 처리하기에는 D3D가 약간 부족한 면이 있다.
< Light Object >
광원에 대한 객체를 의미한다. 말 그대로 광원을 의미하는 것으로 D3D에 비해서 다양한 형태의 광원을 만들 수 있다.
물론 이러한 광원들을 모두 D3D에서 그대로 옮겨서 사용할 수는 없다. 다양한 종류의 Attenuation, 다양한 형태의 광원 모양 등 다양한 파라미터로 구성되어 있기 때문에 D3D로 변환 할 때 어느 정도의 융통성이 필요로 한 부분이다.
< Camera Object >
카메라에 대한 객체를 의미한다. 카메라는 D3D에서 View와 Projection Matrix을 결정하는 부분으로 역시 D3D에 비해서 다양한 옵션을 지원한다.
< Help Object >
Group이나 Object에 대한 부수적인 정보를 가진 Object라고 할 수 있다.
< Group >
Group은 자체로써 객체는 아니다. 단지 여러 개의 Object들을 묶어 놓은 것을 의미한다. 또 Group은 다층이 가능하다. 즉 Group안에 다시 Group이 올 수도 있다는 뜻이다.
Group은 여러 개의 객체를 묶어 놓은 것으로 하나의 Node로 취급될 수 있는데 이것은 Help Object가 대신해 준다. Group과 똑같은 이름의 Help Object가 존재해서 이것이 Group에 속해 있는 모든 Object들의 최상위 부모 Object로 설정이 되는 것이다.
3D Max에서 데이터를 게임에서 사용하기 위해서 추출하는 방법 중에 하나가 ASCII Export이다.
ASE는 원래 Max의 플로그인으로 제작되어 있다. 즉, 파일을 외부로 Export하는 플러그인이 Max SDK로 제작된 것이다.
이 ASE 플러그인 소스는 Max의 Max SDK의 예제 소스로 제공해 준다. 따라서 필요한 경우 이 소스를 수정하여 사용할 수 있다.
ASE의 전반적인 구조
- File Head
ASE 파일이 Version 정보나 Comment 등의 정보를 담고 있다.
- Scene
Scene에 대한 전반적인 정보를 담고 있다.
버전정보나 전체 프레임수 등 ASE의 기본적인 정보를 표시해 준다.
- Material List
사용된 Material들의 List 이다.
Object 중 GeoObject에서 사용하는 Material을 List형태로 나열해 놓았으며 각 Material에는 번호를 붙여 놓아서 GeoObject에서 이 번호를 참조해 어던 Material을 사용하는지 알아내도록 되어 있다.
- Object List
각종 Object들의 List, GeoObject, ShapeObject, LightObject, CameraObject, HelpObject 등이 있으며 Group으로 묶어질 수 있다. Object는 쉽게 말해서 장면들을 구성하는 각종 객체들이라고 할 수 있다. Face로 구성된 GeoObject에서부터 선을 나타내는 ShapeObject, 광원, 카메라 기타 도움을 주는 Object등 다양한 형태의 Object들이 계층 구조를 가지고 있다.
< Geo Object >
일반적인 Mesh를 가진 객체를 말한다. 가장 핵심적인 Object라고 할 수 있다.
Mesh를 가지고 있으며 Mesh는 Face의 모임으로 구성되어 있다. 또 Face는 3개의 Vertex로 이루어져 있으며 다양한 형태의 Vertex들로 구성되어 있다.
이 부분의 개념이 D3D와 많은 차이가 난다. D3D에서는 모든 Vertex들이 하나로 뭉쳐서 Vertex를 이루지만 3D Max에서는 좌표정보를 가진 Vertex, Texture좌표를 가진 Vertex 등 다양한 종류의 Vertex로 나뉘어 있다.
< Shape Object >
선을 가진 객체를 의미 한다. 와이어만으로 객체를 형성한 것으로 여러 개의 끊어진 선으로 출력된다.
D3D에서 보자면 LINE_LIST나 LINE_STRIP 등에 해당하는 것으로, 하나의 Line은 두개의 Vertex로 구성되어 있으며 Mesh와 같이 Vertex와 Index로 나뉘어져 있지 않고 그냥 Vertex로만 구성되어 있다. 단 선의 굵기를 설정할 수 있는데 이 부분을 제대로 처리하기에는 D3D가 약간 부족한 면이 있다.
< Light Object >
광원에 대한 객체를 의미한다. 말 그대로 광원을 의미하는 것으로 D3D에 비해서 다양한 형태의 광원을 만들 수 있다.
물론 이러한 광원들을 모두 D3D에서 그대로 옮겨서 사용할 수는 없다. 다양한 종류의 Attenuation, 다양한 형태의 광원 모양 등 다양한 파라미터로 구성되어 있기 때문에 D3D로 변환 할 때 어느 정도의 융통성이 필요로 한 부분이다.
< Camera Object >
카메라에 대한 객체를 의미한다. 카메라는 D3D에서 View와 Projection Matrix을 결정하는 부분으로 역시 D3D에 비해서 다양한 옵션을 지원한다.
< Help Object >
Group이나 Object에 대한 부수적인 정보를 가진 Object라고 할 수 있다.
< Group >
Group은 자체로써 객체는 아니다. 단지 여러 개의 Object들을 묶어 놓은 것을 의미한다. 또 Group은 다층이 가능하다. 즉 Group안에 다시 Group이 올 수도 있다는 뜻이다.
Group은 여러 개의 객체를 묶어 놓은 것으로 하나의 Node로 취급될 수 있는데 이것은 Help Object가 대신해 준다. Group과 똑같은 이름의 Help Object가 존재해서 이것이 Group에 속해 있는 모든 Object들의 최상위 부모 Object로 설정이 되는 것이다.
반응형