다음을 통해 공유


D3D12_SHADER_COMPONENT_MAPPING 열거형(d3d12.h)

SRV(셰이더 리소스 뷰)에서 메모리를 라우팅하는 방법을 지정합니다.

Syntax

typedef enum D3D12_SHADER_COMPONENT_MAPPING {
  D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0 = 0,
  D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1 = 1,
  D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_2 = 2,
  D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_3 = 3,
  D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_0 = 4,
  D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_1 = 5
} ;

상수

 
D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0
값: 0
반환 구성 요소 0(빨간색)을 나타냅니다.
D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1
값: 1
반환 구성 요소 1(녹색)을 나타냅니다.
D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_2
값: 2
반환 구성 요소 2(파란색)를 나타냅니다.
D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_3
값: 3
반환 구성 요소 3(알파)을 나타냅니다.
D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_0
값: 4
결과 값을 0으로 강제 적용을 나타냅니다.
D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_1
값: 5
결과 값 1 강제 적용을 나타냅니다. 강제 1의 값은 원본 형식의 해당 구성 요소에 대한 형식 형식에 따라 0x1 또는 1.0f입니다.

설명

이 열거형을 사용하면 SRV가 메모리 페치 후 셰이더의 4개 반환 구성 요소로 메모리가 라우팅되는 방법을 선택할 수 있습니다. 각 셰이더 구성 요소 [0..3](RGBA에 해당)에 대한 옵션은 SRV 페치 결과에서 구성 요소 0..3 또는 강제 0 또는 강제 1입니다.

기본 1:1 매핑은 D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING 지정하여 표시할 수 있으며, 그렇지 않으면 매크로 D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING 사용하여 임의 매핑을 지정할 수 있습니다.

아래 내용을 참조하세요.

다음 정의에 유의하세요.

#define D3D12_SHADER_COMPONENT_MAPPING_MASK 0x7
#define D3D12_SHADER_COMPONENT_MAPPING_SHIFT 3
#define D3D12_SHADER_COMPONENT_MAPPING_ALWAYS_SET_BIT_AVOIDING_ZEROMEM_MISTAKES \
    (1<<(D3D12_SHADER_COMPONENT_MAPPING_SHIFT*4))
#define D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(Src0,Src1,Src2,Src3) \
    ((((Src0)&D3D12_SHADER_COMPONENT_MAPPING_MASK)| \
    (((Src1)&D3D12_SHADER_COMPONENT_MAPPING_MASK)<<D3D12_SHADER_COMPONENT_MAPPING_SHIFT)| \
    (((Src2)&D3D12_SHADER_COMPONENT_MAPPING_MASK)<<(D3D12_SHADER_COMPONENT_MAPPING_SHIFT*2))| \
    (((Src3)&D3D12_SHADER_COMPONENT_MAPPING_MASK)<<(D3D12_SHADER_COMPONENT_MAPPING_SHIFT*3))| \
    D3D12_SHADER_COMPONENT_MAPPING_ALWAYS_SET_BIT_AVOIDING_ZEROMEM_MISTAKES))
#define D3D12_DECODE_SHADER_4_COMPONENT_MAPPING(ComponentToExtract,Mapping) \
    ((D3D12_SHADER_COMPONENT_MAPPING)(Mapping >> (D3D12_SHADER_COMPONENT_MAPPING_SHIFT*ComponentToExtract) & D3D12_SHADER_COMPONENT_MAPPING_MASK))
#define D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(0,1,2,3)

요구 사항

요구 사항
헤더 d3d12.h

추가 정보

핵심 열거형