Как добиться "эффекта флага" на OpenGL?
Нужно построить прямоугольник из triangle_strip и как-то менять край, но не пойму с какой формулой связать
Ответы (1 шт):
Для начала, можно перемножить 2 эффекта: смещение вершин в сторону по синусу в зависимости от расстояния от древка, и градиент от 0 до 1 от древка к свободному краю - получите флаг тем более изогнутый, чем дальше он от древка. Далее анимируйте синус (добавляйте время к значению от которого считается синус). Далее можете добавить вторую волну с другим интервалом. Можете добавить эффект провисания вниз (так же помноженное на градиент от древка). Можете сделать смещение волнам в зависимости от высоту вершины во флаге.
То есть можно продолжать наслаивать эффекты добавляя и обогащая финальный результат. Ну и конечно, все параметры можно регулировать, а градиенты делать не линейными, а, например, x^2 или sqrt(x).
Вот что примерно можно получить:
