D3D12_FILTER列挙 (d3d12.h)

テクスチャ サンプリング中のフィルター オプションを指定します。

構文

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
縮小、倍率、ミップレベルのサンプリングにはポイント サンプリングを使用します。
D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR
値: 0x1
縮小と倍率にはポイントサンプリングを使用します。mip レベルのサンプリングには線形補間を使用します。
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
縮小には線形補間を使用します。倍率にポイントサンプリングを使用する。mip レベルのサンプリングには線形補間を使用します。
D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT
値: 0x14
縮小と倍率には線形補間を使用します。ポイント サンプリングを使用してミップ レベルのサンプリングを行います。
D3D12_FILTER_MIN_MAG_MIP_LINEAR
値: 0x15
縮小、倍率、ミップレベルのサンプリングには線形補間を使用します。
D3D12_FILTER_ANISOTROPIC
値: 0x55
縮小、倍率、ミップレベルサンプリングには異方性補間を使用します。
D3D12_FILTER_COMPARISON_MIN_MAG_MIP_POINT
値: 0x80
縮小、倍率、ミップレベルのサンプリングにはポイント サンプリングを使用します。 結果を比較値と比較します。
D3D12_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR
値: 0x81
縮小と倍率にはポイントサンプリングを使用します。mip レベルのサンプリングには線形補間を使用します。 結果を比較値と比較します。
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
縮小には線形補間を使用します。倍率にポイントサンプリングを使用する。mip レベルのサンプリングには線形補間を使用します。 結果を比較値と比較します。
D3D12_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT
値: 0x94
縮小と倍率には線形補間を使用します。ポイント サンプリングを使用してミップ レベルのサンプリングを行います。 結果を比較値と比較します。
D3D12_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR
値: 0x95
縮小、倍率、ミップレベルのサンプリングには線形補間を使用します。 結果を比較値と比較します。
D3D12_FILTER_COMPARISON_ANISOTROPIC
値: 0xd5
縮小、倍率、ミップレベルサンプリングには異方性補間を使用します。 結果を比較値と比較します。
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 フィルターと mag フィルターの異なるフィルターの種類を使用する場合、拡大または縮小のどちらが行われるかの選択があいまいな場合に、未定義の動作が発生します。 この未定義の動作を防ぐには、min と mag の両方で同様のフィルター操作を使用するフィルター モードを使用します (または、問題を回避する異方性フィルター処理を使用します)。
 
テクスチャ サンプリング中に、1 つ以上のテクセルが読み取られ、結合されて (これはフィルター処理を呼び出しています)、1 つの値が生成されます。 ポイント サンプリングは 1 つのテクセルを読み取り、線形サンプリングでは 2 つのテクセル (エンドポイント) を読み取り、エンドポイント間で 3 番目の値を線形補間します。

Microsoft High Level Shader Language (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_TYPELESSDXGI_FORMAT_R16_UNORMの形式のテクスチャでのみ機能します。

要件

   
Header d3d12.h

関連項目

コア列挙

記述子