안녕하세요. 알콜코더
민군입니다. ^^
이제부터 본격적으로 연재를 시작하게 되었습니다. 많은 응원 부탁드립니다.
전에 예고했던 DX 11 튜터리얼을
하나씩 예제로 공부하면서 기초 단계부터 하나하나씩 밟고 올라가겠습니다. 이미 튜터리얼쯤이야 건너뛰신
분에게는 별로 도움이 안될지도…(쿨럭;;)
자 그럼 대망의 첫번째 튜터리얼을 공부해 보죠
l DirectX
11을 이용하여
간단한 기본 어플리케이션을 만들어 본다 l DirectX
11을 사용하기
위한 기본 디바이스 및 오브젝트들을 셋업한다 위가 이번 튜터리얼 01의 목표입니다. 우선은 3D 렌더링 화면을 가진 윈도우를 뛰우는것부터 시작해보죠. 3D 화면에 맵을 뛰우고 캐릭터가 뛰어다니는 게임을 만들어 보고 싶으시겠지만…
천리길도 한걸음 부터입니다. 우선 차근 차근 하나씩 시작해 보죠. ^^
l DirectX
11 Sample – Tutorial 01 : Direct3D Basics Direct X SDK에 포함되어 있는 샘플입니다. 이
샘플을 기반으로 설명하겠습니다. 직접 SDK에서 설치해서 공부하셔도 되고, 제가 첨부한 파일을 받아서 보셔도 됩니다.
우선 기본적으로 튜터리얼 역시 윈도우 프로그래밍이기 때문에, 기본적인
윈도우는 뛰우고, DirectX를 설정해야 겠죠? ^^ 윈도우를 뛰우는건 기본적인 내용이고 이 연재의 진행을 위해서도 과감하게 생략하겠습니다. (__) 하지만 공부하는 데 도움이 되시라고, 간단히 기본 윈도우를
뛰우는 프로그램을 첨부파일로 첨부합니다. (DX10의 튜터리얼 0번
샘플)
직접 코딩을 하면서 공부를 해보기 위해서는 샘플 파일을 받아서 기본적인 윈도우 프로그래밍 기반을 세팅한
후에 아래 내용을 따라서 DX11을 직접 작성해 보면 큰 도움이 될 겁니다.
3D 디바이스 셋업은 3D 프로그래밍의 시작이자, 가장 필수적인 과정입니다. 3D 디바이스, 즉 그래픽카드를 셋업해야 그래픽카드를
통해서 3D 맵을 그리던가, 캐릭터를 렌더링하거나 할 수
있죠. 이 부분이 여타 일반 프로그래밍과 3D 프로그래밍이
시작부터 다른 점입니다. 일반 윈도우 프로그래밍은 그래픽 카드에 접근할 일이 없기 때문에 이런 과정이
당연히 없습니다. ^^ (나름 3D 프로그래머만의 특권일지… 아니면 지옥의 시작일지…) DX11에서는 우선 아래 세가지 오브젝트를 만들어야 합니다 l Device l Immediate Context l Swap Chain
기본적인 DX11의 셋업 순서는 아래와 같습니다. 1. ID3D11Device와 SwapChain을 생성한다 2. SwapChain에서 백버퍼를
가져온다(2D Texture) 3. 백버페 실제 렌더링할 “렌더 타겟 뷰”를 생성하여 바인딩 시킨다 4. 뷰포트를 생성한다 5. 매 프레임마다 위에서 생성한 렌더 타겟 뷰에 게임 화면을 렌더링한다. 6. SwapChain을 이용하여
디바이스에 화면을 그린다 위 순서에서 가장 큰 목적은 바로 ‘렌더 타겟 뷰(Render Target View)’를 생성하는
것입니다. 바로 이 렌더 타겟 뷰가 실제로 우리가 3D 게임
화면을 렌더링할 타겟이 됩니다. (그러니까 렌더타겟이라고 부르는 거겠죠.. =ㅅ=) 이 랜더타겟뷰는 리소스뷰의 일종으로 디바이스의 백버퍼에 바운딩되면서 생성됩니다. 그래서 렌더타겟뷰에 게임 화면을 렌더링한다는 것은 백버퍼에 렌더링하는것과 같습니다. 그리고 백버퍼에 모든 화면을 렌더링하고 난 다음에는 SwapChain을
이용해서 백버퍼를 화면에 그리면 되는겁니다. 정확히는 백퍼버를 프론트버퍼와 바꾸는 스와핑 (또는 플립(Flip))이 일어나는 것이죠. 간단히 이야기면, SwapChain을 생성하고, SwapChain안에서 백버퍼를 꺼내오고, 꺼내온 백버퍼를 가지고
렌더타겟뷰라는 오브젝트에 바운딩합니다.
그리고 실제 내부에서는 SwapChain이 백버퍼라는 리소스를
가지고 있고, 개발자는 그 백버퍼를 렌더 타겟 뷰에 바인딩하여 사용하는 것입니다.
다음 내용으로 이어집니다. ^^;; |
언젠가 우즈벡에 미소녀 게임 회사를 차리고 싶은 개발자 3D게임 클라이언트 프로그래머, 살짝 오타쿠… 드래곤볼 온라인 개발, 현재는 네오위즈 서식중 |
'DirectX 11' 카테고리의 다른 글
[JumpToDX11-16] DirectX9 세대의 테셀레이션( D3DXTessellateNPatches편 ) (0) | 2010.10.07 |
---|---|
[알콜코더의 미리 배워보는 DirectX11-입문편] 1.튜터리얼 01 : 다이렉트 3D 기초 #2 (0) | 2010.09.20 |
[알콜코더의 미리 배워보는 DirectX 11 - 입문편] 0. 누구를 위한 연재인가 (15) | 2010.08.31 |
[JumpToDX11-15] DirectX9 세대의 테셀레이션( IDirect3DDevice9::DrawXXXPatch편 ) (0) | 2010.08.26 |
[JumpToDX11-14] DirectX9 세대의 테셀레이션( ID3DXPatchMesh 편 ) (0) | 2010.07.19 |