Share via


D3D12_FILTER enumeração (d3d12.h)

Especifica as opções de filtragem durante a amostragem de textura.

Syntax

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

Constantes

 
D3D12_FILTER_MIN_MAG_MIP_POINT
Valor: 0
Use a amostragem de ponto para minificação, ampliação e amostragem no nível de mip.
D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR
Valor: 0x1
Usar amostragem de ponto para minificação e ampliação; use interpolação linear para amostragem no nível de mip.
D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT
Valor: 0x4
Usar amostragem de ponto para minificação; usar interpolação linear para ampliação; amostragem de ponto de uso para amostragem no nível de mip.
D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR
Valor: 0x5
Usar amostragem de ponto para minificação; use a interpolação linear para ampliação e amostragem no nível de mip.
D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT
Valor: 0x10
Usar interpolação linear para minificação; amostragem de ponto de uso para ampliação e amostragem no nível de mip.
D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR
Valor: 0x11
Usar interpolação linear para minificação; amostragem de ponto de uso para ampliação; use interpolação linear para amostragem no nível de mip.
D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT
Valor: 0x14
Usar interpolação linear para minificação e ampliação; amostragem de ponto de uso para amostragem no nível de mip.
D3D12_FILTER_MIN_MAG_MIP_LINEAR
Valor: 0x15
Use a interpolação linear para minificação, ampliação e amostragem no nível de mip.
D3D12_FILTER_ANISOTROPIC
Valor: 0x55
Use a interpolação anisotrópica para minificação, ampliação e amostragem no nível de mip.
D3D12_FILTER_COMPARISON_MIN_MAG_MIP_POINT
Valor: 0x80
Use a amostragem de ponto para minificação, ampliação e amostragem no nível de mip. Compare o resultado com o valor de comparação.
D3D12_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR
Valor: 0x81
Usar amostragem de ponto para minificação e ampliação; use interpolação linear para amostragem no nível de mip. Compare o resultado com o valor de comparação.
D3D12_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT
Valor: 0x84
Usar amostragem de ponto para minificação; usar interpolação linear para ampliação; amostragem de ponto de uso para amostragem no nível de mip. Compare o resultado com o valor de comparação.
D3D12_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR
Valor: 0x85
Usar amostragem de ponto para minificação; use a interpolação linear para ampliação e amostragem no nível de mip. Compare o resultado com o valor de comparação.
D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT
Valor: 0x90
Usar interpolação linear para minificação; amostragem de ponto de uso para ampliação e amostragem no nível de mip. Compare o resultado com o valor de comparação.
D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR
Valor: 0x91
Usar interpolação linear para minificação; amostragem de ponto de uso para ampliação; use interpolação linear para amostragem no nível de mip. Compare o resultado com o valor de comparação.
D3D12_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT
Valor: 0x94
Usar interpolação linear para minificação e ampliação; amostragem de ponto de uso para amostragem no nível de mip. Compare o resultado com o valor de comparação.
D3D12_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR
Valor: 0x95
Use a interpolação linear para minificação, ampliação e amostragem no nível de mip. Compare o resultado com o valor de comparação.
D3D12_FILTER_COMPARISON_ANISOTROPIC
Valor: 0xd5
Use a interpolação anisotrópica para minificação, ampliação e amostragem no nível de mip. Compare o resultado com o valor de comparação.
D3D12_FILTER_MINIMUM_MIN_MAG_MIP_POINT
Valor: 0x100
Busque o mesmo conjunto de texels que D3D12_FILTER_MIN_MAG_MIP_POINT e, em vez de filtrá-los, retorne o mínimo dos texels. Texels ponderados 0 durante a filtragem não são contados no mínimo. Você pode consultar o suporte para esse tipo de filtro do membro MinMaxFiltering na estrutura D3D11_FEATURE_DATA_D3D11_OPTIONS1 .
D3D12_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR
Valor: 0x101
Busque o mesmo conjunto de texels que D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR e, em vez de filtrá-los, retorne o mínimo dos texels. Texels ponderados 0 durante a filtragem não são contados no mínimo. Você pode consultar o suporte para esse tipo de filtro do membro MinMaxFiltering na estrutura D3D11_FEATURE_DATA_D3D11_OPTIONS1 .
D3D12_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT
Valor: 0x104
Busque o mesmo conjunto de texels que D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT e, em vez de filtrá-los, retorne o mínimo dos texels. Texels ponderados 0 durante a filtragem não são contados no mínimo. Você pode consultar o suporte para esse tipo de filtro do membro MinMaxFiltering na estrutura D3D11_FEATURE_DATA_D3D11_OPTIONS1 .
D3D12_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR
Valor: 0x105
Busque o mesmo conjunto de texels que D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR e, em vez de filtrá-los, retorne o mínimo dos texels. Texels ponderados 0 durante a filtragem não são contados no mínimo. Você pode consultar o suporte para esse tipo de filtro do membro MinMaxFiltering na estrutura D3D11_FEATURE_DATA_D3D11_OPTIONS1 .
D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT
Valor: 0x110
Busque o mesmo conjunto de texels que D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT e, em vez de filtrá-los, retorne o mínimo dos texels. Texels ponderados 0 durante a filtragem não são contados no mínimo. Você pode consultar o suporte para esse tipo de filtro do membro MinMaxFiltering na estrutura D3D11_FEATURE_DATA_D3D11_OPTIONS1 .
D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR
Valor: 0x111
Busque o mesmo conjunto de texels que D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR e, em vez de filtrá-los, retorne o mínimo dos texels. Texels ponderados 0 durante a filtragem não são contados no mínimo. Você pode consultar o suporte para esse tipo de filtro do membro MinMaxFiltering na estrutura D3D11_FEATURE_DATA_D3D11_OPTIONS1 .
D3D12_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT
Valor: 0x114
Busque o mesmo conjunto de texels que D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT e, em vez de filtrá-los, retorne o mínimo dos texels. Texels ponderados 0 durante a filtragem não são contados no mínimo. Você pode consultar o suporte para esse tipo de filtro do membro MinMaxFiltering na estrutura D3D11_FEATURE_DATA_D3D11_OPTIONS1 .
D3D12_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR
Valor: 0x115
Busque o mesmo conjunto de texels que D3D12_FILTER_MIN_MAG_MIP_LINEAR e, em vez de filtrá-los, retorne o mínimo dos texels. Texels ponderados 0 durante a filtragem não são contados no mínimo. Você pode consultar o suporte para esse tipo de filtro do membro MinMaxFiltering na estrutura D3D11_FEATURE_DATA_D3D11_OPTIONS1 .
D3D12_FILTER_MINIMUM_ANISOTROPIC
Valor: 0x155
Busque o mesmo conjunto de texels que D3D12_FILTER_ANISOTROPIC e, em vez de filtrá-los, retorne o mínimo dos texels. Texels ponderados 0 durante a filtragem não são contados no mínimo. Você pode consultar o suporte para esse tipo de filtro do membro MinMaxFiltering na estrutura D3D11_FEATURE_DATA_D3D11_OPTIONS1 .
D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_POINT
Valor: 0x180
Busque o mesmo conjunto de texels que D3D12_FILTER_MIN_MAG_MIP_POINT e, em vez de filtrá-los, retorne o máximo de texels. Texels ponderados 0 durante a filtragem não são contados para o máximo. Você pode consultar o suporte para esse tipo de filtro do membro MinMaxFiltering na estrutura D3D11_FEATURE_DATA_D3D11_OPTIONS1 .
D3D12_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR
Valor: 0x181
Busque o mesmo conjunto de texels que D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR e, em vez de filtrá-los, retorne o máximo dos texels. Texels ponderados 0 durante a filtragem não são contados para o máximo. Você pode consultar o suporte para esse tipo de filtro do membro MinMaxFiltering na estrutura D3D11_FEATURE_DATA_D3D11_OPTIONS1 .
D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT
Valor: 0x184
Busque o mesmo conjunto de texels que D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT e, em vez de filtrá-los, retorne o máximo de texels. Texels ponderados 0 durante a filtragem não são contados para o máximo. Você pode consultar o suporte para esse tipo de filtro do membro MinMaxFiltering na estrutura D3D11_FEATURE_DATA_D3D11_OPTIONS1 .
D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR
Valor: 0x185
Busque o mesmo conjunto de texels que D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR e, em vez de filtrá-los, retorne o máximo dos texels. Texels ponderados 0 durante a filtragem não são contados para o máximo. Você pode consultar o suporte para esse tipo de filtro do membro MinMaxFiltering na estrutura D3D11_FEATURE_DATA_D3D11_OPTIONS1 .
D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT
Valor: 0x190
Busque o mesmo conjunto de texels que D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT e, em vez de filtrá-los, retorne o máximo dos texels. Texels ponderados 0 durante a filtragem não são contados para o máximo. Você pode consultar o suporte para esse tipo de filtro do membro MinMaxFiltering na estrutura D3D11_FEATURE_DATA_D3D11_OPTIONS1 .
D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR
Valor: 0x191
Busque o mesmo conjunto de texels que D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR e, em vez de filtrá-los, retorne o máximo dos texels. Texels ponderados 0 durante a filtragem não são contados para o máximo. Você pode consultar o suporte para esse tipo de filtro do membro MinMaxFiltering na estrutura D3D11_FEATURE_DATA_D3D11_OPTIONS1 .
D3D12_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT
Valor: 0x194
Busque o mesmo conjunto de texels que D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT e, em vez de filtrá-los, retorne o máximo dos texels. Texels ponderados 0 durante a filtragem não são contados para o máximo. Você pode consultar o suporte para esse tipo de filtro do membro MinMaxFiltering na estrutura D3D11_FEATURE_DATA_D3D11_OPTIONS1 .
D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR
Valor: 0x195
Busque o mesmo conjunto de texels que D3D12_FILTER_MIN_MAG_MIP_LINEAR e, em vez de filtrá-los, retorne o máximo de texels. Texels ponderados 0 durante a filtragem não são contados para o máximo. Você pode consultar o suporte para esse tipo de filtro do membro MinMaxFiltering na estrutura D3D11_FEATURE_DATA_D3D11_OPTIONS1 .
D3D12_FILTER_MAXIMUM_ANISOTROPIC
Valor: 0x1d5
Busque o mesmo conjunto de texels que D3D12_FILTER_ANISOTROPIC e, em vez de filtrá-los, retorne o máximo de texels. Texels ponderados 0 durante a filtragem não são contados para o máximo. Você pode consultar o suporte para esse tipo de filtro do membro MinMaxFiltering na estrutura D3D11_FEATURE_DATA_D3D11_OPTIONS1 .

Comentários

Essa enumeração é usada pela estrutura D3D12_SAMPLER_DESC .

Nota Se você usar diferentes tipos de filtro para filtro min versus mag, o comportamento indefinido ocorrerá em determinados casos em que a escolha entre a ampliação ou a minificação ocorrer é ambígua. Para evitar esse comportamento indefinido, use modos de filtro que usam operações de filtro semelhantes para min e mag (ou use filtragem anisotrópica, o que também evita o problema).
 
Durante a amostragem de textura, um ou mais texels são lidos e combinados (isso chama a filtragem) para produzir um único valor. A amostragem de ponto lê um único texel enquanto a amostragem linear lê dois texels (pontos de extremidade) e interpola linearmente um terceiro valor entre os pontos de extremidade.

As funções de amostragem de textura HLSL (Linguagem de Sombreador de Alto Nível) da Microsoft também dão suporte à filtragem de comparação durante a amostragem de textura. A filtragem de comparação compara cada texel amostrado com um valor de comparação. O resultado booliano é misturado da mesma forma que a filtragem de textura normal é combinada.

Você pode usar funções de amostragem de textura intrínsecas HLSL que implementam somente filtragem de textura ou funções complementares que usam filtragem de textura com filtragem de comparação.

Observe também que o seguinte define:

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


Função de amostragem de textura Função de amostragem de textura com filtragem de comparação
Amostra SampleCmp ou SampleCmpLevelZero
 

Os filtros de comparação funcionam apenas com texturas que têm os seguintes formatos: DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS, DXGI_FORMAT_R32_FLOAT, DXGI_FORMAT_R24_UNORM_X8_TYPELESSDXGI_FORMAT_R16_UNORM.

Requisitos

   
Cabeçalho d3d12.h

Confira também

Enumerações principais

Descritores