GLSL 效果示例
SDF 五角星:用极坐标画出可调尖角
改变内外半径比,星形在尖瘦和饱满之间变化。
在线示例
修改右侧代码,左侧预览会实时更新。
观察什么
改变内外半径比,星形在尖瘦和饱满之间变化。
实现原理
交替连接五个外顶点和五个内顶点,求到十条线段的最短距离,再用射线交叉次数确定内外符号。
找到控制效果的代码
// Build 10 alternating inner/outer vertices.
// Compute min distance to every edge; ray-crossing supplies the inside sign.
动手修改
把 u_parameter 从 0 调到 1,inner=.15+.3*u_parameter 会从 0.15 变为 0.45。五个内凹谷点会向外展开,五个外尖角仍固定在半径 0.7 处。
调试与成本
循环测量十条线段,并用射线交点判断内外。把两处交替使用的外半径 .7 都改为 .55,可同时缩短所有尖角;保留十边循环,才能维持五角星结构。