Swift / SpriteKit: как создать эффект капли воды?

#ios #swift #sprite-kit #shader #skspritenode

#iOS #swift #sprite-kit #шейдер #skspritenode

Вопрос:

интересно, как можно добиться следующего эффекта в Swift (SpriteKit).

пример изображения эффекта

Я думаю о том, чтобы добавить несколько узлов формы и заполнить их фоновым изображением с помощью -yscale 1 .

Но я думаю, что этот эффект был сделан как-то иначе, потому что фоновое изображение не просто отражается горизонтально — на нем также есть некоторые графические эффекты (оно отражается в форме водяного жемчуга и так далее).

Это было сделано с помощью шейдерного узла?

У кого-нибудь есть идея, как я мог бы создать такой же эффект в водяных жемчужинах, похожих на SpriteKit, которые выглядят так, как будто они находятся на «камере», и они отражают фон, «похожий на водяной жемчуг»?

Спасибо.

Комментарии:

1. Обычно это делается (в 2D) с искажением копии фона и добавлением поддельного выделения и тени. Насколько мне известно, это не то, что доступно в SpriteKit, но есть в Core Image.

2. Сказав это, большая часть этого может быть достигнута с помощью новой функции SKWarp. Возможно.

3. Спасибо, вы смущены. Хм, это звучит очень сложно. Я попробую это как-нибудь запрограммировать — я думаю, этот эффект действительно выглядит круто. Если у кого-то есть идея получше, пожалуйста, сообщите в комментариях. 🙂

4. Посмотрите на SKEffectNodes, между этим и SKCropNode, вы должны быть в состоянии достичь своего эффекта

Ответ №1:

Хм, ну, вы могли бы создать кучу изображений воды и отображать их случайным образом на экране в некоторой позиции z, однако я думаю, что этот эффект был сделан в другой программе, такой как Unity или что-то в этом роде, лучше всего создавать прозрачные капли воды в виде изображений и отображать их случайным образом на вашем экране.