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 | #41
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
NETRAT
offline
Опыт:
83,712Активность: |
чет я не вижу что бы у тебя получалась парабола...
сила тут нафиг никому не нужна - обьекту передается импульс а не на обьект действует сила, сила на него действует только одна - притяжения, а импульсов может быть много |
10.02.2009, 00:33 | #42
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Toadcop
offline
Опыт:
54,313Активность: |
короче мне реально насрать... но некаких "формул" для достижения плавных движений не надо =) порабола как раз за счёт форса и делаетса. мне лично всё время убивает когда юзают "формулу параболы" для движения снарядов...
Toadcop добавил: Цитата:
|
|
10.02.2009, 01:25 | #43
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
Цитата:
трения/сопротивления не всчет?) особенно когда пишешь симулятор гонок |
|
10.02.2009, 01:50 | #44
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
NETRAT
offline
Опыт:
83,712Активность: |
ScorpioT1000 чет я еще ни одного эмулятора силы трения и сопротивления в варкрафте не видел, ты бы еще написал про слабую ядерную силу и силу Лоренца. В исходном сообщении речь идет только о гравитационных силах.
Toadcop если вектором скорости ты описываешь импульс - единовременно приложенную к телу силу, то ты никак не опишешь постоянно действующую на тело силу - силу притяжения, если вектором ты описываешь постоянно действующие на тело силы - то ты не опишешь импульс - бросок, нуипотом - скорость это всего лишь производная ускорения, в твоей модели оно не учитывается, фактически ты описал только кусок подсчета координат для вывода их на экран по части плавных движений я с тобой согласен, впрочем, я уверен, что автор топика в курсе как нормализовать вектор... Да, я наконец-то понял чегой-ты накорябал, эта хрень может и будет стабильно работать, но если дополнить модель до той которая тут обсуждается, то у меня есть сомнения насечет скорости вычислений. Отредактировано NETRAT, 10.02.2009 в 02:17. |
10.02.2009, 02:11 | #45
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Toadcop
offline
Опыт:
54,313Активность: |
Цитата:
а споротивление это относительное свойство... т.е. вся зависит как ты его представиш (т.е. тоже можно постояно множить и тем самым объёт просто будет тормозитса) и т.п. Цитата:
как я понял здесь какой либо вектор, статик + динами форс (статик напр гравитацыя мы его не будет изменять в динамик форсе) динамик форс = стремление к какой либо точке. != направление. ну а скорость вычисления достаточно высокая тока вот всякие нормализацыии и т.п. "медленые" незнаю если хотите посмотреть на что то "крутое" то вот. http://epicwar.com/maps/30863/ |
||
10.02.2009, 02:27 | #46
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
MF
Что-то вокруг не так
offline
Опыт:
26,594Активность: |
какие бурны обсуждения!
Собственно никто от старичка движка ничего сверхьестественного не требует! А насчет парабол... даже по формулам он не будет плавной (движение то все равно расчитываеться дискретно), а расчитывать каждую координату по формулам, по-моему, даже дольше чем вариант с векторами... Ну хорошо, оставим в покое параболу... В одном из примеров-задач Toadcop'a, там где гномик бегает от летающих за ним сфер, движение тоже довольно таки просто реализуется... но тоже на векторах, при чем не будет это лагать. Посмотрю я на того кто станет реализовывать такое движение формулами... я даже не представляю какие формулы тут могут помочь |
10.02.2009, 05:43 | #47
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
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 | #48
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
Цитата:
+1 |
|
10.02.2009, 14:21 | #49
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
NETRAT
offline
Опыт:
83,712Активность: |
В два часа ночи, видимо, моск не в том направлении работал, пожалуй, вы правы насечет простоты исполнения, впрочем, я убежден что наличие в одной карте большого количества фич, сильно уменьшает производительность. Естественно, на тестовых картах наработок этого не видно, в любом случае, сейчас у меня нет рабочего места что бы что-то потестить и пояснить на примере. |
10.02.2009, 17:19 | #50
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
MF
Что-то вокруг не так
offline
Опыт:
26,594Активность: |
NETRAT
Я согласен что каждая наработка это путь к лагам. Причем как сказал Toadcop в какой то теме это еще и дорога к всевозможным багам и глюкам, но если очень хочеться или надо, то вектора это выход. Завтра все таки выложу пример, пока без дополнения статьи, просто голый пример. в моей наработке на движение была версия с прыжком, там прыжок введен для фана, но принцип тот же. |
10.02.2009, 17:53 | #51
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
MF
Что-то вокруг не так
offline
Опыт:
26,594Активность: |
Добавил пример движения по параболе, если будет интересно дополню статью информацией. |
11.02.2009, 07:22 | #52
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
Цитата:
зато я тестил много и имхо это чуть более чем наполовину зависит от "совметимости" систем, т.е. их совместного взаимодействия ну и от реализации еще ScorpioT1000 добавил: исправил оформление темы, а то сплошные заголовки - непонятно что из чего вытекает =) |
|
11.02.2009, 15:05 | #53
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Toadcop
offline
Опыт:
54,313Активность: |
Цитата:
1) не надо 2) лишние затраты ресурсов 3) + еще ряд "оптимизацый" // логических а не алгоритмических |
|
11.02.2009, 16:07 | #54
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Sergey
Старейший
offline
Опыт:
44,363Активность: |
MF_Andreich
Есть у меня одна наработка: Objector - сценарий, в котором имеются специальные jass-функции, упрощающие построение разного рода ломаных, кривых, поверхностей и сложных траекторий. Посмотреть можно здесь: http://xgm.guru/forum/showthread.php?t=2602 В архиве также есть текстовый файл со статьей, где я объясняю, как все это работает. Может быть, удастся создать общую статью об использовании геометрии в war3. Подумай. |
12.02.2009, 11:56 | #55
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Toadcop
offline
Опыт:
54,313Активность: |
+1 хороший набор функций |
12.02.2009, 15:12 | #56
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
adic3x
offline
Опыт:
108,439Активность: |
кста в последнем листинге из статьи стоит мб убрать бж_дегторад, и обьсянить, что туда нуно совать значение в радианах? бесит всетаки бж=) |
15.02.2009, 17:39 | #57
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
MF
Что-то вокруг не так
offline
Опыт:
26,594Активность: |
ADOLF
Хм... не вижу вселенского зла в bj_ константах, но пожелание читателей (не противоречащие мнению автора) закон. |
15.02.2009, 17:41 | #58
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
adic3x
offline
Опыт:
108,439Активность: |
Цитата:
зло не в константе, зло в том что бы хранить значение угла в градусах и по 100500 раз за проход цикла перемножать его для получения значения в радианах, а это как раз "узкое" место которое дб оптимизированно |
|
15.02.2009, 17:49 | #59
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
MF
Что-то вокруг не так
offline
Опыт:
26,594Активность: |
ADOLF
Проблема в том, что функции возвращающие всевозможные игровые углы работают в градах, а БЖ тригонометрия в радах... Так или иначе умножение проводить придеться. |
15.02.2009, 17:54 | #60
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|