Skip to main content
设置可变速率着色 (VRS) 的屏幕空间着色速率图像。有关详细信息,请参阅可变速率着色 (VRS)。 此方法需要 Tier2 可变速率着色 (VRS) 支持。请参阅 D3D12_FEATURE_DATA_D3D12_OPTIONS6D3D12_VARIABLE_SHADING_RATE_TIER

语法

参数

shadingRateImage
类型:ID3D12Resource *
一个可选指针,指向表示屏幕空间着色速率图像的 ID3D12Resource。 如果为 NULL,则效果等同于拥有一个所有值都是 1x1 着色速率的着色速率图像。 此纹理必须已应用 D3D12_RESOURCE_STATE_SHADING_RATE_SOURCE 状态。 可以通过 D3D12_FEATURE_DATA_D3D12_OPTIONS6 确定着色速率图像的图块大小。 因此,着色速率图像的大小应为
着色速率图像必须是具有单个 mip 的 2D 纹理,格式为 DXGI_FORMAT_R8_UINT。每个纹素必须是对应于 D3D12_SHADING_RATE 的值。它必须具有布局 D3D12_TEXTURE_LAYOUT_UNKNOWN,并且不能是深度模板、渲染目标、同时访问或跨适配器资源。 由于在 DirectX 中 (0, 0) 是左上角,因此过小或过大的着色速率图像会导致底部或右侧没有着色速率图像区域,或图像在这些方向上延伸。当有多余时,会被忽略(但合法),当图像过小时,底部和右侧的所有超出范围区域将具有来自图像的默认着色速率 1x1(但这并不意味着这是最终的着色速率。组合器仍将应用于此 1x1 默认值)。

返回值

类型:void 无。

备注

为了让屏幕空间着色速率图像生效,必须已调用 ID3D12GraphicsCommandList5::RSSetShadingRate 来设置着色组合器。否则,使用默认组合器(两者都是 D3D12_SHADING_RATE_COMBINER_PASSTHROUGH)时,屏幕空间着色速率图像在确定着色粒度时会被忽略。 传递给 [ID3D12GraphicsCommandList5::RSSetShadingRate] 的第二个组合器是应用于着色速率图像的组合器,这发生在全局着色速率和每图元着色速率被组合之后。 最终着色速率的算法由以下内容决定
其中 ApplyCombiner

要求

头文件: d3d12_xs.h
库: d3d12_xs.lib
支持的平台:XBOX Series 主机

另请参阅

可变速率着色 (VRS)
最后修改于 2026年8月24日