기본 질감 매핑

기본 텍스처 매핑을 사용하면 GPU와 CPU 간에 이미지 데이터를 공유하는 동안 복사 및 메모리 사용량이 줄어듭니다. 그러나 특정 상황에서만 사용해야 합니다. 표준 스위즐 레이아웃은 여러 레이아웃에서 데이터를 복사하거나 스위즐링하지 않도록 합니다.

개요

개발자가 기본 텍스처를 매핑하는 것이 첫 번째 선택이 되어서는 안 됩니다. 개발자는 먼저 불연속 GPU 친화적인 방식으로 코딩해야 합니다(즉, 대부분의 텍스처에 대한 CPU 액세스 권한이 없으며 CopySubresourceRegion1을 사용하여 업로드). 그러나 특정 경우에 CPU와 GPU는 동일한 데이터에서 너무 자주 상호 작용할 수 있으므로 기본 텍스처 매핑은 전원을 절약하거나 특정 어댑터 또는 아키텍처의 특정 디자인 속도를 높이는 데 도움이 됩니다. 애플리케이션은 이러한 경우를 감지하고 불필요한 복사를 최적화해야 합니다.

D3D11.3에서는 D3D11_TEXTURE_LAYOUT_UNDEFINED( D3D11_TEXTURE_LAYOUT 열거형의 한 멤버)로 만든 텍스처와 CPU 액세스가 없는 텍스처가 잦은 GPU 렌더링 및 샘플링에 가장 효율적입니다. 성능 테스트 시 이러한 텍스처를 CPU 액세스가 있는 D3D11_TEXTURE_LAYOUT_UNDEFINED 비교하고 CPU 액세스와 D3D11_TEXTURE_LAYOUT_64K_STANDARD_SWIZZLE 어댑터 간 지원을 위한 D3D11_TEXTURE_LAYOUT_ROW_MAJOR 비교해야 합니다.

CPU 액세스와 함께 D3D11_TEXTURE_LAYOUT_UNDEFINED 사용하면 WriteToSubresource, ReadFromSubresource, Map (포인터에 대한 애플리케이션 액세스 제외) 및 매핑 해제 메서드를 사용할 수 있습니다. 하지만 GPU 액세스의 효율성을 희생할 수 있습니다. CPU 액세스에 D3D11_TEXTURE_LAYOUT_64K_STANDARD_SWIZZLE 사용하면 WriteToSubresource, ReadFromSubresource, Map (애플리케이션에 대한 유효한 포인터를 반환함) 및 매핑 해제를 사용할 수 있습니다. CPU 액세스로 D3D11_TEXTURE_LAYOUT_UNDEFINED 이상의 GPU 액세스 효율성을 희생할 수도 있습니다.

일반적으로 애플리케이션은 GPU만 액세스할 수 있고 D3D11_TEXTURE_LAYOUT_UNDEFINED 사용하여 대부분의 텍스처를 만들어야 합니다.

매핑 기본 텍스처 기능 이전에는 다차원 데이터에 대한 표준화된 레이아웃이 하나만 있었습니다. "선형"( "row-major"라고도 함). 맵 기본값을 사용할 수 있는 경우 애플리케이션은 USAGE_STAGING 및 USAGE_DYNAMIC 텍스처를 피해야 합니다. USAGE_STAGING 및 USAGE_DYNAMIC 텍스처는 선형 레이아웃을 사용합니다.

D3D11.3(및 D3D12)에는 표준 다차원 데이터 레이아웃이 도입되었습니다. 이 기능은 여러 레이아웃 간에 데이터를 복사하거나 데이터를 혼합할 필요 없이, 여러 처리 단위가 동일한 데이터에 작동할 수 있도록 하기 위한 것입니다. 표준화된 레이아웃을 사용하면 네트워크 효과를 통해 효율성이 높아지며, 특정 패턴을 빠르게 가정하는 알고리즘이 허용됩니다.

이 표준 혼합은 하드웨어 기능이지만 모든 GPU에서 지원하지 않을 수도 있습니다.

D3D11.3 API

D3D12와 달리 D3D11.3은 기본적으로 텍스처 매핑을 지원하지 않으므로 D3D11_FEATURE_DATA_D3D11_OPTIONS2 쿼리해야 합니다. 또한 ID3D11Device::CheckFeatureSupport를 호출하고 D3D11_FEATURE_DATA_D3D11_OPTIONS2 필드를 확인하여 표준 스위즐을 StandardSwizzle64KBSupported 쿼리해야 합니다.

다음 API는 텍스처 매핑을 참조합니다.

열거형

구조체

  • D3D11_TEXTURE2D_DESC1 : 2D 텍스처를 설명합니다. CD3D11_TEXTURE2D_DESC1 도우미 구조를 확인합니다.
  • D3D11_TEXTURE3D_DESC1 : 3D 텍스처를 설명합니다. CD3D11_TEXTURE3D_DESC1 도우미 구조를 확인합니다.

메서드

Direct3D 11.3 기능