Comments 8
SDF по формулам довольно просты и производительны, но на самом деле для практического проекта вам может быть лучше использовать текстуры с SDF. Благодаря интерполяции из текстуры можно получить значительно большую детализацию, чем разрешение текстуры, это используется в шрифтах на основе SDF.
И текстуры можно просто плавно смешивать и интерполировать в шейдере.
По такой текстуре тоже должны работать SDF, получится плавный морфинг из любой фигуры в любую.
Конечно нужно смотреть на конкретные примеры, потому что морфинг сложных форм может выглядеть странно, но можно получить очень интересные эффекты.
Благодарю за идею с использованием SDF через текстуры. При более сложных формах действительно могут возникнуть артефакты, но можно углубиться в сторону MSDF с текстурами вместо процедурного подхода.
можно и 3д морфать например бурление сферы через нойс, накидать текстур в SRC1_ALPHA и сделать спектральную сферу )
Насколько оправдано использовать OpenGL ES, если новых версий не предвидится, а поддержка Vulkan все шире? Или до более менее существенного применения вулкана еще далеко и можно успеть все переписать? Часто такой такой подход можно встретить в продакшене?
морф тема я морфом делаю волны на шейдере в 3д в шейдере нужен noise,
вводная у Acerola sin wave
Скрытый текст
float noise = pnoise(vec3(vertexPosition) + time,vec3(35));
float displacement = noise / 10.0;
vec3 newPos = vec3(vertexPosition);
float j=2*3.1415/20.0;
float wave = 0.01*(33*sin(j*(vertexPosition.x-5*time))+(33*cos(j*(vertexPosition.z-5*time)))) ;
newPos.y = wave;
newPos.y += vertexPosition.y + vNorm.y *displacement;
Скрытый текст

Морфинг геометрических фигур с SDF в фрагментных шейдерах GLSL и визуализацией на Jetpack Compose