GLSL 效果示例

SDF 法线可视化:用 RGB 显示表面朝向

同一形体在法线图和光照图之间切换,观察采样步长的影响。

在线示例

修改右侧代码,左侧预览会实时更新。

观察什么

同一形体在法线图和光照图之间切换,观察采样步长的影响。

实现原理

中心差分从三轴两侧估计梯度,归一化后映射到 RGB;这是法线诊断图。

找到控制效果的代码

return length(p)-.75;

动手修改

把 c=normal*.5+.5 改为 c=vec3(normal.z*.5+.5)。RGB 朝向图会变成灰度图,单独显示球面朝向正 z 方向的程度。

调试与成本

normalAt 用 e=vec2(.002,0.) 在 x、y、z 两侧采样 scene。把 .002 增为 .05,可比较更宽的差分间隔;光滑球面上的变化可能很小,六次查询的成本也不变。

深入理解

用到的内置函数

一步步学会这个效果