Феерверк

Обсуждение проектов наших жителей.
Вы можете выставить проект на тест или найти помощников для его реализации.

Модератор: BV

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Феерверк

Сообщение Ariman » 08.03.2005 (Вт) 17:21

Писал прогу изначально только чтоб смоделировать физику этого самого салюта, но потом решил довести до ума. Надеюсь, довел :D
В принципе, можно использовать как скринсейвер. Возможно чуть позже я даже оформлю ее как скринсейвер, если мне, конечно, расскажут, как это сделать(я о том, чтоб кнопочка "настройка" на вкладке "заставка" вызывала настройки моей проги и чтоб предпросмотр отображался)

Настройки ИНИ файла:

[GlOptions]
Slower=40 -замедлитель
ShowCoords = 0 -показывать или нет координаты камеры
FullScreen=1 -полноэкранный/окно
ParticleCount=500 -количество частиц в вызрыве
[CameraOptions]
CameraX=500 -начальное положение камеры
CameraZ=500
ViewingDistance = 1200 -насколько далеко она смотрит
[ExplodeOptions]
ExplosionX = 0
ExplosionY = 0
ExplosionZ = 0
RandomPos = 1 -Помещать взрыв в случайную позицию.

Разделы
[CameraOptions]
[ExplodeOptions]
вообще-то можно совсем не трогать. Основное - в [GlOptions]
Приближать/удалять - колесиком мышки либо стрелками клавиатуры
У вас нет доступа для просмотра вложений в этом сообщении.

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 08.03.2005 (Вт) 17:49

Красиво, даже очень! Только, я бы сказал, маловато частиц летит вверх, чуть нереалистично. Искорки должны имхо образовывать сначала сферу (в проекции - круг), и только потом падать... И надобно чуть-чуть замедлить падение...

Пока, вроде, всё.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Re: Феерверк

Сообщение tyomitch » 08.03.2005 (Вт) 18:00

Ariman писал(а):В принципе, можно использовать как скринсейвер. Возможно чуть позже я даже оформлю ее как скринсейвер, если мне, конечно, расскажут, как это сделать(я о том, чтоб кнопочка "настройка" на вкладке "заставка" вызывала настройки моей проги и чтоб предпросмотр отображался)

http://bbs.vbstreets.ru/viewtopic.php?t=11931
Изображение

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 08.03.2005 (Вт) 18:01

Замедлить - всегда пожалуйста, на то вам и даден ИНИ файл, с его параметром Slower.

На самом деле, частицы и образовывают сферу. В этом легко убедится, если отрубить гравитацию и сделать их побольше.
А вот то, что вверх мало летит - не согласен.

Алгоритм проги можно описать так:

1) Располагаем частицы на единичной сфере ( с радиусом 1, для тех, кто в танке :wink: )
2) ищем направление начальной скорости, сообщенной взрывом - для этого, для каждой частицы считаем вектор, соединяющий центр единичной сферы и начальным положением частицы.
3) Вносим случайность, домножая полученный вектор на случайное число в заданных пределах

Вот так идет инициализация.

Ну а дальше - оно и понятно, просто баллистическая траектория - по X и Z ничего кроме начальной скорости, по Y - еще и g........

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 08.03.2005 (Вт) 18:06

Если кому надо - модуль отвечающий за физику могу выложить.
P.S. Писал на C++, так что любители бейсика не обольщайтесь :wink:

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 08.03.2005 (Вт) 18:25

Под замедлением я имел в виду несколько не то. Не общее замедление, а именно замедление падения вниз (скажем так, вариация g).

Ariman писал(а):В этом легко убедится, если отрубить гравитацию и сделать их побольше.

Кстати, как гравитацию-то отрубить?

Мне эта сфера напоминает в середине взрыва скорее нечто ромбовидное. :?

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 08.03.2005 (Вт) 18:30

Кстати, как гравитацию-то отрубить

Хе-хе, только из исходников :wink:

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 08.03.2005 (Вт) 18:36

Но то, что изначально - сфера, это я гарантирую.
Лучше всего созерцать сферу, когда вместо частиц с текстурой будут просто белые точки. Как, собсно, в начале и было.

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 08.03.2005 (Вт) 18:40

Это все в пространстве происходит, не забывай.
Так что возможно все это из-за ракурса...

При отключенной гравитации и отсутствии домножения координат векторов частиц на случайное число получаем то, что и ожидали - растущая и затухающая сфера........

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 08.03.2005 (Вт) 18:57

Вот.
Создаем в INI-файле раздел Advanced и пишем туда параметры.

Код: Выделить всё
[Advanced]
Gravity=0,980665
rndLowBorder=0
rndHighBorder=20


И играем настройками :wink:
P.S. если какой из параметров убрать, то прога возьмет значение по умолчанию.
Ах да, чуть не забыл - качайте новую версю, старой раздел Advanced - до лампочки :lol:
У вас нет доступа для просмотра вложений в этом сообщении.

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 08.03.2005 (Вт) 20:59

Внял Amedу, уже открыл среду разработки, хотле искать ошибки в проге... Но (моя интуиция меня бережет :wink: ) решил сначала попробовать из INI добиться нужного эффекта - так как я точно знал, что точки располагаются на СФЕРЕ.
Нашел.
Если уменьшить разброс скоростей, то все будет выглядеть лучше:

Код: Выделить всё
Gravity=0,4
rndLowBorder=15
rndHighBorder=25


Ну, гравитацию - это по желанию. А вот границы генерации случайного коеффициента для координат вектора скорости - это ИМХО оптимальное....
Да, заклинаю вас: не ставьте последние два параметра в ноль или в одинаковое значение! Поможет только CAD( не тот, который MATH, а тот, что тремя пальцами жмут :wink: )
P.S.
Что такое, в мой пост постюсь только я :?: :roll:


Вернуться в Наши проекты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 57

    TopList