본문 바로가기

Lib/DirectX11

Texture 출력하기 전역 변수 선언 LPDIRECT3DTEXTURE9g_pTex = NULL; CUSTOMVERTEX 정의 struct CUSTOMVERTEX { FLOAT x, y, z;// 좌표 FLOAT tu, tv; // 텍스쳐 좌표 }; #define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ | D3DFVF_TEX1) Texture 로드 D3DXCreateTextureFromFile(g_pd3dDevice, L"hwa.png", &g_pTex); Vertex 좌표 설정 CUSTOMVERTEX vertices[] = { // Vertex Buffer를 모두 정의 { -0.6f, 0.5f, 0.0f, 0.0f, 0.0f}, { 0.4f, 0.5f, 0.0f, 1.0f, 0.0f}, { -0.6f, -0.. 2014. 9. 22.
RenderState Device : 3D 렌더링의 주체- SetRenderState (옵션이름, 옵션 값); Rendering Pipeline- Draw Primitive 함수는 Device에 설정된 세팅을 모두 사용해서 Rendering을 처리하게 된다. - Draw Primitive 함수는 단순히 그리기가 아니다. Device의 설정을 실행시키는 역할 - 이 때, 여러가지 과정을 거쳐 Rendering이 되는데, 이 과정을 Rendering Pipeline이라 한다. - Rendering Pipeline은 여러 과정으로 되어있다. - 이 과정들의 옵션은 여러가지가 있다. - 이 옵션들을 총합, 여러 과정을 거쳐 최종적으로 래스터라이즈가 동작한다. - Pixel 단위로 동작하는 래스터라이즈는 여러 과정을 거쳐 동작하고, .. 2014. 9. 22.
DrawPrimitive DrawIndexPrimitive> 1개의 삼각형을 그릴려면 3개의 Vertex가 필요 여러개를 그리면 중복되는 Vertex가 생기므로 낭비가 생긴다. 방법 1. Triangle Strip - 하나의 중점 기준으로 Pan 형태의 그리는 형태 - Vertex 수를 왕창 줄일 수 있지만, 한붓 그리기 형태의 띠 모양의 삼각형이 아니면 그리기 힘들다. - 바로 앞의 2개의 Vertex와 새로 추가된 Vertex 1개를 합쳐서 삼각형을 그린다. 방법 2. Triangle Fan - Triangle Strip과 원리는 비슷하다. - 마찬가지로 Vertex 수를 왕창 줄일 수 있지만, Fan 형태의 삼각형이 아니면 그리기 힘들다. - 제일 앞의 1개와 바로 앞의 1개, 새로 추가된 Vertex 1개를 합쳐서 삼각형.. 2014. 9. 22.
Depth Buffer에 관하여 x,y,z는 3차원 공간상의 좌표가 아니다. x.y는 2D상의 점의 좌표이고, z는 깊이값이다. 즉, 우선 순위 값(Depth 값)이다. z는 0.0f ~ 1.0f 사이의 값을 가지고, 벗어나면 그려지지 않는다. Depth값이 낮을 수록 우선 순위가 높고, 우선 순위가 높으면 낮은 그림이 그려질 때 자신보다 높은 부분은 안그린다. 항상 새로운 그림을 그릴려면 Render Target과 같은 해상도의 Depth Buffer를 준비해서 Clear시 1.0f으로 Clear 해줘야 한다. Depth Buffer를 사용안 할 수도 있다. 그러면 위에 계속 덮어 그리게 된다. 2014. 9. 22.