> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# なぜサンプラー フィードバックなのか?

> なぜサンプラー フィードバックなのか?

サンプラー フィードバック機能が有用なのは、シーン レンダリング中のテクスチャの望ましい使用状況をタイトルが測定できるようにするためです。任意の時点で、シーン ジオメトリとカメラ アングルが与えられた場合、シーン内で参照されるテクスチャ データの一部だけが GPU にフェッチされます。サンプラー フィードバックは、タイトルにその割合をある程度の精度で測定し、そのデータに基づいて判断を下すためのツールを提供します。

サンプラー フィードバックの用途としては、タイル テクスチャ ストリーミングとテクスチャ シェーディングの 2 つが想定されています。

### タイル テクスチャ ストリーミング

Direct3D タイル リソース (*部分的に常駐するテクスチャ* とも呼ばれます) は、2012 年に発売された GPU 以来サポートされている機能です。この機能は概念的にはシンプル (テクスチャを 64 KB のタイルに分割し、各タイルの常駐性を独立に管理する) ですが、実際には使うのが難しいものでした。テクスチャをタイル単位で常駐にできる場合、答えなければならない難しい質問は、*どの* タイルを *いつ* 常駐にすべきかということです。サンプラー フィードバックは、その質問に答える方法を提供します。実際のジオメトリとシェーダーを用いたシーン レンダリング中に、シーン レンダリングによるテクスチャの使用状況を測定することで、正確な推定値を得ることができます。

サンプラー フィードバック データを用いてタイル ストリーミングの判断を駆動するフィードバック ループが生成された後、もう 1 つのコンポーネントが必要となります。それは、シーン レンダリングによる各テクスチャの使用を、各テクスチャの現在常駐しているタイル セットにクランプする方法です。従来のテクスチャ ストリーミング モデル (mip レベル全体を一度に常駐化または非常駐化する) では、サンプラー ステートの *MinLOD* パラメーターで mip レベルの範囲へのアクセスをクランプするのに十分でした。しかし、各 mip レベルの個々のタイルを常駐または非常駐にできるモデルでは、サンプルされる UV(W) 座標を入力とする領域単位のクランプが必要です。Direct3D 11 以降、"MIN reduction" フィルタリング モードがこの役割を果たしていましたが、そのフィルターの動作には改善の余地があり、しばしば過度に保守的でした。

テクスチャ ストリーミングで使用されるサンプラー フィードバックを、*Sampler Feedback for Streaming (SFS)* と呼びます。

### テクスチャ シェーディング

テクスチャ シェーディングとは、パイプライン入力として使用される部分的に常駐 (または部分的にレンダリングされる) 手続き型テクスチャで、シーン レンダリングから導かれる使用パターンに応じて GPU が動的に部分領域を埋めるものと定義されます。テクスチャ ストリーミングのフィードバック ループが (タイル要求がストレージへ完了しに行くために) 複数フレームで測定されるのに対し、テクスチャ シェーディングでは単一フレーム内、または隣接する 2 フレーム間でフィードバック ループが発生することを想定します。使用状況は 1 パスでサンプラー フィードバックを使用して測定され、サンプラー フィードバック データから必要なタイルが算出され、必要なタイルがコンピュート シェーダーで埋められた後、最終パスでテクスチャが使用されます。

## 関連項目

[サンプラー フィードバック GPU ハードウェア設計](/build/core-features/graphics/newfeatures/sfs/sf-gpu-design)

[サンプラー フィードバックの概要 (プレビュー)](/build/core-features/graphics/newfeatures/sfs/sf-overview)


## Related topics

- [D3D12_MIP_REGION](/ja-jp/reference/graphics/d3d12/structs/d3d12_mip_region_public.md)
- [D3D12_RESOURCE_DESC1](/ja-jp/reference/graphics/d3d12/structs/d3d12_resource_desc1_public.md)
- [なぜメッシュ シェーダーなのか?](/ja-jp/build/core-features/graphics/newfeatures/ms/ms-why.md)
- [レピュテーションのサンプル コード](/ja-jp/services/xbox-services/community/reputation/how-to/live-reputation-howto-nav.md)
- [GameInput のフォースフィードバック](/ja-jp/build/core-features/common/input/advanced/input-forcefeedback.md)
