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]

GLSL 代码编辑器

正确代码预览

当前代码预览