반응형

요즘 윈도우 태블릿에서 DirectX11로 이것저것 만들어보기 위한 간단한 프레임워크?를 다시 만들어보고 있는 중이다.


예전에는 assimp를 붙였었는데 새로 만들어보는김에 assimp보다 심플할것 같기도 해서 FBX SDK를 이용해보기로 했다.


Unity 에셋스토어등에 FBX로 된 에셋들도 많으니 테스트 환경을 만드는데 괜찮을것 같다.


FBX SDK를 사용하는 방법에 대해 간단하게 알아보자.




일단 FBX SDK를 다운받는다.


https://www.autodesk.com/developer-network/platform-technologies/fbx-sdk-2019-0


글쓰는 시점의 최신버전은 2019.0이다.


내 개발환경은 윈도우10 / VS 2017을 사용하고 있다.


그런데 다운 받는곳을 보니 VS 2015용까지만 있어서 당황했는데 VS2015용을 받아서 사용하면 잘 된다.


설치하고 해당 폴더에 가보면 include / lib / samples가 있다.


적용하고자 하는 프로젝트에다가 include 파일을 복사해서 넣고 자신의 프로젝트에 맞게 library 파일을 가져다가 사용하기만 하면 된다.


기본 흐름은 sample 파일들을 보면 알 수 있다.


간단한 흐름을 정리해보면...


1. FbxManager를 생성한다.

2. Fbx 파일을 로드하기 위한 Scene을 하나 생성한다.

3. Fbx 파일을 로드하기 위한 FbxImporter를 하나 생성한다.

4. FbxImporter에 로드하려는 파일명을 넣어준다.

5. Importer를 이용해 Scene을 로드한다.

6. RootNode부터 순회하면서 원하는 정보를 얻는다.

  * Vertex / Normal / Tangent등 Attribute를 비교해가면서 얻어가면 된다.

7. 위에서 생성했던 리소스들을 정리해주자!



FBX SDK 사용에 관련해서 검색을 해보고 좋아보이는 링크들을 올려본다.


http://ozlael.egloos.com/4041764


https://www.gamedev.net/articles/programming/graphics/how-to-work-with-fbx-sdk-r3582


http://www.walkerb.net/blog/dx-4/



반응형
Posted by msparkms
,
반응형


png파일을 dds로 변환할 필요가 생겨서 검색해 보니 nvdxt라는 유틸리티가 있다는 것을 알게되었다.


https://developer.nvidia.com/legacy-texture-tools


legacy texture tool이라니... ㅎㅎ


nvdxt.exe를 이용해 쉽게 모든 폴더의 png를 변환하기 위해 다음과 같은 배치파일을 작성해서 테스트해보았다.


for /D %%d in (*) do (

  cd %%d

  nvdxt.exe -file *.png -quality_highest -dxt5 -nomipmap -overwrite

  cd ..

)


간단 설명


-file *.png : 모든 PNG 파일을 변환해라.

-quality_highest : 최상급의 퀄리티로 뽑아라.

-dxt5 : dxt5 포맷으로 뽑아라.

-pre_modulate : PremultipliedAlpha를 적용하려면 이 옵션을 설정하자.

-nomipmap : 밉맵을 생성하지 않는다. (생성하려면 -mipmaps 2 였던가?? 물론 width / height가 2의 승수여야 한다.)

-overwrite : 기존에 파일이 있으면 덮어쓴다.



이상적인 결과를 얻기 위한 옵션은 계속 실험을 통해 찾아봐야 될 것 같다. ㅠㅠ

반응형
Posted by msparkms
,
반응형



http://graphics.cs.williams.edu/data/meshes.xml 



다른 링크를 찾으면 추가해야겠다.


근데 거의 다 있는듯. ㅎㅎ

반응형

'프로그래밍 > 게임 리소스' 카테고리의 다른 글

FBX SDK 사용해보기  (0) 2018.08.30
DDS 변환 Util - nvdxt  (0) 2015.10.07
Open Asset Import Library - Assimp  (0) 2012.09.11
WOW 모델 & 스타2 모델 Import 하기  (0) 2012.09.11
둠3 소스 공개!  (2) 2011.11.23
Posted by msparkms
,
반응형


http://assimp.sourceforge.net/


7월 10일에 3.0 버전이 나왔다!


적용은 안 할거지만 나중을 위해 남긴다.


안에 있는 샘플중에서 뷰어를 참조하면 Direct3D와 어떤 식으로 연동해야 하는지 흐름을 알 수 있다.

반응형
Posted by msparkms
,
반응형


WOW 모델 뷰어 : http://code.google.com/p/wowmodelviewer/downloads/list

M3 Plugin : http://www.sc2mapster.com/profiles/NiNtoxicated01/

MPQ Editor : http://www.zezula.net/en/mpq/download.html



일단 WOW를 설치하고 모델 뷰어를 켜서 연결시켜준다.


옆에 뜨는 리스트중 마음에 드는 모델을 선택한 후 Options->Export Options->M3(탭)을 선택한다.


스케일이나 텍스쳐 경로는 굳이 설정할 필요 없고 뽑고 싶은 애니메이션 리스트를 선택해 준다.


File->Export Model->M3를 선택하고 뽑아주면 해당 모델과 텍스쳐가 뽑혀진다.


스타2는 MPQ Editor 같은 MPQ 추출 프로그램을 통해서 M3파일과 텍스쳐를 뽑으면 된다.


Max에서 M3Script를 통해서 추출하면 끝!


스타2는 모르겠지만 WOW 모델은 재질부분에서 어떤 텍스쳐를 쓰는지 적혀있기 때문에 그대로 적용하면 됨.

반응형
Posted by msparkms
,
반응형


https://github.com/TTimo/doom3.gpl

우~! 둠3 소스를 공개한다고 기사가 나오고 좀 걸릴 줄 알았는데 이렇게 바로 나올 줄이야!!!

물론 본 다고 바로 이해가 되는건 아니겠지만 그래도 조금씩 읽어봐야겠음 ㅎㅎ

일단 둠3부터 해볼까 -0-;;

동영상만 봐서... ㅋㅋ 

나도 실력을 키우고 소스 공개도 하고 이래야 되는데 흠.. 열심히 하자! 
반응형
Posted by msparkms
,
반응형
SMD FILE FORMAT
version 1
nodes
번호 이름               부모인덱스
0 "ValveBiped.Bip01" -1
1 "ValveBiped.Bip01_Pelvis" 0
2 "ValveBiped.Bip01_Spine" 1
...
end
skeleton
시간값
time 0
노드 번호 Translation X, Y, Z             Rotation X, Y, Z
0 0.000000 0.000000 42.566673 0.000000 0.000000 -1.570795
1 0.000000 0.000000 0.000000  0.000000 -1.570796 -1.570795
2 3.505173 -0.002660 0.000005 -0.000004 -0.000001 0.099156
        ... 
end
triangles
텍스쳐 이름
default_skin.bmp
본 인덱스     Position                                      Normal                                      UV                             본 갯수  본 인덱스  가중치
45            7.430029 -0.033034 0.003900 0.000000 0.000000 0.000000 0.781300 -0.397200 1          45            1.000000
45             7.430028 -0.188633 1.114300 0.000000 0.000000 0.000000 0.659100 -0.359400 1          45            1.000000
45             7.609929 -1.584334 0.573201 0.000000 0.000000 0.000000 0.696500 -0.474900 1          45            1.000000
        ... 
end

간단하고 직관적인 포맷이다. -0-;;

실제 게임에서 사용할때는 일단 기본 몸체인

Reference Model을 하나 두고,

각 애니메이션마다 SMD를 하나씩 만든다. 

애니메이션이름과 연동되는 SMD파일 이름과 페이셜 애니메이션, 시선처리등등의 정보를 스크립트에 적고

이를 이용해 SMD파일과 기타 파일들을 빌드하여서 MDL이라는 파일을 만들어내 사용한다.

개인적으로는 이 포맷 그대로는 사용하지 않지만 애니메이션 연결부분은 비슷하게 진행될 것 같다.
반응형

'프로그래밍 > 게임 리소스' 카테고리의 다른 글

Open Asset Import Library - Assimp  (0) 2012.09.11
WOW 모델 & 스타2 모델 Import 하기  (0) 2012.09.11
둠3 소스 공개!  (2) 2011.11.23
공개 엔진 모음  (0) 2011.11.07
스타크래프트2 M3 파일 관련 사이트  (0) 2011.09.25
Posted by msparkms
,
반응형
OGRE나 Irrlicht같이 유명한 엔진 말고도 정말 많은 엔진이 있다.

그냥 하나씩 하나씩 여기다 적어보겠다.

delta3D 엔진 : FPS 전용으로 만든 엔진같다.
http://www.delta3d.org/ 
반응형
Posted by msparkms
,
반응형

http://code.google.com/p/libm3/wiki/RenderM3
http://www.sc2mapster.com/assets/ 

 해당 링크는 M3파일을 읽고 난 다음 애니메이션 처리까지 해주는 소스이고

SVN을 땡겨보면 M3파일을 읽어들이는 소스도 있다.

예전에 사용해보려다가 말았었는데 이번에 한번 해봐야겠다.

겸사겸사 스타2도 깔아야지...ㅎㅎ

http://oneclick-code.googlecode.com/svn -> 여기도 M3포맷을 이용하였고 간단한 게임 엔진도 구축되어 있다. 
반응형

'프로그래밍 > 게임 리소스' 카테고리의 다른 글

Open Asset Import Library - Assimp  (0) 2012.09.11
WOW 모델 & 스타2 모델 Import 하기  (0) 2012.09.11
둠3 소스 공개!  (2) 2011.11.23
간단하게 알아보는 SMD File format  (0) 2011.11.08
공개 엔진 모음  (0) 2011.11.07
Posted by msparkms
,