Skip to content

卡通渲染

Lambert 漫反射会产生连续平滑的明暗变化。卡通渲染(Toon Shading)的核心思路是:把连续的光照强度量化成几个等级,从而得到“分段”的明暗边界。

目标

  • 在片元着色器中计算漫反射强度 diff
  • floor 或分段阈值把 diff 量化成少量等级
  • 控制整体风格:分段数量越少,越“卡通”

思路

给定漫反射强度 diff(0~1),做量化:

glsl
float steps = 4.0;
float toon = floor(diff * steps) / (steps - 1.0);

然后用 toon 作为明暗系数去调制基础颜色。

动手练习

  • steps4.0 改成 2.06.0,对比效果
  • 加入一条“边缘加强”:用 1.0 - dot(N, V) 做边缘亮度(下一节会系统讲 Fresnel)

小结

你已经掌握了 Toon Shading 的基本技巧。下一节我们将正式引入 Fresnel(菲涅耳),实现更常见的边缘光效果。