网易首页 > 网易号 > 正文 申请入驻

团结引擎 | 基于图像的可变速率着色

0
分享至

基于图像的可变速率着色 (ImageBased Variable Rate Shading ,Attachment Shading Rate)是一种利用屏幕空间下的着色频率图像附件(Shading Rate Image, 下文简称 SRI)将 光栅化 与 像素着色频率 解耦的技术,可实现按区域灵活控制片元着色频率。

该技术能够有效削减冗余的像素操作,在最大限度降低对视觉保真度影响的前提下,显著提升图形管线的渲染效率。

为什么需要ImageBased VRS ?

游戏画面里往往存在大面积平滑区域:天空、墙壁、水面、雾气,其相邻像素颜色几乎一致。如果对这些颜色相近的像素都进行着色计算的话,其实是一种巨大的浪费。

现代的GPU硬件提供了 “可变速率着色”技术,将“哪些像素被画”和“画得多精细”这两个问题分开进行处理。以下图中的 8*8 的像素块为例,通过调整着色计算频率,可以在保留三角形的像素边缘的同时,减少着色计算的次数。


Shading Rate分别设置为1×1, 2×2, 4×4时的着色计算情况

着色频率不为1*1时,着色求值点可能落在三角形外。默认使用的外推(Extrapolation)计算的着色值可能导致反常的结果。可以在shader中使用限定符 centroid 移动着色求值点到三角形的覆盖范围内。

ImageBased VRS 把“哪些像素被画”和“画得多精细”两个问题分开处理:颜色变化平缓的区域用低精度着色,边缘和细节区域则保持高精度。做到提升渲染效率,而几乎不损失画面效果。


下方图为渲染结果;上方图为将着色频率可视化的结果

图中,紫色部分代表采用了着色频率为 4×4 的区域。可以清晰地看到,天空部分因为颜色过于相近,使用较低频率的着色计算即可保证渲染质量。

对比RendererBased VRS

对比先前团结引擎推出的基于Pipeline Shading Rate (管线着色频率)技术实现的RendererBased VRS方案, ImageBased VRS 提供了更为精细的着色频率调控粒度。

RendererBased VRS 通过在Draw Call前设置管线着色频率进行控制,同一个 Renderer/Draw Call 上只能使用相同频率;


通过RendererBased VRS根据深度对不同的Renderer使用不同的着色频率。最远处的Renderer显示为紫色,为 4×4 着色频率

ImageBased VRS 按 8×8 ~ 32×32 的像素块划分屏幕并指定着色频率,同一个 Renderer/Draw Call 内不同区域也可以使用不同着色频率。


图中每个像素对应屏幕上一个 8×8 ~ 32×32 大小的像素块。天空等颜色相近的区域显示为紫色, 为 4×4着色频率

RendererBased VRS 和 ImageBased VRS 二者的使用并不冲突,可以通过 “CombinerOps” 进行组合,供开发者可以灵活选择片元最终生效的着色频率。


RendererBased VRS 使用的管线着色频率作为A0 着色频率输入;ImageBased VRS 使用的图像附件着色频率作为 B1 着色频率输入

根据使用的图形API的不同,“CombinerOps” 提供的组合方式可能有所不同。


常见的组合方式及其示例

ImageBased VRS 技术原理

上文我们提到ImageBased VRS 以 8×8 ~ 32×32 的像素块为粒度控制着色频率。实践中,着色频率信息使用一张R8_UINT 格式的着色频率图像附件(Shading Rate Image, SRI)记录。这张图像附件为按比例缩小的屏幕空间贴图,每个像素对应屏幕上的一个像素块,将像素块X, Y 两个方向上独立的着色频率合并编码为一个 UINT 值,使用该UINT值记录为像素块使用的着色频率。着色计算阶段,GPU 会通过像素位置查询这张图像附件,找到其记录的着色频率。


R8_UINT 格式的着色频率图像附件;UINT 取值在0~10之间

ImageBased VRS 提供根据像素的感知亮度梯度,或运动幅度计算着色频率的方法,以生成着色频率图像附件。

如果根据感知亮度梯度进行计算,需要在上一帧末尾对画面作Sobel边缘检测,计算每个像素块内沿 X, Y方向感知亮度的最大梯度。将梯度与用户设置的阈值进行比较,判断当前画面中各个像素块合适的着色频率。对于X, Y方向上颜色变化极小的方向使用4×、中等的 2×、剧烈变化的 1×; 当前帧中根据Motion Vector进行重投影,使图像附件对应当前帧的像素分布。

如果根据运动幅度进行计算,则依赖Motion Vector计算像素块X, Y方向上的最小运动速度。将运动速度与用户设置的阈值进行比较判断,对运动幅度大的方向使用4×, 中等的 2×、较小的 1×。

当同时启用感知亮度和运动幅度进行计算时,会在重投影阶段将运动幅度纳入计算。

简言之,感知亮度梯度越小,或移动速度越大,着色频率越低。


ImageBased VRS RenderFeature

在URP中,ImageBased VRS 通过 RenderFeature【ImageBasedVRSRenderFeature】实现。


SRI configuration fields

  • Combiner Op 0: 用于设置 “pipeline shading rate” 和 “primitive shading rate” 之间的组合方式。默认为 “Keep”。

  • Combiner Op 1: 用于设置 “CombinerOp0”组合输出的结果和 “attachment shading rate” 之间的组合方式。默认为 “Replace”。

  • Inject Point: 用于设置 ImageBased VRS 在管线中生效的时刻。默认为Gbuffer 绘制之前(延迟渲染)或Deferred Lights之前(前向渲染)。

  • Reset Inject Point: 用于设置 ImageBased VRS 在管线中停止生效的时刻。默认为后处理之前。

SRI Generation fields
  • Generation Mode: 用于设置着色频率图像附件的生成方式,共有三种。分别为根据感知亮度梯度的“Luminance”, 根据运动幅度的“Motion Only”,和结合二者的 “Luminance + Motion”



Luminance Thresholds

用于设置与感知亮度梯度比较的阈值。 X, Y 两个方向各自独立比较。

如果X, Y 方向上的计算得到的梯度小于 “Luminance Threshold 4 Pixel” ,则该方向使用4×。如果小于 “Luminance Threshold 2 Pixel” 而大于 “Luminance Threshold 4 Pixel”,则该方向使用2×。如果不小于任何一个阈值,则该方向使用1×, 进行全分辨率着色。

Motion Thresholds

用于设置与运动幅度比较的阈值。X、Y 两个方向各自独立比较。

如果X, Y 方向上的计算得到的速度(像素/帧)大于 “Motion Threshold 4 Pixel” ,则该方向使用4×。如果大于 “Motion Threshold 2 Pixel” 而小于 “Motion Threshold 4 Pixel”,则该方向使用2×。如果不大于任何一个阈值,则该方向使用1×, 进行全分辨率着色。

Show Debug SRI

用于将当前帧使用的着色频率图像附件中不同的着色频率映射为不同颜色,绘制在屏幕的右上区域,用于调试时实时参考。


Debug SRI 的实时绘制状况


着色频率与颜色的映射关系表

AlphaTest Separation

“Separate Alpha Test Pass” 用于决定是否针对位于AlphaTest 渲染队列的物体单独关闭ImageBased VRS的使用。当勾选时,渲染AlphaTest 渲染队列的物体时,ImageBased VRS将不生效,以保证渲染质量。

AlphaTest 在片元阶段根据Alpha值决定是否抛弃该片元,开启VRS后,可能导致部分片元被错误抛弃。

平台支持

  • DirectX 12(Windows 平台):支持 DX12 Ultimate 的设备。

  • DirectX 11(Windows 平台):搭载 NVIDIA Turing 架构或更新代际 GPU 的设备。

  • Vulkan(Windows / Android 平台):支持 Vulkan 扩展 VK_KHR_fragment_shading_rate 的设备。

  • OpenGL ES(Android 平台):支持 OpenGL ES 扩展 GL_EXT_fragment_shading_rate_attachment 的设备。

性能数据

使用URP Sample工程中提供的VRS测试场景 “OasisVRSSampleScene” ,分别在室外、水面和室内场景开启,关闭ImageBased VRS 功能进行测试。

性能对比:


GPU耗时的性能对比

效果对比:

  • 室外场景


    ImageBased VRS OFF


    ImageBased VRS ON

  • 水面场景


    ImageBased VRS OFF


    ImageBased VRS ON

  • 室内场景


    ImageBased VRS OFF


    ImageBased VRS ON

快速入门

目前仅支持 URP 管线,ImageBased VRS 已在团结引擎 1.10.2 版本对应的 URP (14.1.6) 中提供。

1. 找到当前使用的 Universal Renderer Data。

2. 点击“Add Renderer Feature” 列出可添加的 RenderFeature 列表。

3. 选择RenderFeature “Image Based Variable Shading Rate” 进行添加。

4. 调整参数以达成渲染质量和渲染压力之间的平衡。


Unity 官方微信

第一时间了解 Unity 引擎动向,学习进阶开发技能

每一个“点赞”、“在看”,都是我们前进的动力


特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
美媒:泽连斯基六次无视美国要求后,特朗普决定推进与俄罗斯的柴油协议

美媒:泽连斯基六次无视美国要求后,特朗普决定推进与俄罗斯的柴油协议

观察者网
2026-10-10 22:40:09
穆帅头号难题!皇马2大巨星较劲:你若不防守 我也不防守

穆帅头号难题!皇马2大巨星较劲:你若不防守 我也不防守

叶青足球世界
2026-10-10 16:09:54
上演巴萨U15梯队首秀,李昊炎斩获拉玛西亚生涯首球

上演巴萨U15梯队首秀,李昊炎斩获拉玛西亚生涯首球

懂球帝
2026-10-10 20:40:11
报告称疑似位于广东的人员使用中国开发的AI工具,对韩国金融机构实行了网络攻击,中方:反对出于政治目的散布虚假信息

报告称疑似位于广东的人员使用中国开发的AI工具,对韩国金融机构实行了网络攻击,中方:反对出于政治目的散布虚假信息

政知新媒体
2026-10-08 16:02:51
王仁君没及时回复赵丽颖?裤子太紧没带手机,知否剧组一直有联系

王仁君没及时回复赵丽颖?裤子太紧没带手机,知否剧组一直有联系

新金牌娱乐观察家
2026-10-10 15:50:00
浙江姑娘晒出“毛坯风”新家,全屋不吊顶、不贴砖,网友:求教程

浙江姑娘晒出“毛坯风”新家,全屋不吊顶、不贴砖,网友:求教程

家居设计师苏哥
2026-10-08 10:32:30
每年吃掉3千只蚊子,8年才能长大,但被人类作为美食大量捕捉!

每年吃掉3千只蚊子,8年才能长大,但被人类作为美食大量捕捉!

史之铭
2026-10-10 00:18:00
66岁大妈每天2个鸡蛋吃了9年,体检结果让人意外,医生:吃错了

66岁大妈每天2个鸡蛋吃了9年,体检结果让人意外,医生:吃错了

芹姐说生活
2026-10-09 22:30:05
香港多位名人骨灰被盗,部分家属接到数千万港币勒索电话

香港多位名人骨灰被盗,部分家属接到数千万港币勒索电话

红星新闻
2025-11-04 15:15:13
为什么尊界被踩碎刹车盘却砸了自家招牌?

为什么尊界被踩碎刹车盘却砸了自家招牌?

小眼睛小世界
2026-10-10 09:15:11
正式退赛,高芙连夜离开中国,不满被中国球迷网暴,利用规则赢中国小将

正式退赛,高芙连夜离开中国,不满被中国球迷网暴,利用规则赢中国小将

喜欢体育的猫
2026-10-10 09:31:20
好消息!四川养老金上调落地!7-9月差额补发,不用主动申请

好消息!四川养老金上调落地!7-9月差额补发,不用主动申请

李博世财经
2026-10-10 16:54:57
乌克兰摧毁俄最大最远的鄂木斯克炼油厂!奔袭2500公里

乌克兰摧毁俄最大最远的鄂木斯克炼油厂!奔袭2500公里

项鹏飞
2026-10-09 19:04:13
医生提醒:西红柿炒鸡蛋,尽量不要放“此物”,可能多数人做错了

医生提醒:西红柿炒鸡蛋,尽量不要放“此物”,可能多数人做错了

芹姐说生活
2026-10-09 22:43:06
我在上海亲戚家住了一周,真是开了眼,他们一家一个月就挣10万。

我在上海亲戚家住了一周,真是开了眼,他们一家一个月就挣10万。

艺鉴在线
2026-10-11 00:19:00
葡萄牙足协对C罗启动纪律程序并处以“预防性停赛”

葡萄牙足协对C罗启动纪律程序并处以“预防性停赛”

体坛周报
2026-10-10 20:10:12
长沙理工大学校庆排面拉满!30位院士到场,中南大学两任校长助阵

长沙理工大学校庆排面拉满!30位院士到场,中南大学两任校长助阵

百家论大学
2026-10-10 10:11:35
世界不再承认中国,“全球第三”,双核格局已确立,美国醒悟过来了

世界不再承认中国,“全球第三”,双核格局已确立,美国醒悟过来了

月光作笺a
2026-10-11 00:09:18
30万斤堆积如山,树上6万斤无人问津,低价卖不动,农民满心无奈

30万斤堆积如山,树上6万斤无人问津,低价卖不动,农民满心无奈

三农雷哥
2026-09-05 12:16:13
歼35成批亮相后,阿媒:最多生产100架,却是压垮美军的最后稻草

歼35成批亮相后,阿媒:最多生产100架,却是压垮美军的最后稻草

巅峰高地
2026-10-09 17:55:36
2026-10-11 00:59:00
Unity incentive-icons
Unity
Unity中国官方帐户
2520文章数 6737关注度
往期回顾 全部

科技要闻

上世纪成熟的踏板,为何今天还会断裂?

头条要闻

男子飞踹9岁自闭症男童持刀对家属 监控视频公开

头条要闻

男子飞踹9岁自闭症男童持刀对家属 监控视频公开

体育要闻

十年回首:湖人三榜眼的夏天,与NBA无关

娱乐要闻

宋佳一串三大满贯 争议随之而来

财经要闻

双汇因抗生素超标共被罚1.29亿元

汽车要闻

千匹马力+三把锁/顶配能浮水 银河战舰700限时焕新价16.98万起

态度原创

健康
手机
教育
旅游
亲子

痘坑留下后,还能填平吗?

手机要闻

iPhone Duo专属仪式感!苹果门店将支持定制开机Hello界面文字

教育要闻

关注:附中科高学霸来自这些初中!

旅游要闻

赏红三个关键词:降温、温差、晴好!北京景区红叶预报来了

亲子要闻

演员张歆艺自曝国庆带娃旅行后,儿子晚上11点不睡觉,被拉起来写作业后才入睡

无障碍浏览 进入关怀版