XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Желтая пресса: обучающие статьи
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

 
Toadcop

offline
Опыт: 54,313
Активность:
лол ? xD ...
это делаетса так...
vec o1 = шарег
vec o2 = объёкт
update...
x=o2.x-o1.x
y=o2.y-o1.y
z=o2.z-o1.z
lng=sqrt(x*x+y*y+z*z)+0.001 lolol say NO to divided by zero :P
x=(x/lng)*o1.speed
y=(y/lng)*o1.speed
z=(z/lng)*o1.speed
короче это шаманство сначало нормализировала вектро направления для o1 а потмо установила на нужную длину "скорость"
теперь. двигаем.
o1.x=o1.x+x*period
o1.y=o1.y+y*period
o1.z=o1.z+z*period
а ну еще нужен форс... кстати выше приведёный пример тоже можно как форс расматривать... только надо его "аккамулировать" а точней добавлять к вектору движения а не посредствено к позицыи объекта.
если есть форс то так.
x,y,z - здесь являютса силой которая постояно влияет на объект тем самым он будет "ускорятса"
o1.vx=o1.vx+x*period
o1.vy=o1.vy+y*period
o1.vz=o1.vz+z*period
o1.x=o1.x+o1.vx*period
o1.y=o1.y+o1.vy*period
o1.z=o1.z+o1.vz*period
ну короче это самое просто движение... и ничего здесь не будет лагать даже при 150 объёктах не на сильный компах (2Ггц какойнить) с периодом 0.025 даже вроде...
Старый 10.02.2009, 00:17
NETRAT

offline
Опыт: 83,712
Активность:
чет я не вижу что бы у тебя получалась парабола...
сила тут нафиг никому не нужна - обьекту передается импульс а не на обьект действует сила, сила на него действует только одна - притяжения, а импульсов может быть много
Старый 10.02.2009, 00:33
Toadcop

offline
Опыт: 54,313
Активность:
короче мне реально насрать... но некаких "формул" для достижения плавных движений не надо =) порабола как раз за счёт форса и делаетса. мне лично всё время убивает когда юзают "формулу параболы" для движения снарядов...

Toadcop добавил:
Цитата:
а импульсов может быть много
- все импульсы = 1 вектор =) так же как и форсы...
Старый 10.02.2009, 01:25
ScorpioT1000
Работаем
offline
Опыт: отключен
Цитата:
сила на него действует только одна - притяжения

трения/сопротивления не всчет?) особенно когда пишешь симулятор гонок
Старый 10.02.2009, 01:50
NETRAT

offline
Опыт: 83,712
Активность:
ScorpioT1000 чет я еще ни одного эмулятора силы трения и сопротивления в варкрафте не видел, ты бы еще написал про слабую ядерную силу и силу Лоренца. В исходном сообщении речь идет только о гравитационных силах.

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

Отредактировано NETRAT, 10.02.2009 в 02:17.
Старый 10.02.2009, 02:11
Toadcop

offline
Опыт: 54,313
Активность:
Цитата:
трения/сопротивления
- это тоже есть. тока упрощеней (спецыально) а так напр землю можно учитывать как вектор сопротивления на фрейм. точней секунду трения. всё легко делаетса но ради производительности просто производитса множение на число >0 <1 =)
а споротивление это относительное свойство... т.е. вся зависит как ты его представиш (т.е. тоже можно постояно множить и тем самым объёт просто будет тормозитса) и т.п.


Цитата:
но если дополнить модель до той которая тут обсуждается, то у меня есть сомнения насечет скорости вычислений.


как я понял здесь какой либо вектор, статик + динами форс (статик напр гравитацыя мы его не будет изменять в динамик форсе) динамик форс = стремление к какой либо точке. != направление.
ну а скорость вычисления достаточно высокая тока вот всякие нормализацыии и т.п. "медленые"

незнаю если хотите посмотреть на что то "крутое" то вот.
http://epicwar.com/maps/30863/
Старый 10.02.2009, 02:27
MF
Что-то вокруг не так
offline
Опыт: 26,594
Активность:
какие бурны обсуждения!
Собственно никто от старичка движка ничего сверхьестественного не требует! А насчет парабол... даже по формулам он не будет плавной (движение то все равно расчитываеться дискретно), а расчитывать каждую координату по формулам, по-моему, даже дольше чем вариант с векторами... Ну хорошо, оставим в покое параболу... В одном из примеров-задач Toadcop'a, там где гномик бегает от летающих за ним сфер, движение тоже довольно таки просто реализуется... но тоже на векторах, при чем не будет это лагать. Посмотрю я на того кто станет реализовывать такое движение формулами... я даже не представляю какие формулы тут могут помочь
Старый 10.02.2009, 05:43
dk

offline
Опыт: 60,293
Активность:
1 алгоритм тоадкопа "притяжение к объекту" как я понял) Равномерное движение норм.

А вот смысл второго несовсем понятен относительно данной тематики... Это даже не равноускоренное, а движение с постоянно возрастающим ускорением.

А вобще в чем проблема с вычислениями броска предмета по параболе?
Равномерное движение по ху и равноускоренное по z.

o1.x = o1.x + speed.x
o1.y = o1.y + speed.y
o1.z = o1.z + speed.z
speed.z = speed.z + g //g - ускорение св. падения, в данном случае отрицательное...

Ну и проверку на достижение земли.

Цитата:
скорость это всего лишь производная ускорения

наоборот
Старый 10.02.2009, 11:33
ScorpioT1000
Работаем
offline
Опыт: отключен
Цитата:
А вобще в чем проблема с вычислениями броска предмета по параболе?

+1
Старый 10.02.2009, 14:21
NETRAT

offline
Опыт: 83,712
Активность:
В два часа ночи, видимо, моск не в том направлении работал, пожалуй, вы правы насечет простоты исполнения, впрочем, я убежден что наличие в одной карте большого количества фич, сильно уменьшает производительность. Естественно, на тестовых картах наработок этого не видно, в любом случае, сейчас у меня нет рабочего места что бы что-то потестить и пояснить на примере.
Старый 10.02.2009, 17:19
MF
Что-то вокруг не так
offline
Опыт: 26,594
Активность:
NETRAT
Я согласен что каждая наработка это путь к лагам. Причем как сказал Toadcop в какой то теме это еще и дорога к всевозможным багам и глюкам, но если очень хочеться или надо, то вектора это выход. Завтра все таки выложу пример, пока без дополнения статьи, просто голый пример.
в моей наработке на движение была версия с прыжком, там прыжок введен для фана, но принцип тот же.
Старый 10.02.2009, 17:53
MF
Что-то вокруг не так
offline
Опыт: 26,594
Активность:
Добавил пример движения по параболе, если будет интересно дополню статью информацией.
Старый 11.02.2009, 07:22
ScorpioT1000
Работаем
offline
Опыт: отключен
Цитата:
я убежден что наличие в одной карте большого количества фич, сильно уменьшает производительность. Естественно, на тестовых картах наработок этого не видно, в любом случае, сейчас у меня нет рабочего места что бы что-то потестить и пояснить на примере.

зато я тестил много и имхо это чуть более чем наполовину зависит от "совметимости" систем, т.е. их совместного взаимодействия ну и от реализации еще

ScorpioT1000 добавил:
исправил оформление темы, а то сплошные заголовки - непонятно что из чего вытекает =)
Старый 11.02.2009, 15:05
Toadcop

offline
Опыт: 54,313
Активность:
Цитата:
впрочем, я убежден что наличие в одной карте большого количества фич, сильно уменьшает производительность. Естественно, на тестовых картах наработок этого не видно,
это однозначно. =) я всегда строю "фичи" так что бы они не ставали картой =) поэтому в ТсХ нету физики и т.п. ибо
1) не надо
2) лишние затраты ресурсов
3) + еще ряд "оптимизацый" // логических а не алгоритмических
Старый 11.02.2009, 16:07
Sergey
Старейший
offline
Опыт: 44,363
Активность:
MF_Andreich
Есть у меня одна наработка:
Objector - сценарий, в котором имеются специальные jass-функции, упрощающие построение разного рода ломаных, кривых, поверхностей и сложных траекторий.

Посмотреть можно здесь:
http://xgm.guru/forum/showthread.php?t=2602

В архиве также есть текстовый файл со статьей, где я объясняю, как все это работает. Может быть, удастся создать общую статью об использовании геометрии в war3. Подумай.
Старый 12.02.2009, 11:56
Toadcop

offline
Опыт: 54,313
Активность:
+1 хороший набор функций
Старый 12.02.2009, 15:12
adic3x

offline
Опыт: 108,439
Активность:
кста в последнем листинге из статьи стоит мб убрать бж_дегторад, и обьсянить, что туда нуно совать значение в радианах? бесит всетаки бж=)
Старый 15.02.2009, 17:39
MF
Что-то вокруг не так
offline
Опыт: 26,594
Активность:
ADOLF
Хм... не вижу вселенского зла в bj_ константах, но пожелание читателей (не противоречащие мнению автора) закон.
Старый 15.02.2009, 17:41
adic3x

offline
Опыт: 108,439
Активность:
Цитата:
зла в bj_ константах

зло не в константе, зло в том что бы хранить значение угла в градусах и по 100500 раз за проход цикла перемножать его для получения значения в радианах, а это как раз "узкое" место которое дб оптимизированно
Старый 15.02.2009, 17:49
MF
Что-то вокруг не так
offline
Опыт: 26,594
Активность:
ADOLF
Проблема в том, что функции возвращающие всевозможные игровые углы работают в градах, а БЖ тригонометрия в радах... Так или иначе умножение проводить придеться.
Старый 15.02.2009, 17:54

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 11:49.