3D는 매번 시작할때마다 바로 좌절해버리는데 이번에도 마찬가지..
이번에는 3DS 뷰어를 만들겠다하고 검색하다가 이런곳을 발견..
http://archive3d.net/ 
3ds파일이 꽤 많아 테스트하기에 좋다고 생각하고, 자동차 하나를 받았습니다..


이런 자동차..

ase는 예전에 해봤는데 3ds포맷은 처음 해보는거라 일단 구글검색하여 페이지를 찾았습니다...
http://www.the-labs.com/Blender/3dsspec.html
http://www.martinreddy.net/gfx/3d/MLI.spec
3ds파일안에 material정보가 있는데 그 부분은 .mli 파일과 동일하다고 안적어놔서.. 따로 찾았네요.. (두번째 링크)

개발환경은 win xp, vs2008, c#, direct3d 입니다.. 
c++은 쓸데업는 코딩이 많고, opengl은 쓰려면 여기저기 찾아봐야되기 때문에... c#과 direct3d 가 된거죠..-_-;
어쨌든 결과적으로 미완성입니다... 왜냐면 정점들을 읽어서 출력하는건 알겠는데...
material이라든지 lighting 관련된건 하나도 모르겠거든요...

채우기로 하면 그냥 다 하얗게 나오기 때문에 와이어프레임으로 해놨습니다..
텍스쳐를 붙이면 좀 나아지겠지만 그 다음부터가 진도나가기 쉽지 않네요..
어쨌든 결과물을 올립니다.. Managed DirectX 입문에는 약간 도움이 되지 않을까 하네요 -_-;;

'컴퓨터 프로그래밍 > Direct3D' 카테고리의 다른 글

Direct3D projection Effect  (0) 2009.12.02
[C# + MDX 프로그래밍] HLSL  (0) 2008.12.17
Posted by orange code
컴퓨터 프로그래밍2008. 10. 30. 17:02

Visual Studio도 MSDN도 없이 C# 프로그래밍을 한 적이 있습니다. (인터넷도 안됩니다..)
csc와 메모장만으로 프로그래밍을 했었는데 그 때 제가 알고 있던 System.Reflection의 기능들 덕분에 많은 일이 가능했습니다..
알고 있던건 내용으로 우선 typeof로 Type 개체를 가져오고 GetMethods, GetProperties등의 함수로 타입들의 함수, 속성, 이벤트등을 알수 있었습니다. 그래서 이 기능을 이용해서 닷넷 dll을 다 읽어와 모든 타입의 정보를 html로 저장해버렸고, 원하는 타입의 함수, 속성등을 찾아볼 수 있게 되었습니다.
하지만 html파일에 없는 정보를 알고 싶을때는 프로그램을 수정하여 다시 html를 만들어야했기 때문에 시간이 오래걸렸습니다. 그래서 나중에는 System.Net 에 있는 소켓을 사용하여 작은 웹서버를 만들어 원하는 타입의 이름을 입력하면 즉석에서 정보를 가져와 보여주도록 했고, 이것으로 html을 매번 만들필요도 없어졌습니다.

그렇다면 그런 일을 가능하게 해준 이 기능은 어떻게 쓰는 것인가...

일단 Type의 개체는 typeof(타입이름) 혹은 변수.GetType()으로 가져올 수 있습니다.

Type type = typeof(string);

string str = "abc";
Type type = str.GetType();

설명은 일단 MSDN으로 대체합니다.

Posted by orange code