学习目标
你要能够解释什么
能说明一个效果在哪个 pass 工作、读取什么、写出什么,以及它的预算来源。
Interview evidence
题库练习
把这一节课的画面证据,接回 PDF 里的原题。先做一个小预测,再去题目页整理成自己的回答。
-
SSS 皮肤 Shader
先自己猜:这道题在考什么?
参考答案:SSS 是光在表面下传播后重新分布的近似,不是把皮肤染红。半径决定传播范围,采样数决定积分平滑度与成本;我会先用 Lambert 对照,再看薄区域、传播剖面和预算。
可观察证据:只改一个参数,记下画面变化,再写一句“所以它说明了什么”。
-
动态天气体积光
先自己猜:这道题在考什么?
参考答案:云层体积光可以用噪声/高度纹理得到密度,沿视线 ray march,逐步累积透射率和散射;步数决定采样精度,噪声层数决定细节和成本,曝光影响输出范围。需要 HDR overflow debug 和按设备降级,不能靠过曝掩盖错误。
可观察证据:只改一个参数,记下画面变化,再写一句“所以它说明了什么”。
-
动态皮肤特效模块化
先自己猜:这道题在考什么?
参考答案:我会先把电光效果拆成事件驱动、挂点/轨迹、基础材质、发光与粒子、遮挡合成、音画节奏和质量档位。每个模块有明确输入输出,近景保留轮廓和节奏,远景或低端档位减少采样、透明层和后处理;最后用固定镜头同时验收画面和性能。
可观察证据:只改一个参数,记下画面变化,再写一句“所以它说明了什么”。
实验循环
按顺序做一次实验
-
Step 1
看 HDR 输入
- 改什么
- Exposure / HDR range
- 怎么做
- 先关闭后处理,只改变曝光。
- 你会看到
- 亮部超过 1.0 后仍保留可用的能量范围。
- 它代表
- 后处理之前的数值范围决定了效果是否有信息可用。
Code anchor · rendering-effects · HDR input
-
Step 2
打开阈值与卷积
- 改什么
- Bloom threshold / radius
- 怎么做
- 固定曝光,只改变阈值和半径。
- 你会看到
- 只有超过阈值的亮部进入模糊并回加。
- 它代表
- Bloom 是选择、扩散、合成三段因果链。
Code anchor · rendering-effects · bloom
-
Step 3
最后做色调映射
- 改什么
- Tone map / gamma
- 怎么做
- 比较线性输出与色调映射输出。
- 你会看到
- 亮部压缩、颜色关系和对比度改变。
- 它代表
- 色调映射是显示设备适配,不是简单的亮度滑杆。
Code anchor · rendering-effects · tone map
快速复习
用三分钟找回因果链
这里没有第二套答案。以下内容直接来自上面的课程事实,方便你在面试前快速检索。
一句话核心
逐个打开后处理阶段,观察 HDR 值如何经过阈值、卷积和映射成为最终像素。
- 后处理之前的数值范围决定了效果是否有信息可用。
画面证据:亮部超过 1.0 后仍保留可用的能量范围。
- Bloom 是选择、扩散、合成三段因果链。
画面证据:只有超过阈值的亮部进入模糊并回加。
- 色调映射是显示设备适配,不是简单的亮度滑杆。
画面证据:亮部压缩、颜色关系和对比度改变。
代码定位
- rendering-effects · HDR input
- rendering-effects · bloom
- rendering-effects · tone map