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


紋理取樣函式 具有比較篩選的紋理取樣函式
範例 SampleCmpSampleCmpLevelZero
 

比較篩選僅適用于具有下列格式的紋理:DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESSDXGI_FORMAT_R32_FLOAT、DXGI_FORMAT_R24_UNORM_X8_TYPELESSDXGI_FORMAT_R16_UNORM

需求

   
標頭 d3d12.h

另請參閱

核心列舉

描述項