énumération D3D12_FILTER (d3d12.h)
Spécifie les options de filtrage pendant l’échantillonnage de texture.
Syntaxe
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 Valeur : 0 Utilisez l’échantillonnage de points pour la minification, l’agrandissement et l’échantillonnage au niveau du mip. |
D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR Valeur : 0x1 Utiliser l’échantillonnage de points pour la minification et l’agrandissement; utiliser l’interpolation linéaire pour l’échantillonnage au niveau du mip. |
D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT Valeur : 0x4 Utiliser l’échantillonnage de points pour la minification ; utiliser l’interpolation linéaire pour l’agrandissement ; utiliser l’échantillonnage de points pour l’échantillonnage au niveau du mip. |
D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR Valeur : 0x5 Utiliser l’échantillonnage de points pour la minification ; utiliser l’interpolation linéaire pour l’agrandissement et l’échantillonnage au niveau du mip. |
D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT Valeur : 0x10 Utiliser l’interpolation linéaire pour la minification ; utiliser l’échantillonnage de points pour l’agrandissement et l’échantillonnage au niveau du mip. |
D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR Valeur : 0x11 Utiliser l’interpolation linéaire pour la minification ; utiliser l’échantillonnage de points pour l’agrandissement; utiliser l’interpolation linéaire pour l’échantillonnage au niveau du mip. |
D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT Valeur : 0x14 Utiliser l’interpolation linéaire pour la minification et l’agrandissement; utiliser l’échantillonnage de points pour l’échantillonnage au niveau du mip. |
D3D12_FILTER_MIN_MAG_MIP_LINEAR Valeur : 0x15 Utilisez l’interpolation linéaire pour la minification, l’agrandissement et l’échantillonnage au niveau du mip. |
D3D12_FILTER_ANISOTROPIC Valeur : 0x55 Utilisez l’interpolation anisotrope pour la minification, l’agrandissement et l’échantillonnage au niveau du mip. |
D3D12_FILTER_COMPARISON_MIN_MAG_MIP_POINT Valeur : 0x80 Utilisez l’échantillonnage de points pour la minification, l’agrandissement et l’échantillonnage au niveau du mip. Comparez le résultat à la valeur de comparaison. |
D3D12_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR Valeur : 0x81 Utiliser l’échantillonnage de points pour la minification et l’agrandissement; utiliser l’interpolation linéaire pour l’échantillonnage au niveau du mip. Comparez le résultat à la valeur de comparaison. |
D3D12_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT Valeur : 0x84 Utiliser l’échantillonnage de points pour la minification ; utiliser l’interpolation linéaire pour l’agrandissement ; utiliser l’échantillonnage de points pour l’échantillonnage au niveau du mip. Comparez le résultat à la valeur de comparaison. |
D3D12_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR Valeur : 0x85 Utiliser l’échantillonnage de points pour la minification ; utiliser l’interpolation linéaire pour l’agrandissement et l’échantillonnage au niveau du mip. Comparez le résultat à la valeur de comparaison. |
D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT Valeur : 0x90 Utiliser l’interpolation linéaire pour la minification ; utiliser l’échantillonnage de points pour l’agrandissement et l’échantillonnage au niveau du mip. Comparez le résultat à la valeur de comparaison. |
D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR Valeur : 0x91 Utiliser l’interpolation linéaire pour la minification ; utiliser l’échantillonnage de points pour l’agrandissement; utiliser l’interpolation linéaire pour l’échantillonnage au niveau du mip. Comparez le résultat à la valeur de comparaison. |
D3D12_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT Valeur : 0x94 Utiliser l’interpolation linéaire pour la minification et l’agrandissement; utiliser l’échantillonnage de points pour l’échantillonnage au niveau du mip. Comparez le résultat à la valeur de comparaison. |
D3D12_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR Valeur : 0x95 Utilisez l’interpolation linéaire pour la minification, l’agrandissement et l’échantillonnage au niveau du mip. Comparez le résultat à la valeur de comparaison. |
D3D12_FILTER_COMPARISON_ANISOTROPIC Valeur : 0xd5 Utilisez l’interpolation anisotrope pour la minification, l’agrandissement et l’échantillonnage au niveau du mip. Comparez le résultat à la valeur de comparaison. |
D3D12_FILTER_MINIMUM_MIN_MAG_MIP_POINT Valeur : 0x100 Récupérez le même ensemble de texels que D3D12_FILTER_MIN_MAG_MIP_POINT et, au lieu de les filtrer, retournez le minimum des texels. Les texels pondérés 0 pendant le filtrage ne sont pas comptabilisés dans le minimum. Vous pouvez interroger la prise en charge de ce type de filtre à partir du membre MinMaxFiltering dans la structure D3D11_FEATURE_DATA_D3D11_OPTIONS1 . |
D3D12_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR Valeur : 0x101 Récupérez le même ensemble de texels que D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR et, au lieu de les filtrer, retournez le minimum des texels. Les texels pondérés 0 pendant le filtrage ne sont pas comptabilisés dans le minimum. Vous pouvez interroger la prise en charge de ce type de filtre à partir du membre MinMaxFiltering dans la structure D3D11_FEATURE_DATA_D3D11_OPTIONS1 . |
D3D12_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT Valeur : 0x104 Récupérez le même ensemble de texels que D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT et, au lieu de les filtrer, retournez le minimum des texels. Les texels pondérés 0 pendant le filtrage ne sont pas comptabilisés dans le minimum. Vous pouvez interroger la prise en charge de ce type de filtre à partir du membre MinMaxFiltering dans la structure D3D11_FEATURE_DATA_D3D11_OPTIONS1 . |
D3D12_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR Valeur : 0x105 Récupérez le même ensemble de texels que D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR et, au lieu de les filtrer, retournez le minimum des texels. Les texels pondérés 0 pendant le filtrage ne sont pas comptabilisés dans le minimum. Vous pouvez interroger la prise en charge de ce type de filtre à partir du membre MinMaxFiltering dans la structure D3D11_FEATURE_DATA_D3D11_OPTIONS1 . |
D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT Valeur : 0x110 Récupérez le même ensemble de texels que D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT et, au lieu de les filtrer, retournez le minimum des texels. Les texels pondérés 0 pendant le filtrage ne sont pas comptabilisés dans le minimum. Vous pouvez interroger la prise en charge de ce type de filtre à partir du membre MinMaxFiltering dans la structure D3D11_FEATURE_DATA_D3D11_OPTIONS1 . |
D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR Valeur : 0x111 Récupérez le même ensemble de texels que D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR et, au lieu de les filtrer, retournez le minimum des texels. Les texels pondérés 0 pendant le filtrage ne sont pas comptabilisés dans le minimum. Vous pouvez interroger la prise en charge de ce type de filtre à partir du membre MinMaxFiltering dans la structure D3D11_FEATURE_DATA_D3D11_OPTIONS1 . |
D3D12_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT Valeur : 0x114 Récupérez le même ensemble de texels que D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT et, au lieu de les filtrer, retournez le minimum des texels. Les texels pondérés 0 pendant le filtrage ne sont pas comptabilisés dans le minimum. Vous pouvez interroger la prise en charge de ce type de filtre à partir du membre MinMaxFiltering dans la structure D3D11_FEATURE_DATA_D3D11_OPTIONS1 . |
D3D12_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR Valeur : 0x115 Récupérez le même ensemble de texels que D3D12_FILTER_MIN_MAG_MIP_LINEAR et, au lieu de les filtrer, retournez le minimum des texels. Les texels pondérés 0 pendant le filtrage ne sont pas comptabilisés dans le minimum. Vous pouvez interroger la prise en charge de ce type de filtre à partir du membre MinMaxFiltering dans la structure D3D11_FEATURE_DATA_D3D11_OPTIONS1 . |
D3D12_FILTER_MINIMUM_ANISOTROPIC Valeur : 0x155 Récupérez le même ensemble de texels que D3D12_FILTER_ANISOTROPIC et, au lieu de les filtrer, retournez le minimum des texels. Les texels pondérés 0 pendant le filtrage ne sont pas comptabilisés dans le minimum. Vous pouvez interroger la prise en charge de ce type de filtre à partir du membre MinMaxFiltering dans la structure D3D11_FEATURE_DATA_D3D11_OPTIONS1 . |
D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_POINT Valeur : 0x180 Récupérez le même ensemble de texels que D3D12_FILTER_MIN_MAG_MIP_POINT et, au lieu de les filtrer, retournez le maximum des texels. Les texels pondérés 0 pendant le filtrage ne sont pas comptabilisés dans le maximum. Vous pouvez interroger la prise en charge de ce type de filtre à partir du membre MinMaxFiltering dans la structure D3D11_FEATURE_DATA_D3D11_OPTIONS1 . |
D3D12_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR Valeur : 0x181 Récupérez le même ensemble de texels que D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR et, au lieu de les filtrer, retournez le maximum des texels. Les texels pondérés 0 pendant le filtrage ne sont pas comptabilisés dans le maximum. Vous pouvez interroger la prise en charge de ce type de filtre à partir du membre MinMaxFiltering dans la structure D3D11_FEATURE_DATA_D3D11_OPTIONS1 . |
D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT Valeur : 0x184 Récupérez le même ensemble de texels que D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT et, au lieu de les filtrer, retournez le maximum des texels. Les texels pondérés 0 pendant le filtrage ne sont pas comptabilisés dans le maximum. Vous pouvez interroger la prise en charge de ce type de filtre à partir du membre MinMaxFiltering dans la structure D3D11_FEATURE_DATA_D3D11_OPTIONS1 . |
D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR Valeur : 0x185 Récupérez le même ensemble de texels que D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR et, au lieu de les filtrer, retournez le maximum des texels. Les texels pondérés 0 pendant le filtrage ne sont pas comptabilisés dans le maximum. Vous pouvez interroger la prise en charge de ce type de filtre à partir du membre MinMaxFiltering dans la structure D3D11_FEATURE_DATA_D3D11_OPTIONS1 . |
D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT Valeur : 0x190 Récupérez le même ensemble de texels que D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT et, au lieu de les filtrer, retournez le maximum des texels. Les texels pondérés 0 pendant le filtrage ne sont pas comptabilisés dans le maximum. Vous pouvez interroger la prise en charge de ce type de filtre à partir du membre MinMaxFiltering dans la structure D3D11_FEATURE_DATA_D3D11_OPTIONS1 . |
D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR Valeur : 0x191 Récupérez le même ensemble de texels que D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR et, au lieu de les filtrer, retournez le maximum des texels. Les texels pondérés 0 pendant le filtrage ne sont pas comptabilisés dans le maximum. Vous pouvez interroger la prise en charge de ce type de filtre à partir du membre MinMaxFiltering dans la structure D3D11_FEATURE_DATA_D3D11_OPTIONS1 . |
D3D12_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT Valeur : 0x194 Récupérez le même ensemble de texels que D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT et, au lieu de les filtrer, retournez le maximum des texels. Les texels pondérés 0 pendant le filtrage ne sont pas comptabilisés dans le maximum. Vous pouvez interroger la prise en charge de ce type de filtre à partir du membre MinMaxFiltering dans la structure D3D11_FEATURE_DATA_D3D11_OPTIONS1 . |
D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR Valeur : 0x195 Récupérez le même ensemble de texels que D3D12_FILTER_MIN_MAG_MIP_LINEAR et, au lieu de les filtrer, retournez le maximum des texels. Les texels pondérés 0 pendant le filtrage ne sont pas comptabilisés dans le maximum. Vous pouvez interroger la prise en charge de ce type de filtre à partir du membre MinMaxFiltering dans la structure D3D11_FEATURE_DATA_D3D11_OPTIONS1 . |
D3D12_FILTER_MAXIMUM_ANISOTROPIC Valeur : 0x1d5 Récupérez le même ensemble de texels que D3D12_FILTER_ANISOTROPIC et, au lieu de les filtrer, retournez le maximum des texels. Les texels pondérés 0 pendant le filtrage ne sont pas comptabilisés dans le maximum. Vous pouvez interroger la prise en charge de ce type de filtre à partir du membre MinMaxFiltering dans la structure D3D11_FEATURE_DATA_D3D11_OPTIONS1 . |
Notes
Cette énumération est utilisée par la structure D3D12_SAMPLER_DESC .
Les fonctions d’échantillonnage de texture HLSL (High Level Shader Language) de Microsoft prennent également en charge le filtrage de comparaison pendant l’échantillonnage de texture. Le filtrage de comparaison compare chaque texel échantillonné à une valeur de comparaison. Le résultat booléen est mélangé de la même façon que le filtrage de texture normal est mélangé.
Vous pouvez utiliser des fonctions d’échantillonnage de texture intrinsèque HLSL qui implémentent le filtrage de texture uniquement ou des fonctions complémentaires qui utilisent le filtrage de texture avec le filtrage de comparaison.
Notez également que les définitions suivantes sont les suivantes :
#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 ) ) )
Fonction d’échantillonnage de texture | Fonction d’échantillonnage de texture avec filtrage de comparaison |
---|---|
Exemple | SampleCmp ou SampleCmpLevelZero |
Les filtres de comparaison fonctionnent uniquement avec les textures qui ont les formats suivants : DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS, DXGI_FORMAT_R32_FLOAT, DXGI_FORMAT_R24_UNORM_X8_TYPELESS, DXGI_FORMAT_R16_UNORM.
Spécifications
En-tête | d3d12.h |