다양한 Direct3D 기능 수준용 개발(DirectX 및 C++)

Applies to Windows and Windows Phone

Windows 8은 전력 효율이 좋은 Windows RT 시스템에서 여러 GPU(그래픽 처리 장치)가 있는 고급 게임 데스크톱에 이르기까지 다양한 하드웨어 구성을 지원합니다. 그래픽 성능이 각기 다른 많은 장치에서 최적화하는 방법을 이해하면 DirectX 및 C++로 작성한 Windows 스토어 앱에 대해 광범위한 사용자에 도달할 수 있습니다.

Direct3D 11 API는 기능 수준을 사용하여 각 그래픽 하드웨어에서 지원되는 Direct3D 그래픽 기능을 분류합니다. 각 Direct3D 반복에서는 기하 도형, 공간 분할(tessellation) 등의 다양한 그래픽 기능뿐 아니라 다른 렌더링 접근 방법(예: 추가 지침 및 큰 텍스처 지원)도 제공했습니다.

참고  Direct3D 기능 수준은 DirectX로 작성된 Windows 스토어 앱에만 적용됩니다. JavaScript로 작성한 Windows 스토어 앱 또는 C++, C# 또는 Visual Basic으로 작성한 Windows 스토어 앱을 개발하는 경우 기능 수준이 적용되지 않습니다.

  • Applies to Windows Phone

참고  모든 Windows Phone 장치는 기능 수준 9_3만 지원합니다.

각 Direct3D 기능 수준에서 지원되는 기능의 전체 개요는 Direct3D 11 기능 수준을 참조하세요.

이 조항의 내용

항목설명

Windows 스토어에 게시

DirectX 및 C++를 사용하여 Windows 스토어에 게시할 Windows 스토어 앱을 빌드할 때 고려해야 할 몇 가지 요구 사항이 있습니다. 이 항목에서는 응용 프로그램이 지원하는 최소 Direct3D 기능 수준을 지정하고 Windows 스토어의 앱 설명에 해당 정보를 게시하는 방법을 설명합니다.

섀도 버퍼 구현

DirectX와 C++를 사용하여 그림자 효과를 렌더링하고 Direct3D 기능 수준 9_1, 9_2 또는 9_3을 사용하는 Windows 런타임 앱을 개발하려면 Direct3D 10_0+ 그림자 버퍼 기능의 특정 하위 집합을 사용하여 그림자 효과를 올바르게 구현해야 합니다. 여기서는 Direct3D 기능 수준 9용 그림자 버퍼 구현에 대해 소개합니다.

 

기능 수준 지원에 대한 모범 사례

다양한 장치(및 많은 잠재 사용자)를 대상으로 하려면 앱이 Windows 8(및 Windows RT) 장치에 대한 최소 하드웨어 구성(최소 기능 수준 9_1 및 1GB RAM 지정)에서 실행되도록 합니다. 이 기준을 사용하면 상위 기능 수준에 대한 지원을 추가하고, 고급 하드웨어가 추가한 확장 처리 및 성능을 코드에서 별개의 렌더 경로로 활용할 수 있습니다. 샘플 및 추가 정보에 대한 링크는 리소스 섹션을 참조하세요. 이 경우 전력 효율이 좋은 장치를 가진 고객이 게임을 할 수 있을 뿐 아니라 고급 하드웨어를 가진 고객이 해당 장치의 추가 전원 및 특성을 활용할 수 있습니다.

고성능 하드웨어를 디자인할 때 고려할 하드웨어 기능은 다음과 같습니다.

  • 큰(또는 고품질) 텍스처
  • 자세한 모델/메시
  • 추가 MIP 수준
  • 고급 셰이더 모델
  • 정교한 셰이더 동작(계산이 더 복잡한 효과를 위해 셰이더당 추가 지침 제공)
  • 기하 도형 셰이더
  • 계산 셰이더
  • 공간 분할(tessellation)
  • 추가 사후 처리 및 전체 화면 셰이더 효과

Windows RT 장치는 9_1 이상의 기능 수준을 지원하는 데 필요하지 않으므로 Windows RT 아키텍처를 대상으로 하는 DirectX 응용 프로그램은 기능 수준 9_1을 대상으로 해야 합니다. 많은 사용자에 도달하려면 게임과 앱에 대해 모든 CPU 아키텍처의 기준으로 설정된 9_1 기능을 대상으로 합니다. 지원하는 장치에 대해 10_0 이상 기능 수준을 사용하여 시각적으로 고급 게임을 만듭니다. 게임이 실행되는 장치에서 가능한 것보다 더 높은 기능 수준을 요구하는 경우 Direct2D를 사용하여 앱에 더 높은 기능 수준이 필요하다는 경고를 9_1 시스템에 표시합니다. 이 경우 다음 방법을 사용하는 것이 좋습니다.



// This array defines the set of Direct3D hardware feature levels this app will support.
// Note the ordering should be preserved.
// Don't forget to declare your application's minimum required feature level in its
// description.  All applications are assumed to support 9.1 unless otherwise stated.
D3D_FEATURE_LEVEL featureLevels[] =
{
	D3D_FEATURE_LEVEL_11_1,
	D3D_FEATURE_LEVEL_11_0,
	D3D_FEATURE_LEVEL_10_1,
	D3D_FEATURE_LEVEL_10_0,
	D3D_FEATURE_LEVEL_9_3,
	D3D_FEATURE_LEVEL_9_2,
	D3D_FEATURE_LEVEL_9_1
};

// Create the DX11 API device object, and get a corresponding context.
ComPtr<ID3D11Device> device;
ComPtr<ID3D11DeviceContext> context;

D3D11CreateDevice(
	nullptr,                    // specify null to use the default adapter
	D3D_DRIVER_TYPE_HARDWARE,
	0,                          // leave as 0 unless software device
	creationFlags,              // optionally set debug and Direct2D compatibility flags
	featureLevels,              // list of feature levels this app can support
	ARRAYSIZE(featureLevels),   // number of entries in above list
	D3D11_SDK_VERSION,          // always set this to D3D11_SDK_VERSION for Windows Store apps
	&device,                    // returns the Direct3D device created
	&m_featureLevel,            // returns feature level of device created
	&context                    // returns the device immediate context
);

// ...

if (d3dDevice->GetFeatureLevel() < APP_MIN_FEATURE_LEVEL)
{
	// display warning using Direct2D
} 


위 예에 표시된 것처럼 D3D11CreateDevice를 호출하여 DirectX로 작성된 Windows 스토어 앱에 대해 해당 기능 수준을 요구해야 합니다.

게임을 테스트하는 경우 상위 기능 수준 하드웨어가 있는 시스템이 Microsoft Visual Studio에 포함된 dxcpl.exe 도구를 사용하여 하위 기능 수준을 에뮬레이트하도록 강제할 수 있습니다. 예를 들어 dxcpl.exe를 사용하여 11_1 장치가 9_1 장치를 에뮬레이트하도록 강제할 수 있습니다. Windows RT 장치나 하위 기능 수준 플랫폼을 지원하려는 경우 이 도구를 테스트 프로세스의 핵심 부분으로 설정합니다.

리소스

Direct3D 단순 스프라이트 샘플Direct3D HLSL 프랙탈 생성기 샘플은 각 DirectX 기능 수준에 맞게 조정하는 방법을 보여 줍니다.

Microsoft GDC 2012 프레젠테이션에는 전체 범위의 Windows 8 하드웨어에서 작동하는 게임 개발에 대한 추가 정보가 포함되어 있습니다. 전체 범위의 Windows 8 장치에서 Windows 스토어 게임 개발.

관련 항목

앱 개발(C++ 및 DirectX)

 

 

표시:
© 2014 Microsoft