HDRP 通过以下技术实现反射效果,每种技术的资源消耗和适用场景不同:
(一),反射技术对比表
技术 | 描述 | 运行时资源强度 |
---|---|---|
屏幕空间反射(SSR) | 基于屏幕空间的解决方案,实时捕捉所有游戏对象。 | 高 |
实时反射探针 | 手动放置的局部反射探针,实时捕捉所有游戏对象(资源消耗取决于捕捉分辨率)。 | 中 - 高 |
烘焙反射探针 | 手动放置的局部反射探针,仅在烘焙过程中捕捉静态游戏对象。 | 低 |
天空反射 | 反射材质显示天空的反射效果。 | 低 |
(二),反射层次结构(Reflection Hierarchy)
HDRP 通过优先级顺序混合多种反射技术,确保每个像素使用精度最高的反射源,同时保证技术间的平滑过渡:
技术混合逻辑
- 屏幕空间反射(SSR):
- 自主控制权重,优先覆盖可见像素的反射(如物体表面的实时反射)。
- 反射探针(Reflection Probes):
- 可手动编辑权重(Weight),用于混合重叠区域的反射探针效果。
- HDRP 按探针权重比例混合多个探针的反射信息。
- 天空反射(Sky Reflection):
- 权重固定为 1,作为全局反射的基础(如无其他反射源时显示天空)。
技术评估顺序
HDRP 按以下顺序评估反射技术,直到总权重达到 1:
- 屏幕空间反射(SSR)
- 实时反射探针(按权重排序)
- 烘焙反射探针(按权重排序)
- 天空反射
(三),反射代理体积(Reflection Proxy Volumes)与重投影(Reprojection)
代理体积的作用
反射材质在 HDRP 中通过反射代理体积作为重投影体积,修正反射探针捕捉点与表面点的视差问题:
- 无代理体积时:反射探针仅在捕捉点位置提供准确反射,其他位置会因视差导致反射偏移(如墙面反射的天空位置错误)。
- 有代理体积时:HDRP 将探针信息投影到代理体积,再重投影到反射材质表面,显著提升非捕捉点的反射精度(虽非完美,但比无限投影更准确)。
代理体积的类型与局限
类型 | 优点 | 缺点 |
---|---|---|
盒子体积 | 适配矩形区域(如房间) | 边缘可能出现分辨率损失或角度偏差(尤其在斜角表面)。 |
球体体积 | 提供均匀的反射质量 | 长平面等非球形表面上,离捕捉点越远反射精度越低(如地面反射的远处物体偏移)。 |
(四),应用场景与优化建议
- 性能优先场景:
- 移动端或低配置平台:使用烘焙反射探针 + 天空反射,关闭 SSR。
- 开放世界:用烘焙探针覆盖静态场景,动态物体使用低分辨率实时探针。
- 质量优先场景:
- 室内特写:启用SSR + 高分辨率实时探针,搭配代理体积修正视差。
- 镜面材质:结合SSR(捕捉近处细节)和反射探针(补充远处环境)。
- 代理体积优化:
- 按物体形状选择代理体积(如圆柱体用球体,墙壁用盒子),减少投影误差。
- 对关键反射物体(如水面)单独设置代理体积,避免全局代理的性能开销。
(五),技术原理补充
- 屏幕空间反射(SSR):通过深度缓冲和屏幕空间法线重建世界坐标,采样周围像素作为反射源,无法捕捉视线外的物体(如桌子下方的反射)。
- 反射探针重投影公式:\(\text{重投影坐标} = \text{探针捕捉坐标} + \text{代理体积变形偏移}\) 其中偏移量由代理体积形状和表面法线共同决定。
通过合理组合 HDRP 的反射技术,可在不同场景中平衡视觉质量与性能开销。例如,在科幻游戏中用 SSR 表现金属表面的实时反射,搭配烘焙探针处理远处建筑,再以天空反射作为环境基础,既能保证细节又避免资源过度消耗。