GLSL 效果示例

Voronoi 裂纹:让石板沿细缝透出亮光

只点亮细胞交界处,可分别调裂缝宽度和亮度。

在线示例

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

观察什么

只点亮细胞交界处,可分别调裂缝宽度和亮度。

实现原理

取最近和次近细胞距离的差作为裂缝近似,只有差接近零的边界发亮。

找到控制效果的代码

float d=cellEdge(p*4.);float glow=exp(-d*(12.+40.*u_parameter));c=vec3(.08+.07*noise(p*20.))+vec3(1.,.28,.05)*glow;

动手修改

把参数从 0 调到 1,exp(-d*(12.+40.*u_parameter)) 会让宽光晕收成细亮缝。单元边界位置不变,因为输入仍为 p*4.。

调试与成本

cellEdge 检查 3×3 邻域,近似求最近两个种子距离的差。把 cellEdge(p*4.) 改成 cellEdge(p*2.),裂纹单元会增大一倍,但仍只搜索同样九个邻居。

用到的内置函数

一步步学会这个效果