Programing/DirectX
-
Direct3D에서 지원하는 광원들Programing/DirectX 2008. 5. 8. 21:42
Direct3D에서 지원하는 광원들 1. 주변광원(ambient light) : 3차원 공간 내에서 메시의 배치나 위치와는 전혀 상관없이 똑같은 양으로 모든 곳을 비추는 빛의 강도를 말한다. 방향과 위치가 없으며, 색깔과 강도만 존재한다. 디바이스 -> SetRenderState(D3DRS_AMBIENT, 색) 2. 점 광원(point light) : 직관적으로 가장 쉽게 생각할 수 있는 빛이다. 예를 들면, 백열전구를 생각하면 된다. 광원의 위치, 방향에 따라 빛의 강도가 달라진다. 3. 방향성 광원(directional light) : 모든 광원의 방향이 하나의 방향을 갖는 것으로 완벽하지는 않지만 태양을 예로 들 수 있다. 광원의 위치는 상관없고, 방향이 가장 중요한 요소다 4. 점적 광원(spot..
-
정점 버퍼 생성하기Programing/DirectX 2008. 5. 8. 14:37
다이렉트 SDK기본 튜토리얼 2번째시간에 있는 정점 버퍼 생성에 관한 글이다. 첫번째 시간의 디바이스 생성코드를 기준으로 작성을 하기로 한다. 우선 정점 버퍼를 만들기 위하여 전역 변수에 다음과 같이 정점을 보관할 정점 버퍼를 생성한다. LPDIRECT3DVERTEXBUFFER9 g_pVB = NULL; 다음으로 정점을 정의할 구조체를 만든다. 튜토에서 처럼 구조체 이름을 CUSTOMVERTEX로 하기로 한다. 이 구조체는 사용자 자신이 원하는 여러가지 형태로 만들수 있는데 D3D에 정해져 있는 포맷은 다음과 같다. 정점 좌표 : 정점의 3차원 좌표를 나타낸다. (float) RWH : 동차 좌표계의 값, 이값이 있으면 변환이 완료된 정점이다.(float) 결합 가중치 : 스키닝에 사용된다.(float)..
-
메시지 루프Programing/DirectX 2008. 5. 7. 14:59
윈도우즈가 도스와 가장 뚜렷한 대비를 이루는 특징이 바로 메시지 구동 시스템을 가지고 있는것이다. 이런저런 이야기를 뒤로 하고 얼릉 메시지 루프방식에 관해서 알아보도록 하자 while( GetMessage( &msg, NULL, 0, 0 ) ) { TranslateMessage( &msg ); DispatchMessage( &msg ); } 위의 문장이 기본적인 메시지루프구조이다. 일단 위에 사용된 3개의 함수에 대하여 알아보자 1. BOOL GetMessage () : 이 함수는 메시지큐에서 메시지를 읽어들인다. 메시지큐는 시스템이나 사용자로부터 발생된 메시지가 잠시 대기하는 일종의 메시지 임시 저장 영역이다. 읽어들인 메시지는 첫번째 인수가 지정하는 MSG 구조체에 저장된다. 이 함수는 읽어들인 메시..
-
-
ShowWindow() 함수Programing/DirectX 2008. 5. 7. 13:09
ShowWindow (hWnd, SW_SHOWDEFAULT) CreateWindow 함수는 윈도우에 관한 모든 정보를 메모리에 만든 후 윈도우 핸들을 리턴값으로 넘겨준다. 넘겨지는 윈도우 핸들은 지역변수에 저장되었다가 이 윈도우를 참조하는 모든 함수의 인수로 사용된다. CreateWindow 함수로 만든 윈도우는 메모리상에만 있을 뿐이며 아직까지 화면에 출력되지는 않았다. 메모리에 만들어진 윈도우를 화면으로 보이게 하기 위하여 BOOL ShowWindow (hWnd, nCmdShow); 의 함수를 사용하게 된다. hWnd 인수는 화면으로 출력하고자 하는 윈도우의 핸들이며, CreateWindow 함수가 리턴한 핸들을 그대로 넘겨 주면 된다. 두번째 인자인 nCmdShow는 윈도우를 화면에 출력하는 방법을..
-
IDirect3D9::CreateDevice 메서드Programing/DirectX 2008. 5. 7. 12:40
CreateDevice 메서드 - 디스플레이 어댑터를 나타내기 위한 장치를 생성한다. 구문은 아래와 같다. HRESULT CreateDevice( UINT Adapter, D3DDEVTYPE DeviceType, HWND hFocusWindow, DWORD BehaviorFlags, D3DPRESENT_PARAMETERS *pPresentationParameters, IDirect3DDevice9** ppReturnedDeviceInterface ); 1. Adapter : 디스플레이 어댑터를 나타내는 서수. D3DADAPTER_DEFAULT 는 항상 1차 디스플레이 어댑터이다. 2. DeviceType : 목적의 장치 타입을 식별한다. 목적의 장치 타입을 이용할 수 없는 경우, 이 메서드는 실패한다. ..
-
D3DPRESENT_PARAMETERS 구조체Programing/DirectX 2008. 5. 7. 12:04
프레젠테이션 파라미터를 기술한다. 구문 typedef struct _D3DPRESENT_PARAMETERS_ { UINT BackBufferWidth, BackBufferHeight; D3DFORMAT BackBufferFormat; UINT BackBufferCount; D3DMULTISAMPLE_TYPE MultiSampleType; DWORD MultiSampleQuality; D3DSWAPEFFECT SwapEffect; HWND hDeviceWindow; BOOL Windowed; BOOL EnableAutoDepthStencil; D3DFORMAT AutoDepthStencilFormat; DWORD Flags; UINT FullScreen_RefreshRateInHz; UINT Present..