본문 바로가기

Lib12

Indexed Primitive 구현과 Alpha Blending 사용 // 알파 블렌딩 설정 g_pd3dDevice->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE); g_pd3dDevice->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA); g_pd3dDevice->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA); HRESULT InitIB() { // Index Buffer 설정 MYINDEX indices[] = { {0, 1, 2}, {3, 2, 1} }; if(FAILED(g_pd3dDevice->CreateIndexBuffer(2*sizeof(MYINDEX), 0, D3DFMT_INDEX16, D3DPOOL_DEFAULT, &g_pIB, NU.. 2014. 9. 22.
DirectX 내부에서의 텍스쳐 합성 DX 내부에서의 텍스쳐 합성 (신형 Shader 방식) 원리 신형 Shader 방식의 텍스쳐 색상 결정 로직에서는 색상을 결정하는 방법이 5가지있다. 첫번째는 Diffuse Color. 즉, 조명과 라이팅 연산이 되어서 나온 색상을 설정해주는 방법이다. 두번째는 Texture Color. 텍스쳐 자체의 색상을 정해주는 방법이다. 세번째는 --- 다음에 정리 네번째는 Constant라고, 텍스쳐에 강제로 색상을 할당해주는 방법이다. 다섯번째는 Factor라는 이 역시 텍스쳐에 강제로 색상을 할당해주는 방법이다. 텍스쳐 합성시에 Current와 Temp라는 두군데의 레지스트리에 색상을 저장해놓을 수 있다. 기본적으로 Current에 자동 저장되며, 두 이미지를 합성할려고 할 경우, Temp에 하나를 저장해놓.. 2013. 12. 11.
회전하는 입방체 만들기 #include "d3dUtility.h" // 장치를 위한 전역 변수 생성 IDirect3DDevice9* Device=0; // 화면의 해상도를 정의할 상수 전역 변수 인스턴스 const int Width = 800; const int Height = 600; // 버텍스 버퍼와 인덱스 버퍼를 저장할 전역 변수 인스턴스 생성 IDirect3DVertexBuffer9* VB = 0; IDirect3DIndexBuffer9* IB = 0; // 커스텀 버텍스 포맷을 만들기 위한 구조체 struct Vertex { Vertex(){} // 버텍스의 위치 정보만을 보관 Vertex(float x, float y, float z) { _x=x; _y=y; _z=z; } float _x, _y, _z; stat.. 2011. 11. 9.
Triangle 그리기 #include "d3dUtility.h" // 장치를 위한 전역 변수 생성 IDirect3DDevice9* Device=0; // 화면의 해상도를 정의할 상수 전역 변수 인스턴스 const int Width = 640; const int Height = 480; // 버텍스 버퍼를 저장할 전역 변수 인스턴스 생성 IDirect3DVertexBuffer9* Triangle = 0; // 커스텀 버텍스 포맷을 만들기 위한 구조체 struct Vertex { Vertex(){} // 버텍스의 위치 정보만을 보관 Vertex(float x, float y, float z) { _x=x; _y=y; _z=z; } float _x, _y, _z; static const DWORD FVF; }; // 구조체의 유연.. 2011. 11. 9.