構文
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
定数
| 定数 | 説明 |
|---|---|
| D3D12_FILTER_MIN_MAG_MIP_POINT | 縮小、拡大、ミップ レベル サンプリングにポイント サンプリングを使用します。 |
| D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR | 縮小と拡大にポイント サンプリングを使用し、ミップ レベル サンプリングに線形補間を使用します。 |
| D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT | 縮小にポイント サンプリング、拡大に線形補間、ミップ レベル サンプリングにポイント サンプリングを使用します。 |
| D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR | 縮小にポイント サンプリング、拡大とミップ レベル サンプリングに線形補間を使用します。 |
| D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT | 縮小に線形補間、拡大とミップ レベル サンプリングにポイント サンプリングを使用します。 |
| D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR | 縮小に線形補間、拡大にポイント サンプリング、ミップ レベル サンプリングに線形補間を使用します。 |
| D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT | 縮小と拡大に線形補間、ミップ レベル サンプリングにポイント サンプリングを使用します。 |
| D3D12_FILTER_MIN_MAG_MIP_LINEAR | 縮小、拡大、ミップ レベル サンプリングに線形補間を使用します。 |
| D3D12_FILTER_ANISOTROPIC | 縮小、拡大、ミップ レベル サンプリングに異方性補間を使用します。 |
| D3D12_FILTER_COMPARISON_MIN_MAG_MIP_POINT | 縮小、拡大、ミップ レベル サンプリングにポイント サンプリングを使用します。結果を比較値と比較します。 |
| D3D12_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR | 縮小と拡大にポイント サンプリング、ミップ レベル サンプリングに線形補間を使用します。結果を比較値と比較します。 |
| D3D12_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT | 縮小にポイント サンプリング、拡大に線形補間、ミップ レベル サンプリングにポイント サンプリングを使用します。結果を比較値と比較します。 |
| D3D12_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR | 縮小にポイント サンプリング、拡大とミップ レベル サンプリングに線形補間を使用します。結果を比較値と比較します。 |
| D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT | 縮小に線形補間、拡大とミップ レベル サンプリングにポイント サンプリングを使用します。結果を比較値と比較します。 |
| D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR | 縮小に線形補間、拡大にポイント サンプリング、ミップ レベル サンプリングに線形補間を使用します。結果を比較値と比較します。 |
| D3D12_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT | 縮小と拡大に線形補間、ミップ レベル サンプリングにポイント サンプリングを使用します。結果を比較値と比較します。 |
| D3D12_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR | 縮小、拡大、ミップ レベル サンプリングに線形補間を使用します。結果を比較値と比較します。 |
| D3D12_FILTER_COMPARISON_ANISOTROPIC | 縮小、拡大、ミップ レベル サンプリングに異方性補間を使用します。結果を比較値と比較します。 |
| D3D12_FILTER_MINIMUM_MIN_MAG_MIP_POINT | D3D12_FILTER_MIN_MAG_MIP_POINT と同じテクセル セットを取得し、フィルタリングする代わりにテクセルの最小値を返します。フィルタリング中に重み 0 のテクセルは最小値の計算に含まれません。このフィルター タイプのサポート状況は D3D11_FEATURE_DATA_D3D11_OPTIONS1 構造体の MinMaxFiltering メンバーから照会できます。 |
| D3D12_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR | D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR と同じテクセル セットを取得し、フィルタリングする代わりにテクセルの最小値を返します。フィルタリング中に重み 0 のテクセルは最小値の計算に含まれません。このフィルター タイプのサポート状況は D3D11_FEATURE_DATA_D3D11_OPTIONS1 構造体の MinMaxFiltering メンバーから照会できます。 |
| D3D12_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT | D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT と同じテクセル セットを取得し、フィルタリングする代わりにテクセルの最小値を返します。フィルタリング中に重み 0 のテクセルは最小値の計算に含まれません。このフィルター タイプのサポート状況は D3D11_FEATURE_DATA_D3D11_OPTIONS1 構造体の MinMaxFiltering メンバーから照会できます。 |
| D3D12_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR | D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR と同じテクセル セットを取得し、フィルタリングする代わりにテクセルの最小値を返します。フィルタリング中に重み 0 のテクセルは最小値の計算に含まれません。このフィルター タイプのサポート状況は D3D11_FEATURE_DATA_D3D11_OPTIONS1 構造体の MinMaxFiltering メンバーから照会できます。 |
| D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT | D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT と同じテクセル セットを取得し、フィルタリングする代わりにテクセルの最小値を返します。フィルタリング中に重み 0 のテクセルは最小値の計算に含まれません。このフィルター タイプのサポート状況は D3D11_FEATURE_DATA_D3D11_OPTIONS1 構造体の MinMaxFiltering メンバーから照会できます。 |
| D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR | D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR と同じテクセル セットを取得し、フィルタリングする代わりにテクセルの最小値を返します。フィルタリング中に重み 0 のテクセルは最小値の計算に含まれません。このフィルター タイプのサポート状況は D3D11_FEATURE_DATA_D3D11_OPTIONS1 構造体の MinMaxFiltering メンバーから照会できます。 |
| D3D12_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT | D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT と同じテクセル セットを取得し、フィルタリングする代わりにテクセルの最小値を返します。フィルタリング中に重み 0 のテクセルは最小値の計算に含まれません。このフィルター タイプのサポート状況は D3D11_FEATURE_DATA_D3D11_OPTIONS1 構造体の MinMaxFiltering メンバーから照会できます。 |
| D3D12_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR | D3D12_FILTER_MIN_MAG_MIP_LINEAR と同じテクセル セットを取得し、フィルタリングする代わりにテクセルの最小値を返します。フィルタリング中に重み 0 のテクセルは最小値の計算に含まれません。このフィルター タイプのサポート状況は D3D11_FEATURE_DATA_D3D11_OPTIONS1 構造体の MinMaxFiltering メンバーから照会できます。 |
| D3D12_FILTER_MINIMUM_ANISOTROPIC | D3D12_FILTER_ANISOTROPIC と同じテクセル セットを取得し、フィルタリングする代わりにテクセルの最小値を返します。フィルタリング中に重み 0 のテクセルは最小値の計算に含まれません。このフィルター タイプのサポート状況は D3D11_FEATURE_DATA_D3D11_OPTIONS1 構造体の MinMaxFiltering メンバーから照会できます。 |
| D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_POINT | D3D12_FILTER_MIN_MAG_MIP_POINT と同じテクセル セットを取得し、フィルタリングする代わりにテクセルの最大値を返します。フィルタリング中に重み 0 のテクセルは最大値の計算に含まれません。このフィルター タイプのサポート状況は D3D11_FEATURE_DATA_D3D11_OPTIONS1 構造体の MinMaxFiltering メンバーから照会できます。 |
| D3D12_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR | D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR と同じテクセル セットを取得し、フィルタリングする代わりにテクセルの最大値を返します。フィルタリング中に重み 0 のテクセルは最大値の計算に含まれません。このフィルター タイプのサポート状況は D3D11_FEATURE_DATA_D3D11_OPTIONS1 構造体の MinMaxFiltering メンバーから照会できます。 |
| D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT | D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT と同じテクセル セットを取得し、フィルタリングする代わりにテクセルの最大値を返します。フィルタリング中に重み 0 のテクセルは最大値の計算に含まれません。このフィルター タイプのサポート状況は D3D11_FEATURE_DATA_D3D11_OPTIONS1 構造体の MinMaxFiltering メンバーから照会できます。 |
| D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR | D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR と同じテクセル セットを取得し、フィルタリングする代わりにテクセルの最大値を返します。フィルタリング中に重み 0 のテクセルは最大値の計算に含まれません。このフィルター タイプのサポート状況は D3D11_FEATURE_DATA_D3D11_OPTIONS1 構造体の MinMaxFiltering メンバーから照会できます。 |
| D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT | D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT と同じテクセル セットを取得し、フィルタリングする代わりにテクセルの最大値を返します。フィルタリング中に重み 0 のテクセルは最大値の計算に含まれません。このフィルター タイプのサポート状況は D3D11_FEATURE_DATA_D3D11_OPTIONS1 構造体の MinMaxFiltering メンバーから照会できます。 |
| D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR | D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR と同じテクセル セットを取得し、フィルタリングする代わりにテクセルの最大値を返します。フィルタリング中に重み 0 のテクセルは最大値の計算に含まれません。このフィルター タイプのサポート状況は D3D11_FEATURE_DATA_D3D11_OPTIONS1 構造体の MinMaxFiltering メンバーから照会できます。 |
| D3D12_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT | D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT と同じテクセル セットを取得し、フィルタリングする代わりにテクセルの最大値を返します。フィルタリング中に重み 0 のテクセルは最大値の計算に含まれません。このフィルター タイプのサポート状況は D3D11_FEATURE_DATA_D3D11_OPTIONS1 構造体の MinMaxFiltering メンバーから照会できます。 |
| D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR | D3D12_FILTER_MIN_MAG_MIP_LINEAR と同じテクセル セットを取得し、フィルタリングする代わりにテクセルの最大値を返します。フィルタリング中に重み 0 のテクセルは最大値の計算に含まれません。このフィルター タイプのサポート状況は D3D11_FEATURE_DATA_D3D11_OPTIONS1 構造体の MinMaxFiltering メンバーから照会できます。 |
| D3D12_FILTER_MAXIMUM_ANISOTROPIC | D3D12_FILTER_ANISOTROPIC と同じテクセル セットを取得し、フィルタリングする代わりにテクセルの最大値を返します。フィルタリング中に重み 0 のテクセルは最大値の計算に含まれません。このフィルター タイプのサポート状況は D3D11_FEATURE_DATA_D3D11_OPTIONS1 構造体の MinMaxFiltering メンバーから照会できます。 |
解説
この列挙型は D3D12_SAMPLER_DESC 構造体で使用されます。メモ 縮小と拡大で異なるフィルター タイプを使用する場合、拡大と縮小のどちらが発生するかの判別があいまいな特定のケースで未定義動作が発生します。この未定義動作を防ぐには、縮小と拡大の両方に類似のフィルター操作を使用するフィルター モードを使用するか (または、同様にこの問題を回避する異方性フィルタリングを使用してください)。
テクスチャ サンプリング中、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 ) ) )
| テクスチャ サンプリング関数 | 比較フィルタリング付きテクスチャ サンプリング関数 |
|---|---|
| Sample | SampleCmp または SampleCmpLevelZero |
要件
ヘッダー: d3d12_xs.h または d3d12_x.hライブラリ: d3d12_xs.lib または d3d12_x.lib
サポートされるプラットフォーム: XBOX Series 本体および XBOX One ファミリ
