学习目标
你要能够解释什么
能够用画面证据解释 N·L、法线分布、几何遮蔽和 Fresnel 如何共同组成一次 PBR 响应。
Interview evidence
题库练习
把这一节课的画面证据,接回 PDF 里的原题。先做一个小预测,再去题目页整理成自己的回答。
-
PBR 与 BRDF 原理
先自己猜:这道题在考什么?
参考答案:- 先纠正比较层级:完整 Disney Principled BRDF 是一整套材质模型,Oren–Nayar 只是漫反射项。 - 再给公平比较:若公平比较,应比较 Disney/Burley Diffuse 与 Oren–Nayar。 - 说核心差异:Burley 用粗糙度和 Schlick 风格项经验拟合掠射、回返效果,便宜且好调;Oren–Nayar 用粗糙微面的遮挡与互反射近似,更强调灯光和视线的方位关系。 - 守住边界:两者都不是 GGX 镜面 D/G/F。
可观察证据:只改一个参数,记下画面变化,再写一句“所以它说明了什么”。
-
Metallic 与 Albedo
先自己猜:这道题在考什么?
参考答案:Metallic 不是亮度开关,而是能量分流。金属度为 1 时,Albedo 主要作为有色反射的基础色,漫反射权重接近零;颜色暗不代表材质就是金属。字面纯黑的 Albedo 在线性空间是 0,但真实煤炭通常是低反射的介电质,不能只凭“黑”把 Metallic 设成 1。
可观察证据:只改一个参数,记下画面变化,再写一句“所以它说明了什么”。
-
光照一致性
先自己猜:这道题在考什么?
参考答案:光照一致性是输入契约一致、材质响应可解释,而不是不同场景的亮度完全相同。我会固定颜色空间、灯光单位、曝光和材质基线,用 N·L、距离衰减、F0 和 debug 对照;任何艺术化补偿都记录为显式例外。对于腾讯内部具体规范,我只引用可公开验证的规则,不猜测内部事实。
可观察证据:只改一个参数,记下画面变化,再写一句“所以它说明了什么”。
-
光照衰减
先自己猜:这道题在考什么?
参考答案:物理衰减按距离和光源模型解释能量,常见点光源近似是平方反比;艺术化衰减为了读图或设备预算显式调整曲线。选择取决于一致性、关卡可读性、平台和灯光类型。题目没有提供腾讯内部证据,我会把具体偏好说成待确认的项目约束,不冒充内部事实。
可观察证据:只改一个参数,记下画面变化,再写一句“所以它说明了什么”。
-
Roughness 高光分布
先自己猜:这道题在考什么?
参考答案:Roughness 主要改变微表面分布:低 roughness 高光尖, 高 roughness 高光宽;Metallic 改变 F0 和漫反射/镜面能量分配,金属会让高光带上 base color。两者都不能被当作简单亮度开关,我会用 NDF、F0、kD 和峰值/宽度证据说明。
可观察证据:只改一个参数,记下画面变化,再写一句“所以它说明了什么”。
实验循环
按顺序做一次实验
-
Step 1
建立漫反射基线
- 改什么
- Metallic = 0 · Roughness = 0.5
- 怎么做
- 保持默认材质,只转动光源方向。
- 你会看到
- 高光未出现前,明暗边界随 N·L 改变。
- 它代表
- 这是入射光与表面法线的投影,先把能量方向说清楚。
Code anchor · pbr.frag.glsl · diffuse / NdotL
-
Step 2
只改变粗糙度
- 改什么
- Roughness 0.05 → 0.85
- 怎么做
- 不动颜色和光强,拖动粗糙度并重新计算。
- 你会看到
- 高光从尖锐、明亮变成宽而暗的斑。
- 它代表
- 粗糙度控制微表面法线的分布宽度,而不是简单的“亮度”。
Code anchor · pbr.frag.glsl · NDF / Geometry
-
Step 3
切换金属度与 Fresnel
- 改什么
- Metallic 0 → 1 · Fresnel on/off
- 怎么做
- 在同一视角下切换两项,比较边缘反射。
- 你会看到
- 金属吸收漫反射,边缘反射和底色关系发生变化。
- 它代表
- F 项描述视角相关的反射比例;金属度改变的是材质的能量入口。
Code anchor · pbr.frag.glsl · Fresnel / compose
快速复习
用三分钟找回因果链
这里没有第二套答案。以下内容直接来自上面的课程事实,方便你在面试前快速检索。
一句话核心
先固定光源与视角,再分别观察漫反射、粗糙度、金属度与 Fresnel 如何改变能量分配。
- 这是入射光与表面法线的投影,先把能量方向说清楚。
画面证据:高光未出现前,明暗边界随 N·L 改变。
- 粗糙度控制微表面法线的分布宽度,而不是简单的“亮度”。
画面证据:高光从尖锐、明亮变成宽而暗的斑。
- F 项描述视角相关的反射比例;金属度改变的是材质的能量入口。
画面证据:金属吸收漫反射,边缘反射和底色关系发生变化。
代码定位
- pbr.frag.glsl · diffuse / NdotL
- pbr.frag.glsl · NDF / Geometry
- pbr.frag.glsl · Fresnel / compose