卡通渲染
Lambert 漫反射会产生连续平滑的明暗变化。卡通渲染(Toon Shading)的核心思路是:把连续的光照强度量化成几个等级,从而得到“分段”的明暗边界。
目标
- 在片元着色器中计算漫反射强度
diff - 用
floor或分段阈值把diff量化成少量等级 - 控制整体风格:分段数量越少,越“卡通”
思路
给定漫反射强度 diff(0~1),做量化:
glsl
float steps = 4.0;
float toon = floor(diff * steps) / (steps - 1.0);然后用 toon 作为明暗系数去调制基础颜色。
动手练习
- 把
steps从4.0改成2.0、6.0,对比效果 - 加入一条“边缘加强”:用
1.0 - dot(N, V)做边缘亮度(下一节会系统讲 Fresnel)
小结
你已经掌握了 Toon Shading 的基本技巧。下一节我们将正式引入 Fresnel(菲涅耳),实现更常见的边缘光效果。
