Loading...

Physique Vs Skin modifier and Bones Vs Bipeds

bone은 일반적인 뼈를 나타내는데 하나의 마디를 나타낸다. 워낙에 max로 케릭작업을 많이 하니까 max에서 사람모양 작업을 편하게 하도록 만든 것이 biped. 즉, biped는 사람모양에 맞게 미리 준비되어 있는 기능인지라 이 biped로 토끼를 만들거나 호랑이를 만들거나 하는건 어렵다. 사람모양에 특화된 bone이라고 생각하면 될듯하다. skin과 physique는 일반적인 피부라고 생각하면 될듯하다. 즉, max상에서의 일반 메쉬로 보면된다. 바이패드의 셋팅이란 케릭터의 뼈대를 위치시키는 것을 말하는데 이 뼈대와 케릭터를 직접 연결시키는 작업을 리깅이라고 한다. 이후에 할 작업이 피직과 스킨인데 피직은 아주 오래된 기능이다. 그나마 최근 기능이 스킨인데 디자이너 입장에서는 스킨이 훨 편하다니까...

_beginthread와 _beginthreadex의 차이

출처 : http://naiades.tistory.com/6 윈도우즈에서 스레드를 생성하는 API는 CreateThread(), _beginthread(), _beginthreadex() 이렇게 3개의 함수가 존재합니다. CreateThread()와 _beginthread(), _beginthreadex()의 차이점은 다음과 같습니다. CreateThread()는 스레드를 생성하는 기능만 담당한다. _beginthread(), _beginthreadex()는 내부적으로 CreateThread() 를 사용하여 스레드를 생성하고 C Runtime library에서 내부적으로 필요로 하는 메모리 영역을 초기화 해주는 역할을 하게 됩니다. 초기화 되는 메모리 영역은 각 스레드 마다 따로 관리되게 됩니다. 그렇다..

ITreeEnumProc

맥스에서 개체는 INode로 이루어져 있다. 해당 노드로 부터 bone, dummy, mesh등의 정보를 얻어 올 수 있다. 이 노드를 얻기위해서 두가지 방법이 있다. 하나는 Interface::GetRootNode로 모으는 방법이고 다른 하나는 ExpInterface::theScene->EnumTree(ITreeEnumProc*) 함수로 클래스를 넘겨서 callback 함수가 호출되게 하는 방법이다. 1. Interface::GetRootNode()를 이용하는 방법 void maxProject::PreProcess(INode* node, int& nodeCount) { nodeCount++; // 노드의 갯수 mtlList.AddMtl(node->GetMtl()); // 재귀 호출 for (int c ..

언제나 최악의 상황에서 스레드 테스트를..ㅜㅜ..

일반적으로 테스트해볼때는 이런 버그가 안생겼는데 엄청난 부하를 주고 프레임을 1~2까지 만든 다음에 왕창 테스트를 해보니 이런 버그도 나는군 ... 헐. 스레드는 역시 테스트를 많이 해봐야해.ㅜㅜ. Vector: deque iterator not dereferencable Hi, i've got a problem with a stl vector, and i cant find any information about this error. the error is: deque iterator not dereferencable while(!Servers->empty()){ if (RequestServerInfo(&Servers->front())!=0){ MisScanned++; } else{ if (DealWit..

DllMain 사용, DllMainCRTStartup , DllMain , fdwReason , DLL_PROCESS_ATTACH , DLL_PROCESS_DETACH

[DllMain 의 사용] IMAGE_OPTIONAL_HEADER에서 AddressOfEntryPoint 필드에 해당하는 값이 독자가 확인결과 0x00001230 였다. 그곳은 책에서 말하기로는 DllMainCRTStartup 함수에 대한 진입점 이라고 한다. 독자가 역어셈블리프로그램을 통해서 프로그램 시작부분을 봤는데 책의 설명대로 프로그램의 시작 부분이었다.하지만 DllMainCRTStartup 이라는 이름은 보이지 않고 그냥 함수 시작이라고 나오는데 솔직히 좀 애매모했다. 확실한건 이부분이 프로그램의 첫실행부분이라는 점이다. exe파일의 경우 WinMainCRTStartup 이나 mainCRTStartup의 진입점이고 프로그램이 WinMain이나 main을 호출한다. 하지만 우리가 만든 DLL의 경..

2009. 12. 16. 23:54

D3D10 resource usage.

출처 : http://blog.naver.com/lifeisforu/80073203984 D3D10 에서는 더 이상 memory pool 에 대한 고민을 할 필요가 없어졌습니다. 출처 : DXSDK 도움말. 이제 더 이상 resource 를 video memory 에 생성할지 system memory 에 생성할지 고민할 필요가 없어졌다. 그리고 runtime 이 memory 를 관리할지 말지도 고민할 필요가 없다. 새로운 WDDM 의 구조에 감사하기 바란다. Application 은 이제 "application 이 resource data 를 무슨 의도로 생성했는지"에 대한 usage flag 를 지정하기만 하면 된다. 새로운 driver model 은 resource 에 의해 사용되는 memory 를 ..

큐브맵의 밉맵생성

환경맵핑때문에 만들어둔 큐브맵에 밉맵을 생성해서 사용해야 할 일이생겼다. msdn에 보니 레벨부분만 0으로 설정해주면 생성이 된다고 하던데.... 문제는 생성된 나머지 레벨에는 쓰레기 값만 있다는 거다. 그래서 gpg에서 검색해 보니 아래와 같은 글을 발견했다. pd3dDevice->CreateTexture( MAP_SIZE, MAP_SIZE, 0, D3DUSAGE_RENDERTARGET|D3DUSAGE_AUTOGENMIPMAP, D3DFMT_A8R8G8B8, D3DPOOL_DEFAULT , &g_pShadowTex, NULL); 로 텍스쳐를 생성한 후에 텍스쳐를 렌더타켓으로 설정 후 뭔가를 그린 후에 이 텍스쳐를 어딘가에 사용하기 전에 g_pShadowTex->SetAutoGenFilterType( D..