第 4 章 · 渲染与表现值班岗:画面与氛围交接 本章要回答的三个问题:LateUpdate 结束后,一帧画面是怎么被"画"出来的?同一个模型换一种材质为什么观感天差地别,光照烘焙与实时光照又该怎么选?动画状态机、UI 面板、音效粒子这些"氛围组",各自在什么时点被驱动、性能账单记在谁头上?本章沿渲染交接的顺序逐一作答。 为什么会有这一章 前三章结束时,游戏逻辑已经闭环,但画面仍是灰盒子。把逻辑世界变成玩家眼中的世界,中间隔着一条渲染流水线:网格提交、材质着色、光照计算、后期处理,最后输出到屏幕。表现层的话题有个共同特点:单看每个知识点都不难,组合起来才见功力——材质配错一个贴图通道、光照混用烘焙与实时的模式、动画没有过渡条件,都会让"能玩"变"难看"甚至"卡顿"。
本章要回答的三个问题:LateUpdate 结束后,一帧画面是怎么被"画"出来的?同一个模型换一种材质为什么观感天差地别,光照烘焙与实时光照又该怎么选?动画状态机、UI 面板、音效粒子这些"氛围组",各自在什么时点被驱动、性能账单记在谁头上?本章沿渲染交接的顺序逐一作答。
前三章结束时,游戏逻辑已经闭环,但画面仍是灰盒子。把逻辑世界变成玩家眼中的世界,中间隔着一条渲染流水线:网格提交、材质着色、光照计算、后期处理,最后输出到屏幕。表现层的话题有个共同特点:单看每个知识点都不难,组合起来才见功力——材质配错一个贴图通道、光照混用烘焙与实时的模式、动画没有过渡条件,都会让"能玩"变"难看"甚至"卡顿"。
表现岗还有一个容易被忽略的属性:它是性能大户。逻辑代码的浪费以毫秒计,渲染配置的错误以帧率计。所以本章每讲一个表现手段,都会顺手交代它的性能账单记在谁头上,为第 5 章的优化铺垫。
| 节 | 回答的问题 | 关键产出 |
|---|---|---|
| 4.1 渲染管线与 SRP | 画面如何被画出来、管线怎么选 | 一条完整的帧交接流水与选型决策 |
| 4.2 材质、着色器与光照 | 外观由什么决定、光从哪里来 | 材质调参能力与一个烘焙照明方案 |
| 4.3 动画系统 | 动作如何切换与混合 | 三态状态机与事件驱动的动画通知 |
| 4.4 UI、音频与粒子 | 氛围组如何联动 | 一套事件驱动的反馈三件套 |
一句金句:逻辑决定游戏好不好玩,表现决定玩家愿不愿意试——渲染岗的每一张账单,最终都由帧率支付。

问:场景里加了灯怎么画面没变化?
按顺序查三处:材质的自发光与法线是否正常(粉红或全黑是着色器问题不是灯的问题);灯的强度与衰减范围是否被默认值压得太小;烘焙灯没烘焙、实时灯被质量设置里的像素光源数上限挤掉了——中低质量档下,超出数量的实时灯会被引擎静默丢弃。
问:动画切换总是"瞬移"一下,缺帧一样,怎么调?
这是过渡时长与条件时机的合成问题。先检查过渡的过渡时长(Transition Duration)是否设了合适比例;再确认条件用的参数更新时机(每帧 SetFloat 还是事件驱动);最后看动画片段的首尾帧姿势是否接近——首尾姿势差得远的两个片段,融合再久也会跳。
问:UI 在不同分辨率下错位,怎么治?
锚点(Anchor)没配对。UI 元素的位置是相对锚点计算的,全屏界面用四角拉伸锚点,贴边的按钮贴对应边,居中的元素锚点在中心。一个粗暴但有效的自检:把 Game 视图切到最宽与最窄两种分辨率,来回切换看哪些元素跑了,跑了的就是锚点没配。
学习方式上,表现岗与逻辑岗有个明显差别:逻辑对错一眼分明,画面好坏需要对照与审美积累。建议每一节都留一份"改前改后"的截图对照——材质参数调了一组、光照换了一种烘焙、动画加了一条过渡,都截图存档。这份对照档案在日后接手别人的项目时格外有用:见过"好的样子",才能认出"坏的所在"。
表现岗结业后,游戏已经"像样"。第 5 章回到全局调度:把帧率账单逐一销账(性能优化与对象池),把资源装进仓库(Addressables),最后打包出厂、在真机上验收。4.1 的批次数统计与 4.2 的烘焙决策,都会成为第 5 章优化清单上的条目。