Skip to main content
采样器反馈功能之所以有用,是因为它让游戏能够在场景渲染期间测量纹理的期望使用情况。在任意时刻,给定场景几何和相机角度,场景中所引用的纹理数据中只有一部分会被抓取到 GPU 中。采样器反馈让游戏能够以一定精度测量这一部分,并基于这些数据做出决策。 采样器反馈的两种用途已经被规划出来:分块纹理流送和纹理着色。

分块纹理流送

Direct3D 分块资源(Tiled Resources),也称为 部分驻留纹理(partially resident textures),自 2012 年发布的 GPU 起就已支持。虽然功能在概念上很简单(将纹理拆分为 64 KB 的分块并独立管理每个分块的驻留状态),但在实践中该功能一直难以使用。当纹理可以按分块驻留时,需要回答的难题是应该驻留 哪些 分块以及 何时 驻留。采样器反馈提供了一种回答该问题的途径:在使用真实几何和着色器进行场景渲染期间测量纹理的使用情况,从而给出准确的估计。 在使用采样器反馈数据驱动分块流送决策形成反馈闭环之后,还需要另一个组件——将场景渲染对每张纹理的访问钳制到当前该纹理已驻留的分块集合的方式。在传统纹理流送模型中,完整的 mip 层级要么整体驻留,要么整体不驻留,此时采样器状态的 MinLOD 参数已足以将访问钳制到某一 mip 范围。但在单个 mip 层级上各个分块可能驻留或不驻留的模型中,需要一种以采样 UV(W) 坐标为输入的按区域钳制。从 Direct3D 11 开始,“MIN 归约”过滤模式承担了这一职责,但其工作方式仍有改进空间,因为它常常过于保守。 将采样器反馈用于纹理流送称为 流送用采样器反馈(Sampler Feedback for Streaming,SFS)

纹理着色

纹理着色定义为一种部分驻留(或部分渲染)的过程化纹理,作为管线输入使用,其子区域会由 GPU 根据从场景渲染中推断的使用模式动态填充。纹理流送的反馈闭环持续时间以多帧衡量(因为分块请求需要交由存储完成),而纹理着色则设想其反馈闭环在单帧内或相邻两帧之间完成。用一次遍历借助采样器反馈测量使用情况,从采样器反馈数据计算出所需的分块,用计算着色器填充这些必要分块,然后在最终遍历中使用该纹理。

另请参阅

采样器反馈 GPU 硬件设计 采样器反馈概述(预览)
最后修改于 2026年8月13日