D3D12_SHADER_COMPONENT_MAPPING-Enumeration (d3d12.h)

Gibt an, wie arbeitsspeicher durch eine Shaderressourcenansicht (SRV) weitergeleitet wird.

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
} ;

Konstanten

 
D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0
Wert: 0
Gibt die Rückgabekomponente 0 (rot) an.
D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1
Wert: 1
Gibt rückgabekomponente 1 (grün) an.
D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_2
Wert: 2
Gibt rückgabekomponente 2 (blau) an.
D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_3
Wert: 3
Gibt die Rückgabekomponente 3 (Alpha) an.
D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_0
Wert: 4
Gibt an, dass der resultierende Wert auf 0 erzwungen wird.
D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_1
Wert: 5
Gibt an, dass der resultierende Wert 1 erzwungen wird. Der Wert des Erzwingens von 1 ist entweder 0x1 oder 1,0f abhängig vom Formattyp für diese Komponente im Quellformat.

Hinweise

Mit dieser Enumeration kann die SRV auswählen, wie der Arbeitsspeicher nach einem Speicherabruf an die vier Rückgabekomponenten in einem Shader weitergeleitet wird. Die Optionen für jede Shaderkomponente [0..3] (entsprechend RGBA) sind: Komponente 0..3 aus dem SRV-Abrufergebnis oder Erzwingen von 0 oder Kraft 1.

Die Standardmäßige 1:1-Zuordnung kann durch Angabe D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING angegeben werden, andernfalls kann eine beliebige Zuordnung mithilfe des Makros D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING angegeben werden.

Siehe unten.

Beachten Sie die folgenden Definierten.

#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)

Anforderungen

Anforderung Wert
Header d3d12.h

Weitere Informationen

Core-Enumerationen