6.1 3D 渲染管线与环境光照


6.1 3D 渲染管线与环境光照

本节摘要:3D 画面的生成链路是"几何与材质 → 光照计算 → 后期加工 → 屏幕",链路的第一决策是渲染后端三选一,第二决策是全局光照方案。环境节点承担"大气控制器"角色,雾效与后期效果制造感知真实。本节讲清这些决策的性能契约与调校方法,合并讲解原书"环境与后期处理"一节的内容。

把时间拨回 4.0 发布前后:引擎把渲染后端从单一图形接口改为多后端架构,押注新一代接口、同时为低端设备保留退路——这场豪赌的结果决定了今天 3D 项目的第一道选择题。理解这段背景,后端选择的逻辑就不再是背参数,而是看懂一组工程取舍。

第一道选择题:渲染后端

三个后端对应三类目标平台,性能契约差异巨大:

后端 目标平台 画质上限 适用判断
前向加 桌面与高端移动 高,支持体积效果 默认起点,桌面项目首选
移动端 手机与平板 中,精简特性 手游与触屏设备的正解
兼容 老设备与网页 基础 保底方案,覆盖最广

选型的第一原则是按目标平台的下限倒推,而不是按开发机的上限顺推。桌面开发机上跑前向加流畅,不代表中端手机扛得住;反之,全用兼容后端又浪费了桌面机能。立项时锁定目标设备清单,后端跟着清单走。好消息是后端切换是项目级设置,场景资产不用重做;坏消息是各后端支持的特性集不同,开发中期换后端要过一遍特性差异表。

第二道选择题:全局光照

直接光好懂(灯照到的地方亮),环境光的"间接感"则是画面质感的分水岭——墙面被地面反光映亮的那一层微光,是真实感的隐形来源。引擎提供几套方案:

实时探针体(SDFGI 之类):运行时动态计算,开箱即用,光照随场景变化即时更新;代价是持续的性能开销,中端设备吃力。烘焙光照贴图:把静态光照预计算进贴图,运行时几乎零开销,画质极高;代价是场景静态部分不能动、烘焙流程要接入管线。简单环境光:最便宜的天光近似,小场景与卡通风够用。

选择逻辑一句话:静态场景用烘焙换画质,动态世界用实时方案换灵活,预算紧用环境光保底。大型项目常见组合拳——室外远山用探针体、室内战斗用烘焙加几张动态灯。

材质:基于物理的三参数

3D 材质的世界语是"基于物理的渲染"(简称 PBR):用金属度、粗糙度、高光三个参数描述表面如何反光。三参数的效果用直觉记:

  • 金属度拉满,表面像金属——反射环境色,自身颜色即反光色
  • 粗糙度拉满,表面像磨砂——高光散成一片哑光;压低则像镜面,高光凝成锐点
  • 高光调非金属的反光强度,多数材质保持默认即可
# 运行时调材质:矿洞深处的湿滑岩壁 var mat := %Rock.get_active_material(0) as StandardMaterial3D mat.roughness = lerpf(mat.roughness, 0.35, delta * 2.0) # 越深越湿 mat.metallic = 0.0

PBR 的工作流红利在"物理一致":同一组参数在任何光照环境下都呈现合理的观感,美术资产可以跨场景复用而不用逐场景调色——这在 2D 手绘贴图时代是不可想象的。

环境节点:场景的大气控制器

世界环境节点是 3D 场景的"空气"。它统管背景、环境光、雾、色调映射。常用的三段式打法:

**第一段,背景与天光。**室内场景背景直接给深色,室外用天空材质——天空不仅被画在远处,还是环境光的来源,天色即整体色温。

**第二段,体积雾。**3D 的雾不是平面滤镜而是空间中的介质:光穿过雾发生散射,灯锥在雾里现形。矿井场景里一束顶光打进浮尘,氛围瞬间成立——这是 2D 光照做不到的维度。雾的性能与分辨率挂钩,移动端要降档。

**第三段,色调映射与辉光。**色调映射把高动态的光压进屏幕可显示的范围,选对模式,画面从"发灰"变"通透";辉光让高亮区域柔光溢出,夜晚灯牌、熔岩边缘全靠它。两者都是全屏后期,开销与分辨率线性相关。

⚠️ 常见坑:场景里没有环境节点,画面像蒙了层灰。3D 场景的默认环境极朴素,"发灰发闷"的第一嫌疑人永远是世界环境缺失或环境光能量为零——先补环境,再怀疑别的。

屏幕空间技术:真实感的高级来源

一类高级效果统称"屏幕空间"技术——只利用当前画面能看见的信息做近似。屏幕空间反射让湿地面映出角色倒影,屏幕空间环境光遮蔽让墙角家具缝隙自然变暗。它们视觉效果好、接入成本低,但两个边界要懂:画面里看不见的东西无法参与计算(背后的反射不存在),性能随分辨率线性上涨(4K 屏上开销翻倍)。桌面项目开着锦上添花,移动项目按预算取舍。

一个完整的画质决策演练

把本节所有决策装进一个假想场景过一遍,检验知识是否串起来了。需求:一款中端手机为基准的 3D 冒险游戏,室内矿井加室外小镇两类场景。决策链:后端选移动端(按目标平台下限倒推);全局光照用组合拳——室外小镇烘焙光照贴图(静态建筑换高画质),室内矿井用实时探针体(矿灯随玩家移动,光照必须动态);材质上给岩石用高粗糙度低金属度、给矿石用低粗糙度中金属度制造湿润反光;环境上矿井用体积雾加暖色矿灯、小镇用清晨天光加淡雾;屏幕空间技术在发布前按真机帧率决定开关。注意这条决策链的形状:每个决策都引用了目标平台或场景需求,没有一个决策引用"我喜欢"——这正是画质工程与随手调参的分界线。

反过来看错误示范:全开最高画质、全部实时光照、体积雾拉满,桌面开发机上惊艳,中端手机上十几帧。回退时才发现每个开关在哪都不知道。防御办法就是本节的决策链:立项时把这条链写进项目文档,画质承诺从一开始就有出处。

图 1 3D 画面生成链路与决策点

图 1 3D 画面生成链路与决策点

本节要点回顾

  • 后端三选一:前向加、移动端、兼容;按目标平台下限倒推,中期切换要过特性差异表
  • 全局光照谱系:静态烘焙换画质、动态实时换灵活、环境光保底;大型项目组合使用
  • PBR 三参数:金属度粗糙度高光,物理一致让资产跨环境复用
  • 世界环境三段式:背景天光定色温、体积雾造氛围、色调映射加辉光出通透
  • 屏幕空间技术:效果好接入易,边界在"看不见的不算"与分辨率线性开销
  • 发灰第一嫌疑人:环境节点缺失或环境光为零,先补环境再查别的

画面链路齐了,下一节让 3D 世界动起来:运动范式、导航寻路与关节约束。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U