Comments 35
Ох, лучше видео выложить на youtube
Глупый вопрос, а не проще ли было параболами их рисовать?
Это просто потрясающе. Спасибо.
Интересное сравнение. А в какой среде, на каком языке все это делалось?
PS танец реальных фонтанов заметно «грязнее» получился :-)
PS танец реальных фонтанов заметно «грязнее» получился :-)
Сам модуль с частицами написан на Delphi. Работа с модулем шла из программы, написанной на vb.net через COM. Грязнее вышло прежде всего из-за компрессии видео. В окне оно смотрится значительно чище. К сожалению видео записывал не я. Конечно 100% реализма получить не удалось, но то что уже вышло — уже удовлетворяет заказчика. Я бы лично еще хотел сюда добавить решение с гидравлическими ударами. Их хорошо заметно на втором ролике на красных фонтанах, когда струя резко меняет свою мощность. По падающей воде происходит гидравлический удар от набирающей силы струи, получается довольно красивый эффект, и много много мелких капель вокруг.
Еще показалось, что грязнее из-за того, что в реальных условиях больше случайности в плане высоты и разброса частиц. Но заказчику виднее, устраивает — значит гуд :-)
Ого, бэйсик! А зачем такие сложности, если не секрет? Почему не сразу все на дельфи? Или программу на VB писали не вы и до появления вашего модуля?
Ого, бэйсик! А зачем такие сложности, если не секрет? Почему не сразу все на дельфи? Или программу на VB писали не вы и до появления вашего модуля?
Что за музыка?
Здорово. А на какой системе проводились измерения FPS?
Заказчик ведь может сделать апгрейд процессора и памяти и тогда FPS внезапно возрастет.
Заказчик ведь может сделать апгрейд процессора и памяти и тогда FPS внезапно возрастет.
CPU версии (первые два блина из статьи) проводились на AMD Athlon 64 x2 3800 (2.0ГГц на ядро). Видеокарта если мне не изменяет память — была такая же как и сейчас, GF250.
GPU верисия писалась и тестировалась уже на AMD Athlon II X4 630 (2.8ГГц на ядро), и на той же видеокарточке GF250.
Не было цели провести точные рассчеты производительности, было лишь требование, чтобы оно работало комфортно на современном железе. Ведь ПО нужно было не для продажи в офисы, но и суперкомпьютер собирать для этих целей было бы глупо. Так что пусть растет FPS от апгрейдров, я не против.
GPU верисия писалась и тестировалась уже на AMD Athlon II X4 630 (2.8ГГц на ядро), и на той же видеокарточке GF250.
Не было цели провести точные рассчеты производительности, было лишь требование, чтобы оно работало комфортно на современном железе. Ведь ПО нужно было не для продажи в офисы, но и суперкомпьютер собирать для этих целей было бы глупо. Так что пусть растет FPS от апгрейдров, я не против.
Клёво вышло!
В CPU версии вы использовали пул частиц или выделил память в Realtime?
Ну в реалтайме память выделять — это самоубиство. Конечно же что-то типа пула. Поскольку частицы рождаются и умерают в процессе полета, некоторые раньше, некоторые позже, то посреди массива частиц образуются уже мертвые частицы. Я пробегаю по массиву, и оживляю частицы. Такой вот пул. Ну а если не хватает «трупов» частиц, то выделяю дополнительно кусок памяти, равный 20% от размера текущего массива частиц.
Очень здорово! Спасибо автору за статью. Только недавно любовался свето-музыкальным фонтаном, и стало интересно, как их моделируют.
Как Вы реализовали разбегание частиц в струе?
Я имею в виду, что из трубы (форсунки, сопла) все частицы вылетают приблизительно в одном направлении и с одной скоростью.
Потом, по мере взлета они замедляются и струя распадается (зонтиком, воронкой), частицы раздетаются в стороны и начинают падать.
Я не увидел этой составляющей в уравнении движения. В моем понимании, уравнение должно быть трехмерным, и оперировать с X, Y и Z. Или как минимум с X и Y, а результирующая вращаться вокруг оси Z.
Для разбегания частиц использовался рандом?
Я имею в виду, что из трубы (форсунки, сопла) все частицы вылетают приблизительно в одном направлении и с одной скоростью.
Потом, по мере взлета они замедляются и струя распадается (зонтиком, воронкой), частицы раздетаются в стороны и начинают падать.
Я не увидел этой составляющей в уравнении движения. В моем понимании, уравнение должно быть трехмерным, и оперировать с X, Y и Z. Или как минимум с X и Y, а результирующая вращаться вокруг оси Z.
Для разбегания частиц использовался рандом?
Ну в уравнении движения этой составляющей и не будет. Просто вектор начальной скорости задается с некоторым разбросом, и у каждой частицы своя начальная скорость.
Вектор изначально разный у каждой частицы… понятно, оригинально!
А почему практически не видно падающих на землю частиц? Они исчезают к концу первой трети полета вниз.
А почему практически не видно падающих на землю частиц? Они исчезают к концу первой трети полета вниз.
В первом варианте они падали на землю, но в реальных фонтанах падающую воду видно хуже, и так пожелал именно заказчик. Поэтому мы решили, что после прохождения верхней точки у частиц надо увеличивать прозрачность, чтобы постепенно они стали невидимыми.
Прозрачность… гениально. Я думал мне так на мониторе кажется, что они как бы растворяются))
Монетезируйте немедленно.
Соберите все в одну программу (думаю, найдутся еще программисты с музыкальным образованием, вроде меня) которые с удовольствием перепишут на Delphi модуль с VB.
Или все переписать на JAVA.
И мы разукрасим наши города поющими фонтанами!
И может быть вернули бы это чудо к жизни. Кто постарше, то наверно помнит, каким он был "золотым"…
Как это было бы хорошо…
Соберите все в одну программу (думаю, найдутся еще программисты с музыкальным образованием, вроде меня) которые с удовольствием перепишут на Delphi модуль с VB.
Или все переписать на JAVA.
И мы разукрасим наши города поющими фонтанами!
И может быть вернули бы это чудо к жизни. Кто постарше, то наверно помнит, каким он был "золотым"…
Как это было бы хорошо…
Программа же используется для моделирования, а не для того чтобы произвести вау эффект на обычного пользователя. Так что от просто визуализатора толку мало. Это надо заниматься разработкой самих фонтанов. А для этого надо разбираться во всей этой гидравлике, связать все это с dmx контроллером и написать редактор сценариев для dmx контроллера. Монетизировать тут пока нечего, да и потом, сам визуализатор лично для меня итак «монетизирован». Я же не за спасибо писал его ;)
UFO just landed and posted this here
опа
Винницкий фонтан
Винницкий фонтан
H5OClip хочу поставить себе на скринсейвер
Поздравляю! Вы проделали долгий путь и добились превосходного результата.
Извините может не по теме, но как достигается разная высота струи на одном контуре? ШИМ на клапан сброса?
Не могу сказать точно. Знаю только что управляется оно все через программируемый dmx контроллер. Могу лишь предположить что дальше с помощью таких штук: https://www.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Daps&field-keywords=Electric+Solenoid+Valve
Sign up to leave a comment.
Миллион партиклов. Часть 1