Loading...

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..

cbuffer

Constant Buffers Starting with Direct3D 10, an application can use a constant buffer to set shader constants (shader variables). dx10에서는 쉐이더 상수(변수)를 위해 상수버퍼를 사용한다. Constant buffers are declared using a syntax similar to C-style structs. 상수버퍼는 c스타일의 구조체와 비슷한 문법으로 선언된다. Constant buffers reduce the bandwidth required to update shader constants by allowing shader constants to be grouped together and..

2009. 11. 11. 15:24

Alternatives to Using Z-Bias to Fix Z-Fighting Issues

Z 충돌 이슈를 수정하기 위해 Z 바이어스를 사용하는 것에 대한 대안들 소개 By Matt McClellan and Kipp Owens 3D 응용프로그램 내에는 두 개의 폴리곤들이 같은 평면 상에 놓여 있는 많은 인스턴스들이 존재한다. 예를 들면 총알 자국이나 벽의 포스터와 같은 이펙트의 경우이다. 이런 폴리곤들은 같은 평면상에 놓여 있기 때문에 그것들은 같은 z-buffer 값을 공유하며, 이것은 "z-fighting" 이슈를 발생시킬 수 있다. 이것은 렌더링 순서에 의해서 다양하게 나타날 수 있다. 과거에는 DirectX* 가 개발자가 "z-bias" 를 동일 평면상의 폴리곤에 적용할 수 있게 함으로써 z-fighting 이슈를 해결할 수 있게 해 주었다. z-bias 를 적용하는 것은 효율적인 해결..