GameTech/URP 渲染实战

案例 2.8MSAA、Render Scale 与 HDR 的直观对比入门

目标:在同一场景里只改 URP Asset 的一项设置,看清楚每个开关到底改变了什么。

图 2-16细栏杆与斜边。左:MSAA 关闭;中:MSAA 4×;右:MSAA 4× 且 Render Scale = 0.5

左图的细栏杆呈现明显的锯齿和断续;中图 MSAA 4× 下边缘平滑。右图 Render Scale 降到 0.5,渲染像素只有四分之一,再放大到屏幕:边缘整体变糊、细栏杆变粗变虚,MSAA 也救不回来——它只能平滑“边缘”,无法补回丢失的分辨率。Render Scale 是“用清晰度换性能”最直接的旋钮,片元开销大致与像素数成正比。

图 2-17发光球 + Bloom + ACES 色调映射。左:HDR 关闭;右:HDR 开启

三个球的自发光强度都远大于 1。HDR 关闭时,颜色缓冲是 8 位的,写入时超过 1 的部分被直接截断:橙色 (4, 1.2, 0.16) 被截成 (1, 1, 0.16),于是变成了黄色——截断不仅丢亮度,还改变色相,之后再做色调映射也找不回来。HDR 开启时,颜色缓冲保留了真实的数值,色调映射把它们“温柔地”压回显示范围,橙色依然是橙色,金属纽结上的高光也足够亮,能触发 Bloom。这就是“色调映射必须配合 HDR”的原因,第 9、27 章会从原理上展开。

配图说明根据 2.7 节“深入”提到的 URP 14 规则,相机渲染到 RenderTexture 时中间缓冲沿用目标 RT 的格式。因此这两张图是分开拍的:左图渲染到 8 位 RT(同时关闭 URP Asset 的 HDR),右图渲染到浮点 RT(开启 HDR)再转存成图片。如果你自己做截图工具、离屏渲染或小地图,想保留 HDR 效果,目标 RT 也必须是浮点格式。