Sintaxe
typedef enum D3D12_FILTER
{
D3D12_FILTER_MIN_MAG_MIP_POINT = 0,
D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR = 1,
D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT = 4,
D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR = 5,
D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT = 16,
D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 17,
D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT = 20,
D3D12_FILTER_MIN_MAG_MIP_LINEAR = 21,
D3D12_FILTER_ANISOTROPIC = 85,
D3D12_FILTER_COMPARISON_MIN_MAG_MIP_POINT = 128,
D3D12_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 129,
D3D12_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 132,
D3D12_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 133,
D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 144,
D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 145,
D3D12_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 148,
D3D12_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR = 149,
D3D12_FILTER_COMPARISON_ANISOTROPIC = 213,
D3D12_FILTER_MINIMUM_MIN_MAG_MIP_POINT = 256,
D3D12_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR = 257,
D3D12_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 260,
D3D12_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR = 261,
D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT = 272,
D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 273,
D3D12_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT = 276,
D3D12_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR = 277,
D3D12_FILTER_MINIMUM_ANISOTROPIC = 341,
D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_POINT = 384,
D3D12_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR = 385,
D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 388,
D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR = 389,
D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT = 400,
D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 401,
D3D12_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT = 404,
D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR = 405,
D3D12_FILTER_MAXIMUM_ANISOTROPIC = 469
} D3D12_FILTER
Constantes
| Constante | Descrição |
|---|---|
| D3D12_FILTER_MIN_MAG_MIP_POINT | Use amostragem de ponto para redução, ampliação e amostragem de nível de mip. |
| D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR | Use amostragem de ponto para redução e ampliação; use interpolação linear para amostragem de nível de mip. |
| D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT | Use amostragem de ponto para redução; use interpolação linear para ampliação; use amostragem de ponto para amostragem de nível de mip. |
| D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR | Use amostragem de ponto para redução; use interpolação linear para ampliação e amostragem de nível de mip. |
| D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT | Use interpolação linear para redução; use amostragem de ponto para ampliação e amostragem de nível de mip. |
| D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR | Use interpolação linear para redução; use amostragem de ponto para ampliação; use interpolação linear para amostragem de nível de mip. |
| D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT | Use interpolação linear para redução e ampliação; use amostragem de ponto para amostragem de nível de mip. |
| D3D12_FILTER_MIN_MAG_MIP_LINEAR | Use interpolação linear para redução, ampliação e amostragem de nível de mip. |
| D3D12_FILTER_ANISOTROPIC | Use interpolação anisotrópica para redução, ampliação e amostragem de nível de mip. |
| D3D12_FILTER_COMPARISON_MIN_MAG_MIP_POINT | Use amostragem de ponto para redução, ampliação e amostragem de nível de mip. Compare o resultado com o valor de comparação. |
| D3D12_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR | Use amostragem de ponto para redução e ampliação; use interpolação linear para amostragem de nível de mip. Compare o resultado com o valor de comparação. |
| D3D12_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT | Use amostragem de ponto para redução; use interpolação linear para ampliação; use amostragem de ponto para amostragem de nível de mip. Compare o resultado com o valor de comparação. |
| D3D12_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR | Use amostragem de ponto para redução; use interpolação linear para ampliação e amostragem de nível de mip. Compare o resultado com o valor de comparação. |
| D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT | Use interpolação linear para redução; use amostragem de ponto para ampliação e amostragem de nível de mip. Compare o resultado com o valor de comparação. |
| D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR | Use interpolação linear para redução; use amostragem de ponto para ampliação; use interpolação linear para amostragem de nível de mip. Compare o resultado com o valor de comparação. |
| D3D12_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT | Use interpolação linear para redução e ampliação; use amostragem de ponto para amostragem de nível de mip. Compare o resultado com o valor de comparação. |
| D3D12_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR | Use interpolação linear para redução, ampliação e amostragem de nível de mip. Compare o resultado com o valor de comparação. |
| D3D12_FILTER_COMPARISON_ANISOTROPIC | Use interpolação anisotrópica para redução, ampliação e amostragem de nível de mip. Compare o resultado com o valor de comparação. |
| D3D12_FILTER_MINIMUM_MIN_MAG_MIP_POINT | 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 com peso 0 durante a filtragem não são considerados para o mínimo. Você pode consultar o suporte a esse tipo de filtro no membro MinMaxFiltering da estrutura D3D11_FEATURE_DATA_D3D11_OPTIONS1. |
| D3D12_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR | 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 com peso 0 durante a filtragem não são considerados para o mínimo. Você pode consultar o suporte a esse tipo de filtro no membro MinMaxFiltering da estrutura D3D11_FEATURE_DATA_D3D11_OPTIONS1. |
| D3D12_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT | 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 com peso 0 durante a filtragem não são considerados para o mínimo. Você pode consultar o suporte a esse tipo de filtro no membro MinMaxFiltering da estrutura D3D11_FEATURE_DATA_D3D11_OPTIONS1. |
| D3D12_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR | 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 com peso 0 durante a filtragem não são considerados para o mínimo. Você pode consultar o suporte a esse tipo de filtro no membro MinMaxFiltering da estrutura D3D11_FEATURE_DATA_D3D11_OPTIONS1. |
| D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT | 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 com peso 0 durante a filtragem não são considerados para o mínimo. Você pode consultar o suporte a esse tipo de filtro no membro MinMaxFiltering da estrutura D3D11_FEATURE_DATA_D3D11_OPTIONS1. |
| D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR | 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 com peso 0 durante a filtragem não são considerados para o mínimo. Você pode consultar o suporte a esse tipo de filtro no membro MinMaxFiltering da estrutura D3D11_FEATURE_DATA_D3D11_OPTIONS1. |
| D3D12_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT | 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 com peso 0 durante a filtragem não são considerados para o mínimo. Você pode consultar o suporte a esse tipo de filtro no membro MinMaxFiltering da estrutura D3D11_FEATURE_DATA_D3D11_OPTIONS1. |
| D3D12_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR | 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 com peso 0 durante a filtragem não são considerados para o mínimo. Você pode consultar o suporte a esse tipo de filtro no membro MinMaxFiltering da estrutura D3D11_FEATURE_DATA_D3D11_OPTIONS1. |
| D3D12_FILTER_MINIMUM_ANISOTROPIC | Busque o mesmo conjunto de texels que D3D12_FILTER_ANISOTROPIC e, em vez de filtrá-los, retorne o mínimo dos texels. Texels com peso 0 durante a filtragem não são considerados para o mínimo. Você pode consultar o suporte a esse tipo de filtro no membro MinMaxFiltering da estrutura D3D11_FEATURE_DATA_D3D11_OPTIONS1. |
| D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_POINT | Busque o mesmo conjunto de texels que D3D12_FILTER_MIN_MAG_MIP_POINT e, em vez de filtrá-los, retorne o máximo dos texels. Texels com peso 0 durante a filtragem não são considerados para o máximo. Você pode consultar o suporte a esse tipo de filtro no membro MinMaxFiltering da estrutura D3D11_FEATURE_DATA_D3D11_OPTIONS1. |
| D3D12_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR | 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 com peso 0 durante a filtragem não são considerados para o máximo. Você pode consultar o suporte a esse tipo de filtro no membro MinMaxFiltering da estrutura D3D11_FEATURE_DATA_D3D11_OPTIONS1. |
| D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT | 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 dos texels. Texels com peso 0 durante a filtragem não são considerados para o máximo. Você pode consultar o suporte a esse tipo de filtro no membro MinMaxFiltering da estrutura D3D11_FEATURE_DATA_D3D11_OPTIONS1. |
| D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR | 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 com peso 0 durante a filtragem não são considerados para o máximo. Você pode consultar o suporte a esse tipo de filtro no membro MinMaxFiltering da estrutura D3D11_FEATURE_DATA_D3D11_OPTIONS1. |
| D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT | 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 com peso 0 durante a filtragem não são considerados para o máximo. Você pode consultar o suporte a esse tipo de filtro no membro MinMaxFiltering da estrutura D3D11_FEATURE_DATA_D3D11_OPTIONS1. |
| D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR | 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 com peso 0 durante a filtragem não são considerados para o máximo. Você pode consultar o suporte a esse tipo de filtro no membro MinMaxFiltering da estrutura D3D11_FEATURE_DATA_D3D11_OPTIONS1. |
| D3D12_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT | 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 com peso 0 durante a filtragem não são considerados para o máximo. Você pode consultar o suporte a esse tipo de filtro no membro MinMaxFiltering da estrutura D3D11_FEATURE_DATA_D3D11_OPTIONS1. |
| D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR | Busque o mesmo conjunto de texels que D3D12_FILTER_MIN_MAG_MIP_LINEAR e, em vez de filtrá-los, retorne o máximo dos texels. Texels com peso 0 durante a filtragem não são considerados para o máximo. Você pode consultar o suporte a esse tipo de filtro no membro MinMaxFiltering da estrutura D3D11_FEATURE_DATA_D3D11_OPTIONS1. |
| D3D12_FILTER_MAXIMUM_ANISOTROPIC | Busque o mesmo conjunto de texels que D3D12_FILTER_ANISOTROPIC e, em vez de filtrá-los, retorne o máximo dos texels. Texels com peso 0 durante a filtragem não são considerados para o máximo. Você pode consultar o suporte a esse tipo de filtro no membro MinMaxFiltering da estrutura D3D11_FEATURE_DATA_D3D11_OPTIONS1. |
Comentários
Esta enumeração é usada pela estrutura D3D12_SAMPLER_DESC.Observação Se você usar tipos de filtro diferentes para os filtros de redução (min) e ampliação (mag), ocorrerá um comportamento indefinido em determinados casos em que a escolha entre ampliação ou redução for ambígua. Para evitar esse comportamento indefinido, use modos de filtro que utilizem operações de filtro semelhantes para min e mag (ou use a filtragem anisotrópica, que também evita o problema).
Durante a amostragem de textura, um ou mais texels são lidos e combinados (isso é chamado de 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 da Microsoft High Level Shader Language (HLSL) 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 é mesclado da mesma forma que a filtragem de textura normal é mesclada.
Você pode usar funções intrínsecas de amostragem de textura do HLSL que implementam apenas a filtragem de textura ou funções complementares que usam a filtragem de textura com filtragem de comparação.
Observe também as seguintes definições:
#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 |
|---|---|
| Sample | SampleCmp ou SampleCmpLevelZero |
Requisitos
Cabeçalho: d3d12_xs.h ou d3d12_x.hBiblioteca: d3d12_xs.lib ou d3d12_x.lib
Plataformas com suporte: consoles XBOX Series e família XBOX One
