연습: 간단한 Direct3D 9 앱을 DirectX 11 및 UWP(유니버설 Windows 플랫폼)로 포팅
이 포팅 연습에서는 간단한 렌더링 프레임워크를 Direct3D 9에서 Direct3D 11 및 UWP(유니버설 Windows 플랫폼)로 가져오는 방법을 보여 줍니다.
항목 | 설명 |
---|---|
Direct3D 디바이스 및 디바이스 컨텍스트에 대한 핸들 가져오기 방법과 DXGI를 사용한 스왑 체인 설정 방법을 포함한 Direct3D 9 초기화 코드의 Direct3D 11 변환 방법을 보여 줍니다. |
|
지오메트리 버퍼를 포팅하는 방법, HLSL 셰이더 프로그램을 컴파일 및 로드하는 방법, Direct3D 11에서 렌더링 체인을 구현하는 방법을 포함하여 간단한 렌더링 프레임워크를 Direct3D 9에서 Direct3D 11로 변환하는 방법을 보여 줍니다. |
|
풀 스크린 CoreWindow를 제어하기 위해 IFrameworkView를 빌드하는 방법을 포함하여 UWP 게임을 위한 창을 구현하는 방법과 게임 루프를 가져오는 방법을 보여줍니다. |
이 토픽에서는 동일한 기본 그래픽 작업을 수행하는 두 코드 경로( 회전하는 꼭짓점 음영 큐브 표시)를 안내합니다. 두 경우 모두에서 코드는 다음 프로세스를 다룹니다.
- Direct3D 디바이스 및 스왑 체인 생성.
- 다양한 큐브 메시를 나타내는 꼭짓점 버퍼 및 인덱스 버퍼 생성.
- 꼭짓점을 화면 공간으로 변환하는 꼭짓점 셰이더 생성, 색 값을 혼합하는 픽셀 셰이더, 셰이더 컴파일, 셰이더를 Direct3D 리소스로 로드.
- 렌더링 체인을 구현하고 그려진 큐브를 화면에 표시.
- 창을 생성하고, 기본 루프를 시작하고, 창 메시지 처리.
이 연습을 완료하면 다음과 같은 Direct3D 9와 Direct3D 11 간의 기본적인 차이점을 잘 알고 있어야 합니다.
- 디바이스, 디바이스 컨텍스트, 그래픽 인프라 분리.
- 셰이더를 컴파일하고 런타임에 셰이더 바이트 코드를 로드하는 프로세스.
- IA(입력 어셈블러) 단계에 대해 꼭짓점별 데이터를 구성하는 방법.
- IFrameworkView를 사용하여 CoreWindow 보기를 생성하는 방법.
이 연습에서는 간단히 하기 위해 CoreWindow를 사용하며 XAML interop에 대해서는 다루지 않습니다.
필수 조건
UWP DirectX 게임 개발을 위한 개발 환경을 준비해야 합니다. 템플릿은 아직 불필요하지만 이 연습에 대한 코드 샘플을 로드하려면 Microsoft Visual Studio 2015가 필요합니다.
이 연습에 표시된 DirectX 11 및 UWP 프로그래밍 개념을 더 잘 이해하려면 포팅 개념 및 고려 사항을 방문하세요.
관련 항목
Direct3D
Microsoft Store