Max Export - 4
Posted by Go crazy for anything that will make you smile.
간만에 글을 쓰니 힘드네..흐음.. 얼추 끝난것 같은데 주의할 점 몇가지와 마무리 부분을 좀 정리해야 할 듯... 정점(버텍스)를 저장할 때 중복되는 정점이 있는지 검사해서 중복되는 것은 재사용할 수 있도록 해준다. for(index=0; index
간만에 글을 쓰니 힘드네..흐음.. 얼추 끝난것 같은데 주의할 점 몇가지와 마무리 부분을 좀 정리해야 할 듯... 정점(버텍스)를 저장할 때 중복되는 정점이 있는지 검사해서 중복되는 것은 재사용할 수 있도록 해준다. for(index=0; index
얼추 노드에서 메시를 얻어 필요한 정보들을 얻는 방법들을 이전 글에서 정리 했었다. 이전 글에서 노드에서 얻은 값들은 아래와 같다. posWorld : 월드상의 위치값 normal : 노말값 uvVert : 텍스쳐 좌표값 texName : 사용하는 텍스쳐 이름 color : 정점 색깔 vertexIndex : 정점의 인덱스값 ase export를 해본 사람은 알겠지만 max와 directx와의 좌표계는 다르다. max는 오른손 좌표계를 쓰고 dx는 왼손 좌표계를 사용한다. 왼손좌표계와 오른손 좌표계에 대한 설명은 아래 링크중 ASE Animation에 그림으로 잘 나와있다. 늘 써오던 dx의 왼손좌표계를 기준으로 오른손 좌표계는 y와 z만 바꿔주면 된다. 그리고 좌표가 바뀌면서 face의 인덱스 순서도 ..
노드를 얻어오는 방법과 필요없는 노드를 분별하는 방법을 알았으니 이제 노드로부터 원하는 정보를 뽑아낼 필요가 있다. 우선 mesh 정보를 뽑아내기 위한 과정을 보자. 맥스에서 Mesh정보를 담고 있는 Mesh 클래스가 준비되어 있는데 Node로 부터 이 Mesh 클래스 정보를 얻을 수 있다. 전반적인 과정은 INode -> ObjectState -> TriObject -> Mesh 이다. INode로부터 ObjectState 얻기. ObjectState os = node->EvalWorldState(currentTime_); ObjectState의 Object가 TriObject로 변환가능한지 체크. if(!os.obj->CanConvertToType(triObjectClassID)) return (TR..
이전에 max export 강좌를 올린적이 있었는데 이번엔 export를 만들고 나서 정리를 위해 글을 쓸 예정이다. 익스포터 프로젝트를 만드는 방법에 대한 내용은 아래 링크를 참고하면 된다. http://mgun.tistory.com/791 프로젝트를 만들면 아래와 같은 클래스가 생긴다. class MgExport : public SceneExport { public: ... int DoExport(const char *name,ExpInterface *ei,Interface *i, BOOL suppressPrompts=FALSE, DWORD options=0); ... Interface* ip_; ExpInterface* expIp_; } 나의 export의 이름은 Mg를 사용한다. 그냥 나의 이니셜..
character 관련 블로그 - http://blog.naver.com/redkain?Redirect=Log&logNo=60017592122 - http://blog.naver.com/lifeisforu?Redirect=Log&logNo=80022418588 - http://blog.naver.com/lifeisforu?Redirect=Log&logNo=80022418778 max script 영문 - http://www.scriptspot.com/ - 상당히 많은 수의 맥스스크립트 보유. - http://www.footools.com/ - 스크립트 및 유틸, 플러그인 사이트. - http://www.codercorner.com/Flexporter.htm - 게임용 범용 exporter SDK.(구체적..
링크 : http://blog.naver.com/swelldom1?Redirect=Log&logNo=10097330799 http://blog.naver.com/edunboy/150112600946
test.cpp-------------------------------------------- #include extern "C" { __declspec(dllexport) void DisplayHelloFromDLL() { printf ("Hello from DLL !\n"); } } ---------------------------------------------------- test.cs---------------------------------------------- using System; using System.Runtime.InteropServices; class HelloWorld { [DllImport("TestLib.dll")] public static extern void Displa..
간만에 다시 시작하는 c# 프로그래밍...헐헐. 윈도우 폼 프로젝트를 시작하면 아래와 같은 미리 만들어진 코드를 볼 수 있다. namespace WindowsFormsApplication1 { static class Program { /// /// 해당 응용 프로그램의 주 진입점입니다. /// [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } } } 위의 코드에서 [STAThread]는 단일 스레드로 지정하는 속성이며 다중 스레드를 사용하지 않는다는 것을 의미한다.