smoothstep()
Плавный переход от 0 к 1 на отрезке [edge0, edge1].
Сигнатура
smoothstep(edge0, edge1, x)Возвращает 0.0 при x <= edge0, 1.0 при x >= edge1, а между ними — плавную интерполяцию по кубической кривой Эрмита (производные на концах равны нулю). Часто используется для мягких краёв и антиалиасинга масок.
float t = clamp((x - edge0) / (edge1 - edge0), 0.0, 1.0);
float edge = smoothstep(0.4, 0.6, dist); // мягкая граница