Skip to main content
Sampler Feedback 功能之所以實用,是因為它可讓遊戲在場景轉譯期間測量紋理的所需使用量。在任何時刻,根據場景幾何和相機角度,場景中參考的紋理資料只有一小部分會擷取到 GPU 中。Sampler Feedback 為遊戲提供了以一定精確度測量此部分的工具,並根據該資料做出決策。 Sampler Feedback 預想了兩種用法:並排紋理串流和紋理著色。

並排紋理串流

Direct3D 並排資源 (也稱為部分常駐紋理) 自 2012 年推出的 GPU 起便是受支援的功能。雖然此功能在概念上很簡單 (將紋理分成 64 KB 圖格,並獨立管理每個圖格的常駐狀態),但實際上此功能一直難以使用。當紋理可以逐一圖格設為常駐時,必須回答的難題是應該將哪些圖格設為常駐,以及何時設為常駐。Sampler Feedback 提供了回答此問題的方法。透過在場景轉譯期間,以實際的幾何和著色器測量場景轉譯對紋理的使用情況,即可產生準確的估計值。 使用 Sampler Feedback 資料驅動圖格串流決策而產生回饋迴圈之後,還需要另一個元件:將場景轉譯對每個紋理的使用限制在每個紋理目前常駐圖格集合的方法。在傳統的紋理串流模型中,整個 mip 層級會一次設為常駐或非常駐,此時取樣器狀態的 MinLOD 參數就足以將存取限制在某個 mip 層級範圍內。但在每個 mip 層級上的個別圖格可以是常駐或非常駐的模型中,則需要以取樣的 UV(W) 座標作為輸入的每區域限制。從 Direct3D 11 開始,“MIN reduction” 篩選模式便擔任此角色,但該篩選的運作方式仍有改進空間,因為它通常過於保守。 搭配紋理串流使用的 Sampler Feedback 稱為串流用取樣器回饋 (SFS)。

紋理著色

紋理著色的定義是用作管線輸入的部分常駐 (或部分轉譯) 程序紋理,其子區域會由 GPU 根據從場景轉譯衍生的使用模式動態填入。紋理串流的回饋迴圈持續時間是以多個畫面格來衡量 (因為圖格要求需送至儲存體才能完成),而紋理著色則預想其回饋迴圈在單一畫面格內或兩個相鄰畫面格之間發生。在一個階段中使用取樣器回饋測量使用量,從取樣器回饋資料計算出必要的圖格,使用計算著色器填入必要的圖格,然後在最終階段中使用該紋理。

另請參閱

Sampler Feedback GPU 硬體設計 Sampler Feedback 概觀 (預覽)
Last modified on October 6, 2026