Condividi tramite


enumerazione D3D12_FILTER (d3d12.h)

Specifica le opzioni di filtro durante il campionamento delle trame.

Sintassi

typedef enum D3D12_FILTER {
  D3D12_FILTER_MIN_MAG_MIP_POINT = 0,
  D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR = 0x1,
  D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x4,
  D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR = 0x5,
  D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT = 0x10,
  D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x11,
  D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT = 0x14,
  D3D12_FILTER_MIN_MAG_MIP_LINEAR = 0x15,
  D3D12_FILTER_MIN_MAG_ANISOTROPIC_MIP_POINT,
  D3D12_FILTER_ANISOTROPIC = 0x55,
  D3D12_FILTER_COMPARISON_MIN_MAG_MIP_POINT = 0x80,
  D3D12_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 0x81,
  D3D12_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x84,
  D3D12_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 0x85,
  D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 0x90,
  D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x91,
  D3D12_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 0x94,
  D3D12_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR = 0x95,
  D3D12_FILTER_COMPARISON_MIN_MAG_ANISOTROPIC_MIP_POINT,
  D3D12_FILTER_COMPARISON_ANISOTROPIC = 0xd5,
  D3D12_FILTER_MINIMUM_MIN_MAG_MIP_POINT = 0x100,
  D3D12_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x101,
  D3D12_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x104,
  D3D12_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x105,
  D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x110,
  D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x111,
  D3D12_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x114,
  D3D12_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR = 0x115,
  D3D12_FILTER_MINIMUM_MIN_MAG_ANISOTROPIC_MIP_POINT,
  D3D12_FILTER_MINIMUM_ANISOTROPIC = 0x155,
  D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_POINT = 0x180,
  D3D12_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x181,
  D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x184,
  D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x185,
  D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x190,
  D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x191,
  D3D12_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x194,
  D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR = 0x195,
  D3D12_FILTER_MAXIMUM_MIN_MAG_ANISOTROPIC_MIP_POINT,
  D3D12_FILTER_MAXIMUM_ANISOTROPIC = 0x1d5
} ;

Costanti

 
D3D12_FILTER_MIN_MAG_MIP_POINT
Valore: 0
Usare il campionamento dei punti per il campionamento a livello di minificazione, ingrandimento e mip.
D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR
Valore: 0x1
Utilizzare il campionamento dei punti per la minificazione e l'ingrandimento; usare l'interpolazione lineare per il campionamento a livello mip.
D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT
Valore: 0x4
Usare il campionamento dei punti per la minimizzazione; utilizzare l'interpolazione lineare per l'ingrandimento; usare il campionamento dei punti per il campionamento a livello mip.
D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR
Valore: 0x5
Usare il campionamento dei punti per la minimizzazione; usare l'interpolazione lineare per l'ingrandimento e il campionamento a livello mip.
D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT
Valore: 0x10
Usare l'interpolazione lineare per la minimizzazione; usare il campionamento dei punti per l'ingrandimento e il campionamento a livello mip.
D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR
Valore: 0x11
Usare l'interpolazione lineare per la minimizzazione; utilizzare il campionamento dei punti per l'ingrandimento; usare l'interpolazione lineare per il campionamento a livello mip.
D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT
Valore: 0x14
Usare l'interpolazione lineare per la minificazione e l'ingrandimento; usare il campionamento dei punti per il campionamento a livello mip.
D3D12_FILTER_MIN_MAG_MIP_LINEAR
Valore: 0x15
Usare l'interpolazione lineare per il campionamento a livello di minificazione, ingrandimento e mip.
D3D12_FILTER_ANISOTROPIC
Valore: 0x55
Usare l'interpolazione anisotropica per il campionamento a livello di minificazione, ingrandimento e mip.
D3D12_FILTER_COMPARISON_MIN_MAG_MIP_POINT
Valore: 0x80
Usare il campionamento dei punti per il campionamento a livello di minificazione, ingrandimento e mip. Confrontare il risultato con il valore di confronto.
D3D12_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR
Valore: 0x81
Utilizzare il campionamento dei punti per la minificazione e l'ingrandimento; usare l'interpolazione lineare per il campionamento a livello mip. Confrontare il risultato con il valore di confronto.
D3D12_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT
Valore: 0x84
Usare il campionamento dei punti per la minimizzazione; utilizzare l'interpolazione lineare per l'ingrandimento; usare il campionamento dei punti per il campionamento a livello mip. Confrontare il risultato con il valore di confronto.
D3D12_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR
Valore: 0x85
Usare il campionamento dei punti per la minimizzazione; usare l'interpolazione lineare per l'ingrandimento e il campionamento a livello mip. Confrontare il risultato con il valore di confronto.
D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT
Valore: 0x90
Usare l'interpolazione lineare per la minimizzazione; usare il campionamento dei punti per l'ingrandimento e il campionamento a livello mip. Confrontare il risultato con il valore di confronto.
D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR
Valore: 0x91
Usare l'interpolazione lineare per la minimizzazione; utilizzare il campionamento dei punti per l'ingrandimento; usare l'interpolazione lineare per il campionamento a livello mip. Confrontare il risultato con il valore di confronto.
D3D12_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT
Valore: 0x94
Usare l'interpolazione lineare per la minificazione e l'ingrandimento; usare il campionamento dei punti per il campionamento a livello mip. Confrontare il risultato con il valore di confronto.
D3D12_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR
Valore: 0x95
Usare l'interpolazione lineare per il campionamento a livello di minificazione, ingrandimento e mip. Confrontare il risultato con il valore di confronto.
D3D12_FILTER_COMPARISON_ANISOTROPIC
Valore: 0xd5
Usare l'interpolazione anisotropica per il campionamento a livello di minificazione, ingrandimento e mip. Confrontare il risultato con il valore di confronto.
D3D12_FILTER_MINIMUM_MIN_MAG_MIP_POINT
Valore: 0x100
Recuperare lo stesso set di texel di D3D12_FILTER_MIN_MAG_MIP_POINT e invece di filtrarli restituiscono il minimo dei texel. I texel ponderati 0 durante il filtro non vengono conteggiati per il valore minimo. È possibile eseguire query per questo tipo di filtro dal membro MinMaxFiltering nella struttura D3D11_FEATURE_DATA_D3D11_OPTIONS1 .
D3D12_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR
Valore: 0x101
Recuperare lo stesso set di texel come D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR e invece di filtrarli restituiscono il minimo dei texel. I texel ponderati 0 durante il filtro non vengono conteggiati per il valore minimo. È possibile eseguire query per questo tipo di filtro dal membro MinMaxFiltering nella struttura D3D11_FEATURE_DATA_D3D11_OPTIONS1 .
D3D12_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT
Valore: 0x104
Recuperare lo stesso set di texel come D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT e invece di filtrarli restituiscono il minimo dei texel. I texel ponderati 0 durante il filtro non vengono conteggiati per il valore minimo. È possibile eseguire query per questo tipo di filtro dal membro MinMaxFiltering nella struttura D3D11_FEATURE_DATA_D3D11_OPTIONS1 .
D3D12_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR
Valore: 0x105
Recuperare lo stesso set di texel di D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR e invece di filtrarli restituiscono il minimo dei texel. I texel ponderati 0 durante il filtro non vengono conteggiati per il valore minimo. È possibile eseguire query per questo tipo di filtro dal membro MinMaxFiltering nella struttura D3D11_FEATURE_DATA_D3D11_OPTIONS1 .
D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT
Valore: 0x110
Recuperare lo stesso set di texel di D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT e invece di filtrarli restituiscono il minimo dei texel. I texel ponderati 0 durante il filtro non vengono conteggiati per il valore minimo. È possibile eseguire query per questo tipo di filtro dal membro MinMaxFiltering nella struttura D3D11_FEATURE_DATA_D3D11_OPTIONS1 .
D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR
Valore: 0x111
Recuperare lo stesso set di texel di D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR e invece di filtrarli restituiscono il minimo dei texel. I texel ponderati 0 durante il filtro non vengono conteggiati per il valore minimo. È possibile eseguire query per questo tipo di filtro dal membro MinMaxFiltering nella struttura D3D11_FEATURE_DATA_D3D11_OPTIONS1 .
D3D12_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT
Valore: 0x114
Recuperare lo stesso set di texel di D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT e invece di filtrarli restituiscono il minimo dei texel. I texel ponderati 0 durante il filtro non vengono conteggiati per il valore minimo. È possibile eseguire query per questo tipo di filtro dal membro MinMaxFiltering nella struttura D3D11_FEATURE_DATA_D3D11_OPTIONS1 .
D3D12_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR
Valore: 0x115
Recuperare lo stesso set di texel di D3D12_FILTER_MIN_MAG_MIP_LINEAR e invece di filtrarli restituiscono il minimo dei texel. I texel ponderati 0 durante il filtro non vengono conteggiati per il valore minimo. È possibile eseguire query per questo tipo di filtro dal membro MinMaxFiltering nella struttura D3D11_FEATURE_DATA_D3D11_OPTIONS1 .
D3D12_FILTER_MINIMUM_ANISOTROPIC
Valore: 0x155
Recuperare lo stesso set di texel come D3D12_FILTER_ANISOTROPIC e invece di filtrarli restituiscono il minimo dei texel. I texel ponderati 0 durante il filtro non vengono conteggiati per il valore minimo. È possibile eseguire query per questo tipo di filtro dal membro MinMaxFiltering nella struttura D3D11_FEATURE_DATA_D3D11_OPTIONS1 .
D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_POINT
Valore: 0x180
Recuperare lo stesso set di texel di D3D12_FILTER_MIN_MAG_MIP_POINT e invece di filtrarli restituiscono il massimo dei texel. I texel ponderati 0 durante il filtro non vengono conteggiati per il valore massimo. È possibile eseguire query per questo tipo di filtro dal membro MinMaxFiltering nella struttura D3D11_FEATURE_DATA_D3D11_OPTIONS1 .
D3D12_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR
Valore: 0x181
Recuperare lo stesso set di texel di D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR e invece di filtrarli restituiscono il massimo dei texel. I texel ponderati 0 durante il filtro non vengono conteggiati per il valore massimo. È possibile eseguire query per questo tipo di filtro dal membro MinMaxFiltering nella struttura D3D11_FEATURE_DATA_D3D11_OPTIONS1 .
D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT
Valore: 0x184
Recuperare lo stesso set di texel di D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT e invece di filtrarli restituiscono il massimo dei texel. I texel ponderati 0 durante il filtro non vengono conteggiati per il valore massimo. È possibile eseguire query per questo tipo di filtro dal membro MinMaxFiltering nella struttura D3D11_FEATURE_DATA_D3D11_OPTIONS1 .
D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR
Valore: 0x185
Recuperare lo stesso set di texel di D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR e invece di filtrarli restituiscono il massimo dei texel. I texel ponderati 0 durante il filtro non vengono conteggiati verso il massimo. È possibile eseguire query sul supporto di questo tipo di filtro dal membro MinMaxFiltering nella struttura D3D11_FEATURE_DATA_D3D11_OPTIONS1 .
D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT
Valore: 0x190
Recuperare lo stesso set di texel di D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT e invece di filtrarli restituiscono il massimo dei texel. I texel ponderati 0 durante il filtro non vengono conteggiati verso il massimo. È possibile eseguire query sul supporto di questo tipo di filtro dal membro MinMaxFiltering nella struttura D3D11_FEATURE_DATA_D3D11_OPTIONS1 .
D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR
Valore: 0x191
Recuperare lo stesso set di texel di D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR e invece di filtrarli restituiscono il massimo dei texel. I texel ponderati 0 durante il filtro non vengono conteggiati verso il massimo. È possibile eseguire query sul supporto di questo tipo di filtro dal membro MinMaxFiltering nella struttura D3D11_FEATURE_DATA_D3D11_OPTIONS1 .
D3D12_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT
Valore: 0x194
Recuperare lo stesso set di texel di D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT e invece di filtrarli restituiscono il massimo dei texel. I texel ponderati 0 durante il filtro non vengono conteggiati verso il massimo. È possibile eseguire query sul supporto di questo tipo di filtro dal membro MinMaxFiltering nella struttura D3D11_FEATURE_DATA_D3D11_OPTIONS1 .
D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR
Valore: 0x195
Recuperare lo stesso set di texel di D3D12_FILTER_MIN_MAG_MIP_LINEAR e invece di filtrarli restituiscono il massimo dei texel. I texel ponderati 0 durante il filtro non vengono conteggiati verso il massimo. È possibile eseguire query sul supporto di questo tipo di filtro dal membro MinMaxFiltering nella struttura D3D11_FEATURE_DATA_D3D11_OPTIONS1 .
D3D12_FILTER_MAXIMUM_ANISOTROPIC
Valore: 0x1d5
Recuperare lo stesso set di texel di D3D12_FILTER_ANISOTROPIC e invece di filtrarli restituiscono il massimo dei texel. I texel ponderati 0 durante il filtro non vengono conteggiati verso il massimo. È possibile eseguire query sul supporto di questo tipo di filtro dal membro MinMaxFiltering nella struttura D3D11_FEATURE_DATA_D3D11_OPTIONS1 .

Commenti

Questa enumerazione viene usata dalla struttura D3D12_SAMPLER_DESC .

Nota Se si usano diversi tipi di filtro per il filtro min e mag, il comportamento non definito si verifica in alcuni casi in cui la scelta tra l'ingrandimento o la minificazione si verifica ambigua. Per evitare questo comportamento non definito, usare le modalità di filtro che usano operazioni di filtro simili per min e mag (o usare il filtro anisotropico, che evita anche il problema).
 
Durante il campionamento della trama, uno o più texel vengono letti e combinati (questo chiama filtro) per produrre un singolo valore. Il campionamento del punto legge un singolo texel mentre il campionamento lineare legge due texel (endpoint) e interpola in modo lineare un terzo valore tra gli endpoint.

Le funzioni di campionamento della trama di Microsoft High Level Shader Language (HLSL) supportano anche il filtro di confronto durante il campionamento della trama. Il filtro di confronto confronta ogni texel campione con un valore di confronto. Il risultato booleano viene unito allo stesso modo in cui viene miscelato il normale filtro della trama.

È possibile usare funzioni intrinseche di campionamento della trama HLSL che implementano il filtro delle trame solo o le funzioni complementari che usano il filtro delle trame con il filtro di confronto.

Si noti anche quanto segue:

#define	D3D12_FILTER_REDUCTION_TYPE_MASK	( 0x3 )

#define	D3D12_FILTER_REDUCTION_TYPE_SHIFT	( 7 )

#define	D3D12_FILTER_TYPE_MASK	( 0x3 )

#define	D3D12_MIN_FILTER_SHIFT	( 4 )

#define	D3D12_MAG_FILTER_SHIFT	( 2 )

#define	D3D12_MIP_FILTER_SHIFT	( 0 )

#define	D3D12_ANISOTROPIC_FILTERING_BIT	( 0x40 )

#define D3D12_ENCODE_BASIC_FILTER( min, mag, mip, reduction )                                                     \
                                   ( ( D3D12_FILTER ) (                                                           \
                                   ( ( ( min ) & D3D12_FILTER_TYPE_MASK ) << D3D12_MIN_FILTER_SHIFT ) |           \
                                   ( ( ( mag ) & D3D12_FILTER_TYPE_MASK ) << D3D12_MAG_FILTER_SHIFT ) |           \
                                   ( ( ( mip ) & D3D12_FILTER_TYPE_MASK ) << D3D12_MIP_FILTER_SHIFT ) |           \
                                   ( ( ( reduction ) & D3D12_FILTER_REDUCTION_TYPE_MASK ) << D3D12_FILTER_REDUCTION_TYPE_SHIFT ) ) ) 
#define D3D12_ENCODE_ANISOTROPIC_FILTER( reduction )                                                  \
                                         ( ( D3D12_FILTER ) (                                         \
                                         D3D12_ANISOTROPIC_FILTERING_BIT |                            \
                                         D3D12_ENCODE_BASIC_FILTER( D3D12_FILTER_TYPE_LINEAR,         \
                                                                    D3D12_FILTER_TYPE_LINEAR,         \
                                                                    D3D12_FILTER_TYPE_LINEAR,         \
                                                                    reduction ) ) )                     
#define D3D12_DECODE_MIN_FILTER( D3D12Filter )                                                              \
                                 ( ( D3D12_FILTER_TYPE )                                                    \
                                 ( ( ( D3D12Filter ) >> D3D12_MIN_FILTER_SHIFT ) & D3D12_FILTER_TYPE_MASK ) ) 
#define D3D12_DECODE_MAG_FILTER( D3D12Filter )                                                              \
                                 ( ( D3D12_FILTER_TYPE )                                                    \
                                 ( ( ( D3D12Filter ) >> D3D12_MAG_FILTER_SHIFT ) & D3D12_FILTER_TYPE_MASK ) ) 
#define D3D12_DECODE_MIP_FILTER( D3D12Filter )                                                              \
                                 ( ( D3D12_FILTER_TYPE )                                                    \
                                 ( ( ( D3D12Filter ) >> D3D12_MIP_FILTER_SHIFT ) & D3D12_FILTER_TYPE_MASK ) ) 
#define D3D12_DECODE_FILTER_REDUCTION( D3D12Filter )                                                        \
                                 ( ( D3D12_FILTER_REDUCTION_TYPE )                                                      \
                                 ( ( ( D3D12Filter ) >> D3D12_FILTER_REDUCTION_TYPE_SHIFT ) & D3D12_FILTER_REDUCTION_TYPE_MASK ) ) 
#define D3D12_DECODE_IS_COMPARISON_FILTER( D3D12Filter )                                                    \
                                 ( D3D12_DECODE_FILTER_REDUCTION( D3D12Filter ) == D3D12_FILTER_REDUCTION_TYPE_COMPARISON ) 
#define D3D12_DECODE_IS_ANISOTROPIC_FILTER( D3D12Filter )                                               \
                            ( ( ( D3D12Filter ) & D3D12_ANISOTROPIC_FILTERING_BIT ) &&                  \
                            ( D3D12_FILTER_TYPE_LINEAR == D3D12_DECODE_MIN_FILTER( D3D12Filter ) ) &&   \
                            ( D3D12_FILTER_TYPE_LINEAR == D3D12_DECODE_MAG_FILTER( D3D12Filter ) ) &&   \
                            ( D3D12_FILTER_TYPE_LINEAR == D3D12_DECODE_MIP_FILTER( D3D12Filter ) ) )    


Funzione di campionamento trama Funzione di campionamento della trama con filtro di confronto
Esempio SampleCmp o SampleCmpLevelZero
 

I filtri di confronto funzionano solo con trame con i formati seguenti: DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS, DXGI_FORMAT_R32_FLOAT, DXGI_FORMAT_R24_UNORM_X8_TYPELESS, DXGI_FORMAT_R16_UNORM.

Requisiti

   
Intestazione d3d12.h

Vedi anche

Enumerazioni principali

Descrittori