본문 바로가기

DirectX3

DirectX - 행렬(Matrices) Dx에서 3차원의 정점(Vertex)를 화면상의 모니터로 출력해 주기 위해서는 3가지의 행렬 변환이 필요 하다. 1. 월드 행렬 2. 뷰 행렬 3. 투영 행렬 월드 행렬의 경우에는 3D오브젝트의 로컬좌표를 3차원의 필드에 특정 위치에 뿌려 주기 위해서, ( 좀더 간단하게 말하면, 로컬 좌표를 월드 좌표로 변환 하는 작업 ) 뷰 행렬은 카메라를 셋팅한다고 생각하면 되는데, 뷰 행렬을 만들기 위해서는 추가적인 3개의 백터가 필요 하다. 카메라의 위치, 카메라가 바라보는 방향, 카메라의 Up벡터가 필요 하다. 마지막으로 투영 행렬은, 각각의 3D좌표들을 우리의 눈으로 보게 되는 2D로 변경하는 작업을 한다. 이런 작업을 렌더링 파이프라인이라고 하는데, 3D의 좌표를 모니터 화면에 뿌려주기 위한 작업이라고 보면.. 2010. 6. 14.
DirectX-전체 화면 하는 방법 디바이스를 생성할때 InitD3D함수에서. D3DPRESENT_PARAMETERS d3dpp;// 디바이스 생성을 위한 구조체 ZeroMemory( &d3dpp, sizeof( d3dpp ) );// 반드시 ZeroMemory() 함수로 구조체를 지워야 함 d3dpp.Windowed = TRUE;// 창모드로 생성 d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;// 가장 효율 적인 SWAP 효과 d3dpp.BackBufferFormat = D3DFMT_UNKNOWN;// 현재 바탕화면 모드에 맞춰 후면 버퍼를 생성​ 다음과 같은 부분이 있었습니다. 전 그냥 Windowed 라는 부분을 FALSE로 해주면 전체화면이 되겠거니, 하였으나, 그렇지 않더군요. 단순히 전체화면을 하고 .. 2010. 5. 19.
DirectX-디바이스 생성 자 이제 DX를 해봅시다! 일단 닥치고 코드를 칩니다. // DX9를 사용하기 위한 헤더 #include #pragma comment(lib, "dxerr9.lib") #pragma comment(lib, "d3d9.lib") #pragma comment(lib, "d3dx9.lib") #pragma comment(lib, "dxguid.lib") #pragma comment(lib, "winmm.lib") ////////////////////////////////////////////////////////////////////////// // 전역 변수 LPDIRECT3D9g_pD3D = NULL;// D3D 디바이스를 생성할 D3D 객체 변수 LPDIRECT3DDEVICE9g_pd3dDevice = .. 2010. 5. 17.