Lambert 光照(球)
7 / 15
📝 练习目标
用估计法线实现 Lambert 漫反射,为球体着色。
💡 💡 教程内容
用估计法线实现 Lambert 漫反射,为球体着色。
概览
- 计算光照项并为形状着色。
学习目标
- 估计法线
- 用 dot(n,l) 计算漫反射
前置知识
- simple-circle
- smooth-edges
关键概念
- 漫反射使用
max(dot(n, l), 0.0)。
float diff = max(dot(n, lightDir), 0.0);
- 高光使用
pow(Phong/Blinn-Phong)。
float spec = pow(max(dot(r, v), 0.0), shininess);
如何实现(步骤)
- 获得法线
n与归一化光照方向。 - 用
dot(n, l)计算漫反射项。 - 可选:用
pow计算高光。 - 组合各项并输出。
自检
- 是否能无错误编译?
- 输出是否符合目标?
- 关键数值是否在
[0,1]?
常见坑
- 必要时把
t用 clamp 限制到[0,1]。