프로그래밍/3D그래픽스 & 쉐이더 스피비 2011. 3. 24. 00:59
색상값의 표현은 0xAARRGGBB의 형태로 한다. 아래 소스를 보자 HRESULT InitGeometry() { /// 삼각형을 렌더링하기위해 세개의 정점을 선언 CUSTOMVERTEX g_Vertices[] = { { -1.0f,-1.0f, 0.0f, 0xffff0000, }, // 0xAARRGGBB (좌) { 1.0f,-1.0f, 0.0f, 0xff0000ff, }, // 0xAA = 알파값(투명:0x00, 불투명:0xff) (우) { 0.0f, 1.0f, 0.0f, 0xffece527, }, // RRGGBB = 색상값(포토샵으로 확인가능) (상) }; //순서대로 맨위가 좌, 우, 상의 순서이다. /// 정점버퍼 생성 if( FAILED( g_pd3dDevice->CreateVertexBuff..
프로그래밍/3D그래픽스 & 쉐이더 스피비 2011. 3. 24. 00:50
3D 그래픽에서는 행렬은 필수요소다. D3D를 사용할 때는 반드시 "월드, 뷰, 프로젝션"의 행렬값을 설정해주어야만 한다. * 월드(월드좌표) 3D에서 기본적으로는 모든 정점은 로컬 좌표계(혹은 모델 좌표계)값을 갖는다. 이 값들은 최초에 3차원 데이터가 생성되는 시점에서 기준이 되는 원점을 중심으로 한 좌표계이다. 하지만 이러한 것의 문제는 동일한 공간에 여러 개의 물체를 띄우고자 할 때 발생한다. 모든 물체들이 각각의 고유한 원점을 기준으로 모델링되어 있기 때문에 여러 개의 물체를 3차원 공간에 띄울 경우 이들 물체들이 모두 원점을 공유하게 되는 현상이 발생하는 것이다. (즉, 중앙 원점에 겹친다는 것이다.) 이런것 문제를 해결하기 위해서 각각의 로컬 좌표계를 월드기준의 좌표계로 변환시켜 주어야 한다..
프로그래밍/3D그래픽스 & 쉐이더 스피비 2011. 3. 23. 01:25
//----------------------------------------------------------------------------- // Name: Render() // Desc: Draws the scene //----------------------------------------------------------------------------- VOID Render() { // Clear the backbuffer to a blue color g_pd3dDevice->Clear( 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0,0,255), 1.0f, 0 ); // Begin the scene if( SUCCEEDED( g_pd3dDevice->BeginScen..
프로그래밍/3D그래픽스 & 쉐이더 스피비 2011. 3. 23. 01:12
/----------------------------------------------------------------------------- // Name: WinMain() // Desc: The application's entry point //----------------------------------------------------------------------------- INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR, INT ) { WNDCLASSEX wc = { sizeof(WNDCLASSEX), CS_CLASSDC, MsgProc, 0L, 0L, GetModuleHandle(NULL), NULL, NULL, NULL, NULL, "D3D..
프로그래밍/3D그래픽스 & 쉐이더 스피비 2011. 3. 23. 00:30
//----------------------------------------------------------------------------- // Name: Render() // Desc: Draws the scene //----------------------------------------------------------------------------- VOID Render() { if( NULL == g_pd3dDevice ) return; // Clear the backbuffer to a blue color // 후면 버퍼를 파란색(0, 0, 255)으로 채운다. g_pd3dDevice->Clear( 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0,0,255), 1..