D3D12_FILTER列舉 (d3d12.h)
指定紋理取樣期間的篩選選項。
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
} ;
常數
D3D12_FILTER_MIN_MAG_MIP_POINT 值: 0 使用點取樣進行縮小、放大和 Mip 層級取樣。 |
D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR 值: 0x1 使用點取樣進行縮小和放大;使用線性插補進行 mip 層級取樣。 |
D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT 值: 0x4 使用點取樣進行縮小;使用線性插補來放大;使用點取樣進行 mip 層級取樣。 |
D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR 值: 0x5 使用點取樣進行縮小;使用線性插補來放大和 Mip 層級取樣。 |
D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT 值: 0x10 使用線性插補來縮小;使用點取樣進行放大和 Mip 層級取樣。 |
D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR 值: 0x11 使用線性插補來縮小;使用點取樣進行放大;使用線性插補進行 mip 層級取樣。 |
D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT 值: 0x14 使用線性插補來縮小和放大;使用點取樣進行 mip 層級取樣。 |
D3D12_FILTER_MIN_MAG_MIP_LINEAR 值: 0x15 使用線性插補來縮小、放大和 Mip 層級取樣。 |
D3D12_FILTER_ANISOTROPIC 值: 0x55 針對縮小、放大和 mip 層級取樣,請使用非等向性插補。 |
D3D12_FILTER_COMPARISON_MIN_MAG_MIP_POINT 值: 0x80 使用點取樣進行縮小、放大和 Mip 層級取樣。 比較結果與比較值。 |
D3D12_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR 值: 0x81 使用點取樣進行縮小和放大;使用線性插補進行 mip 層級取樣。 比較結果與比較值。 |
D3D12_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT 值: 0x84 使用點取樣進行縮小;使用線性插補來放大;使用點取樣進行 mip 層級取樣。 比較結果與比較值。 |
D3D12_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR 值: 0x85 使用點取樣進行縮小;使用線性插補來放大和 Mip 層級取樣。 比較結果與比較值。 |
D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT 值: 0x90 使用線性插補來縮小;使用點取樣進行放大和 Mip 層級取樣。 比較結果與比較值。 |
D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR 值: 0x91 使用線性插補來縮小;使用點取樣進行放大;使用線性插補進行 mip 層級取樣。 比較結果與比較值。 |
D3D12_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT 值: 0x94 使用線性插補來縮小和放大;使用點取樣進行 mip 層級取樣。 比較結果與比較值。 |
D3D12_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR 值: 0x95 使用線性插補來縮小、放大和 Mip 層級取樣。 比較結果與比較值。 |
D3D12_FILTER_COMPARISON_ANISOTROPIC 值: 0xd5 針對縮小、放大和 mip 層級取樣,請使用非等向性插補。 比較結果與比較值。 |
D3D12_FILTER_MINIMUM_MIN_MAG_MIP_POINT 值: 0x100 擷取與 D3D12_FILTER_MIN_MAG_MIP_POINT 相同的材質集,而不是篩選它們會傳回紋素的最小值。 篩選期間加權為 0 的紋素不會計入最小值。 您可以從D3D11_FEATURE_DATA_D3D11_OPTIONS1結構中的MinMaxFiltering成員查詢此篩選類型的支援。 |
D3D12_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR 值: 0x101 擷取與 D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR 相同的材質集,而不是篩選它們會傳回紋素的最小值。 篩選期間加權為 0 的紋素不會計入最小值。 您可以從D3D11_FEATURE_DATA_D3D11_OPTIONS1結構中的MinMaxFiltering成員查詢此篩選類型的支援。 |
D3D12_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT 值: 0x104 擷取與 D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT 相同的一組紋素,而不是篩選它們會傳回紋素的最小值。 篩選期間加權為 0 的紋素不會計入最小值。 您可以從D3D11_FEATURE_DATA_D3D11_OPTIONS1結構中的MinMaxFiltering成員查詢此篩選類型的支援。 |
D3D12_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR 值: 0x105 擷取與 D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR 相同的材質集,而不是篩選它們會傳回紋素的最小值。 篩選期間加權為 0 的紋素不會計入最小值。 您可以從D3D11_FEATURE_DATA_D3D11_OPTIONS1結構中的MinMaxFiltering成員查詢此篩選類型的支援。 |
D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT 值: 0x110 擷取與 D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT 相同的材質集,而不是篩選它們會傳回紋素的最小值。 篩選期間加權為 0 的紋素不會計入最小值。 您可以從D3D11_FEATURE_DATA_D3D11_OPTIONS1結構中的MinMaxFiltering成員查詢此篩選類型的支援。 |
D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR 值: 0x111 擷取與 D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR 相同的材質集,而不是篩選它們會傳回紋素的最小值。 篩選期間加權為 0 的紋素不會計入最小值。 您可以從D3D11_FEATURE_DATA_D3D11_OPTIONS1結構中的MinMaxFiltering成員查詢此篩選類型的支援。 |
D3D12_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT 值: 0x114 擷取與 D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT 相同的材質集,而不是篩選它們會傳回紋素的最小值。 篩選期間加權為 0 的紋素不會計入最小值。 您可以從D3D11_FEATURE_DATA_D3D11_OPTIONS1結構中的MinMaxFiltering成員查詢此篩選類型的支援。 |
D3D12_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR 值: 0x115 擷取與 D3D12_FILTER_MIN_MAG_MIP_LINEAR 相同的材質集,而不是篩選它們會傳回紋素的最小值。 篩選期間加權為 0 的紋素不會計入最小值。 您可以從D3D11_FEATURE_DATA_D3D11_OPTIONS1結構中的MinMaxFiltering成員查詢此篩選類型的支援。 |
D3D12_FILTER_MINIMUM_ANISOTROPIC 值: 0x155 擷取與 D3D12_FILTER_ANISOTROPIC 相同的材質集,而不是篩選它們會傳回紋素的最小值。 篩選期間加權為 0 的紋素不會計入最小值。 您可以從D3D11_FEATURE_DATA_D3D11_OPTIONS1結構中的MinMaxFiltering成員查詢此篩選類型的支援。 |
D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_POINT 值: 0x180 擷取與 D3D12_FILTER_MIN_MAG_MIP_POINT 相同的材質集,而不是篩選它們會傳回紋素的最大值。 篩選期間加權為 0 的紋素不會計入最大值。 您可以從D3D11_FEATURE_DATA_D3D11_OPTIONS1結構中的MinMaxFiltering成員查詢此篩選類型的支援。 |
D3D12_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR 值: 0x181 擷取與 D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR 相同的材質集,而不是篩選它們會傳回紋素的最大值。 篩選期間加權為 0 的紋素不會計入最大值。 您可以從D3D11_FEATURE_DATA_D3D11_OPTIONS1結構中的MinMaxFiltering成員查詢此篩選類型的支援。 |
D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT 值: 0x184 擷取與 D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT 相同的材質集,而不是篩選它們會傳回紋素的最大值。 篩選期間加權為 0 的紋素不會計入最大值。 您可以從D3D11_FEATURE_DATA_D3D11_OPTIONS1結構中的MinMaxFiltering成員查詢此篩選類型的支援。 |
D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR 值: 0x185 擷取與 D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR 相同的材質集,而不是篩選它們會傳回紋素的最大值。 篩選期間加權為 0 的紋素不會計入最大值。 您可以從D3D11_FEATURE_DATA_D3D11_OPTIONS1結構中的MinMaxFiltering成員查詢此篩選類型的支援。 |
D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT 值: 0x190 擷取與 D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT 相同的一組紋素,而不是篩選它們會傳回紋素的最大值。 篩選期間加權為 0 的紋素不會計入最大值。 您可以從D3D11_FEATURE_DATA_D3D11_OPTIONS1結構中的MinMaxFiltering成員查詢此篩選類型的支援。 |
D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR 值: 0x191 擷取與 D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR 相同的材質集,而不是篩選它們會傳回紋素的最大值。 篩選期間加權為 0 的紋素不會計入最大值。 您可以從D3D11_FEATURE_DATA_D3D11_OPTIONS1結構中的MinMaxFiltering成員查詢此篩選類型的支援。 |
D3D12_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT 值: 0x194 擷取與 D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT 相同的材質集,而不是篩選它們會傳回紋素的最大值。 篩選期間加權為 0 的紋素不會計入最大值。 您可以從D3D11_FEATURE_DATA_D3D11_OPTIONS1結構中的MinMaxFiltering成員查詢此篩選類型的支援。 |
D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR 值: 0x195 擷取與 D3D12_FILTER_MIN_MAG_MIP_LINEAR 相同的材質集,而不是篩選它們會傳回紋素的最大值。 篩選期間加權為 0 的紋素不會計入最大值。 您可以從D3D11_FEATURE_DATA_D3D11_OPTIONS1結構中的MinMaxFiltering成員查詢此篩選類型的支援。 |
D3D12_FILTER_MAXIMUM_ANISOTROPIC 值: 0x1d5 擷取與 D3D12_FILTER_ANISOTROPIC 相同的材質集,而不是篩選它們會傳回紋素的最大值。 篩選期間加權為 0 的紋素不會計入最大值。 您可以從D3D11_FEATURE_DATA_D3D11_OPTIONS1結構中的MinMaxFiltering成員查詢此篩選類型的支援。 |
備註
這個列舉是由 D3D12_SAMPLER_DESC 結構使用。
注意 如果您針對 min 與放大篩選器使用不同的篩選類型,則在某些情況下,選擇放大或縮小是否模棱兩可的情況,就會發生未定義的行為。 若要避免這種未定義的行為,請使用針對 min 和 mag (使用類似篩選作業的篩選模式,或使用非等向性篩選,以避免問題以及) 。
Microsoft 高階著色器語言 (HLSL) 紋理取樣函式也支援紋理取樣期間的比較篩選。 比較篩選會比較每個取樣的紋素與比較值。 布林值結果的混合方式與一般紋理篩選混合的方式相同。
您可以使用 HLSL 內建紋理取樣函式,只實作紋理篩選或搭配比較篩選使用紋理篩選的隨附函式。
另請注意下列定義:
#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 ) ) )
紋理取樣函式 | 具有比較篩選的紋理取樣函式 |
---|---|
範例 | SampleCmp 或 SampleCmpLevelZero |
比較篩選僅適用于具有下列格式的紋理:DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS、DXGI_FORMAT_R32_FLOAT、DXGI_FORMAT_R24_UNORM_X8_TYPELESS、DXGI_FORMAT_R16_UNORM。
需求
標頭 | d3d12.h |