Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: velocity snapping
Defrag.ru Community > Gamez > Quake3 (Defrag)
Страницы: 1, 2
X8
Цитата(Nt.run @ 24.09.2011 - 19:48) *
Не вижу ничего подозрительного, точно так же он стрейфит в онлайне.

после 1300 ups у меня серьезно страдает аксель и не выходит набрать даже 50 ups за один джамп.
я уже серьезно думаю поверить великому голему, что без cgaz_hud'а ну нереально сделать 12.9 хотя бы, а играть с худом я даже привыкать не буду принципиально! не моё. отвлекает он сильно, имхо.
uN*DeaD!HOX
Цитата(X8 @ 25.09.2011 - 02:22) *
Цитата(Nt.run @ 24.09.2011 - 19:48) *
Не вижу ничего подозрительного, точно так же он стрейфит в онлайне.

после 1300 ups у меня серьезно страдает аксель и не выходит набрать даже 50 ups за один джамп.
я уже серьезно думаю поверить великому голему, что без cgaz_hud'а ну нереально сделать 12.9 хотя бы, а играть с худом я даже привыкать не буду принципиально! не моё. отвлекает он сильно, имхо.

Так и должно быть, даже если ты идеально стрейфиться, чем больше скорость, тем меньше аксель из-за ошибок округления значения ускорения, полученного по формуле, зависящей от угла направления мыши. Чем больше угол, тем больше округляется значение акселя и тем меньшее ускорение ты получаешь, вроде так, подробно здесь написано . Я посмотрел по твоей демке, ты достаточно точно попадаешь в нужные зоны, не знаю как ты это делаешь без cgaz, и даже без draw accel ? Но если ты так стрейфишься без худа, тебе он и не нужен )) Разве что даст пару упс, от которых пару сотых получишь)
Nt.jud4s
Не, округления там ни при чём. В идеальной модели без округлений ускорение всё равно падает при росте скорости, так физика Q3 устроена. Округления вносят в неё некоторый шум, но он бывает как в сторону уменьшения, так и в сторону увеличения.
X8
Цитата(uN*DeaD!HOX @ 25.09.2011 - 03:02) *
не знаю как ты это делаешь без cgaz, и даже без draw accel ?

без cgaz_hud, но с draw_accel
uN*DeaD!HOX
Цитата(Nt.jud4s @ 25.09.2011 - 04:02) *
Не, округления там ни при чём. В идеальной модели без округлений ускорение всё равно падает при росте скорости, так физика Q3 устроена. Округления вносят в неё некоторый шум, но он бывает как в сторону уменьшения, так и в сторону увеличения.

Что значит так физика устроена, дело должно быть в конкретных формулах, ведь это программа, только никто толком не говорит эти причины, возможно и не знает, а интересно было бы узнать.
p.s. А все разобрался, аксель зависит от направления вектора тяги относительно карты и сделал предложение улучшить худ )) http://www.q3df.org/board/viewtopic.php?f=...mp;p=4114#p4114
glm
Цитата(X8 @ 25.09.2011 - 04:51) *
Цитата(uN*DeaD!HOX @ 25.09.2011 - 03:02) *
не знаю как ты это делаешь без cgaz, и даже без draw accel ?

без cgaz_hud, но с draw_accel

да впринципе он работает также, т.е. основан на том же приницпе
только вот имхо глючный слегка, иногда вабще не то показывает, да еще и есть не очень понятный параметр - df_accel_scale, по дефолту стоит -1.2
непонятно откуда взялось это значение, помоему даже со значением 1 или 1.2 получше работает
Nt.jud4s
2uN*DeaD!HOX
Вот тебе график максимального ускорения за фрейм без учёта округлений:


Надо понимать, что вектор акселя, поведение которого описано в той статье, не является реальным тангенциальным ускорением. И даже вообще ускорением не является, когда после его прибавления скорость в соответствующем направлении превосходит g_speed. Это вспомогательная величина.
uN*DeaD!HOX
я проверил формулу hk на практике, она работает и скрин приложил, когда вектор тяги находится в оптимальной зоне скорость растет быстрей всего
Nt.jud4s
Если ты внимательно посмотришь, что написал <hk>, то увидишь, что по вертикальной оси он отложил "velocity gain in percent of maximum without snapping". Так вот речь о том, что этот самый максимум без скачков нефигово падает при росте скорости, поэтому хоть ты на 90 процентов от него ускоряйся, хоть на 115, всё равно на большой скорости будешь ускоряться плохо.

А скачки акселя со скоростью никак непосредственно не связаны, а связаны с направлением относительно осей карты, так что плохое ускорение на больших скоростях не объясняют. Можно бежать под углом к осям, чтобы округление вверх срабатывало при стрейфе, а всё равно ускоряться после 1300 так же, как на 600-700, не выйдет.
uN*DeaD!HOX
Цитата(Nt.jud4s @ 25.09.2011 - 14:09) *
Если ты внимательно посмотришь, что написал <hk>, то увидишь, что по вертикальной оси он отложил "velocity gain in percent of maximum without snapping". Так вот речь о том, что этот самый максимум без скачков нефигово падает при росте скорости, поэтому хоть ты на 90 процентов от него ускоряйся, хоть на 115, всё равно на большой скорости будешь ускоряться плохо.

А скачки акселя со скоростью никак непосредственно не связаны, а связаны с направлением относительно осей карты, так что плохое ускорение на больших скоростях не объясняют. Можно бежать под углом к осям, чтобы округление вверх срабатывало при стрейфе, а всё равно ускоряться после 1300 так же, как на 600-700, не выйдет.

Тогда собственно проблем нет. Я тебя понял, пусть аксель так сильно не растет на больших скоростях, главное с этим никто ничего поделать все равно не может, а вот направлять вектор тяги в правильные углы относительно карты мы можем, поэтому мое предложение добавить эти зоны на худ надеюсь сбудутся.
Nt.jud4s
Добавить учёт округлений на хад - может и ничего идея, да. Просто разговор начался с того, что стрейфить на большой скорости сложно, а они тут ни при чём.
uN*DeaD!HOX
Цитата(Nt.jud4s @ 25.09.2011 - 14:17) *
Добавить учёт округлений на хад - может и ничего идея, да. Просто разговор начался с того, что стрейфить на большой скорости сложно, а они тут ни при чём.

Ну да я разговор сменил, извини если че)
А я прошу внести в хад не учет округлений совершенно, а показ настоящих зон акселерации, которые зависят от направления вектора тяги относительно карты, не знаю как в drawaccel, но на сторонах света cgaz этой инфы нынче нет.
Nt.jud4s
Ну так на самом деле просто придётся разбить старые зоны по границам округлений. Потому как от старых никуда не деться, там теоретическое ускорение разное, а в новых оно на разные коэффициенты домножается.
uN*DeaD!HOX
Цитата(Nt.jud4s @ 25.09.2011 - 14:32) *
Ну так на самом деле просто придётся разбить старые зоны по границам округлений. Потому как от старых никуда не деться, там теоретическое ускорение разное, а в новых оно на разные коэффициенты домножается.

Поэтому я думаю что это не сложно будет сделать в худе, а польза от этого существенная, зная точно зону с максимальным коэффициентом домножения будет легче понимать как направлять вектор тяги в нее. Кстати, может быть уже сейчас это можно сделать? Я прсто в коде не секу ))
Nt.run
Эти зоны как раз отражают то, что получается после округления.

Вот более наглядный график, на котором видно неокруглённое ускорение и то, как оно округляется:


Кстати, идея с газхудом не нова smile.gif
Цитата из readme к нему:
Цитата
in later/next versions this will show you many sectors, each representing a possible acceleration value (there are 24 of them at 8ms)
uN*DeaD!HOX
Идею с худом я предложил сейчас т.к. только сегодня до конца понял смысл работы округления и не понимал суть ранних предложений. Nt.run респект за картинку, от куда ты ее взял?
Nt.run
Взял и сделал smile.gif Вот ещё парочка, сравнение обычного стрейфа в воздухе со стрейфом с хейстом и на земле:

С хейстом зон получается столько же, но расположены они по другому
http://dl.dropbox.com/u/26273861/snap_n-h.png

А на земле гораздо больше, поэтому округление почти не заметно
http://dl.dropbox.com/u/26273861/both.png
uN*DeaD!HOX
Цитата(Nt.run @ 25.09.2011 - 14:47) *
Взял и сделал smile.gif Вот ещё парочка, сравнение обычного стрейфа в воздухе со стрейфом с хейстом и на земле:

С хейстом зон получается столько же, но расположены они по другому
http://dl.dropbox.com/u/26273861/snap_n-h.png

А на земле гораздо больше, поэтому округление почти не заметно
http://dl.dropbox.com/u/26273861/both.png

ой точно, тогда cgaz под хейст и под землю нужен разный.
А формулу можешь точную дать?
45 градусов вроде на одной линии с 11.3 - 12.4, но при этом hk рисует что там меньше аксель.
Nt.jud4s
Цитата(Nt.run @ 25.09.2011 - 14:39) *
Эти зоны как раз отражают то, что получается после округления.
А, ну да, тупанул. Если бы не оно, гладкая фигня была бы, а не с зонами и изломами между ними.
uN*DeaD!HOX
а я раньше замечал что если направление движение со старта карты не вдоль одной сторон света, то скорость набирается медленнее, теперь наконец увидел логическое обоснование )
Nt.run
Цитата
А формулу можешь точную дать?
Так формула проста - берётся окружность с радиусом 2.56 и координаты её точек округляются до целых, места где результат меняется - границы зон.

Цитата
45 градусов вроде на одной линии с 11.3 - 12.4, но при этом hk рисует что там меньше аксель.

На графике hk показаны просто абсолютные значения, которые в итоге добавляются к скорости

Вот как-то так.

Но это не значит что будет больше скорости если стрейфить именно в эту зону на 11.3 - 12.4, будет просто быстрее набираться боковая скорость, которая всё равно вся уйдёт на следующем прыжке.
Эта маленькая зона действительно полезна только на очень больших скоростях, например в воллбагах.
uN*DeaD!HOX
Так, есть еще одна проблема, допустим скорость 1500, вектор тяги направлен ровно на север карты 0 градусов, курсор находится в зоне акселерации близко к светлозеленой области, но скорость растет до определенного предела и останавливается, почему?
Нажмите для просмотра прикрепленного файла
Из практики я знаю что на большой скорости корректировку вектора тяги необходимо осуществлять кнопкой вперед и чем больше скорость тем дольше это необходимо делать, почему-то из-за этого аксель дается самый большой и прямую карту можно пройти максимально быстро. Теоретически обосновать я не знаю как это, например я думал это необходимо просто для того чтобы поместив вектор тяги в оптимальную зону относительно карты, округление акселя шло в большую сторону, поэтому решил попробовать не пользоваться кнопкой вперед для коррективки, но на этой скорости, после набора определенного значения акселя, скорость вообще перестает набираться. Неужели есть банально предел междупрыжковой акселерации с рисунка.

Но ведь если это действительно так, значит на большой скорости есть лишнее время, за которое время вообще не набирается, а значит его можно потратить с умом, например направив тягу в самую оптимальную зону округления 11.3 - 12.4 !
Все это еще должно быть связано с тем что нельзя набрать скорость вдоль стены больше 1625
Nt.run
Так, всё сначала smile.gif
Забей на ту маленькую зону около 11 градусов, на таких скоростях она не сильно важна.

Вот картинка про стену и про то, почему нельзя разогнаться больше 1625

Стрелка - направление скорости. В серой зоне газхуда ничего не происходит, в зелёной мы ускоряемся. Но тут получается что можно ускоряться только в той зоне, которая даёт округление в ноль.
Чтобы этого избежать, надо повернуть слегка в сторону:

Тут уже можно ускоряться вперёд, с ускорением в 1 юнит/(с*фрейм)

На совсем маленьких скоростях для ускорения больше места, там и ускоряться можно быстрее:

Вот тут даже можно немного ускоряться со скоростью в 2 упса за фрейм
glm
т.к. в теме "demos upload!" пошел жестокий оффтоп, то переношу сообщения сюда
Effect
ЛОЛ,это каким задротом надо быть чтобы использовать матан для дефрага biggrin.gif
glm
Графики хороши, вот я рану уже предложил сдлеать анимационный ролик с вектором вместо светлозеленной полоски, должно быть очень наглядно smile.gif
ts*z@p@dLo_ru
И правда ребятам заняться нечем=)
uN*DeaD!HOX
Теперь понятно, я думал что это именно вектором тяги надо попадать в эти углы, которые потом округляются smile.gif Оказывается это надо чтобы зоны акселерации ориентировались относительно карты правильным образом, а чтобы они так ориентировались, надо стрелкой вперед в cpm отводить вектор тяги в сторону. Теперь я созрел сделать видеотуториал по стрейфу smile.gif Осталось чуточку времени для этого найти.
В принципе в cgaz большой пользы даже не будет от внедрения этих зон, сейчас уже есть разметка каждые 45 градусов, и от каждой полоски оптимальная зона находится на расстоянии где-то 10 градусов.
Теперь есть ответ на мой вопрос выше, он в этой картинке:
Nt.run
А я типа не ответил? smile.gif
И твоя картинка не совсем верна, т.к. у тебя там фуллбит и вектор тяги смещён на 45 градусов.
uN*DeaD!HOX
Цитата(Nt.run @ 25.09.2011 - 20:11) *
А я типа не ответил? smile.gif
И твоя картинка не совсем верна, т.к. у тебя там фуллбит и вектор тяги смещён на 45 градусов.

у меня CPM, все там верно, я наложил по картинке hk. Вектор тяги почти ровно на 0 градусов, а прицел не дотягивает до зеленой области с хорошим округлением.
Nt.run
Наложил верно, выводы сделал верные (почти), итоговую картинку сделал неверно. Именно потому, что у тебя там cpm, смотреть надо на зоны, которые находятся на 45 градусов направо от того, куда смотришь ты. Ведь нажаты две кнопки - wd - по диагонали вперёд и направо, значит и тяга направлена точно так же относительно взгляда.
uN*DeaD!HOX
Цитата(Nt.run @ 25.09.2011 - 21:00) *
Наложил верно, выводы сделал верные (почти), итоговую картинку сделал неверно. Именно потому, что у тебя там cpm, смотреть надо на зоны, которые находятся на 45 градусов направо от того, куда смотришь ты. Ведь нажаты две кнопки - wd - по диагонали вперёд и направо, значит и тяга направлена точно так же относительно взгляда.

Не понял, нарисуй плиз сам )
Или объясни по другому, у нас есть вектор тяги, вектор скорости, направление прицела, что из этого всего мы направляем в угол на графике.
Если именно вектор тяги и он направлен на 45 градусов относительно вектора скорости, то по сути все тоже самое будет на графике просто со смещением на 45 градусов. А раз зоны оптимального округления примерно одинаковы каждые 45 градусов, то смысл картинки почти тот же.
Nt.run

Чёрная стрелка - вектор скорости, серая - направление прицела, оранжевая - вектор тяги.
Бледный газхуд - то, что видно на экране, яркий - то, как расположены зоны для самого вектора тяги.

Цитата
А раз зоны оптимального округления примерно одинаковы каждые 45 градусов, то смысл картинки почти тот же.
Каждые 45 градусов они отражаются зеркально, а полностью повторяются только каждые 90.
uN*DeaD!HOX
Цитата(Nt.run @ 25.09.2011 - 21:31) *
Чёрная стрелка - вектор скорости, серая - направление прицела, оранжевая - вектор тяги.
Бледный газхуд - то, что видно на экране, яркий - то, как расположены зоны для самого вектора тяги.

Ну это понятно, только ты не ответил что из этого всего надо направлять в угол относительно карты. Давай ближе к практике объясни на моей картинке как мне понять почему в данный момент скорость растет и очень быстро, видимо округление идет хорошее, но как это увидеть, хотябы приблизительно.
Nt.run
Плохой скрин smile.gif Почти не видно что справа. Но он очень похож на мою последнюю картинку, ситуация почти такая же, поэтому нарисую такие же стрелки
uN*DeaD!HOX
Т.е. вектор тяги относительно прицела на 45 градусов значит отличается?
Если да, то для простоты можно сделать вывод что важно направлять прицел в углы относительно карты на 0-12, 38-52, 78-102, 128-142, 168-180... градусов, т.е. от нуля плюс минус 12 каждые 45 градусов. Если еще грубее, то надо мысленно разбить карту на 8 направлений от ровной стороны карты каждые 45 градусов и стрейфиться так, чтобы курсор попадал примерно в эти направления, именно в этих углах акселерация высокая. Но это правило работает лишь в дополнению к стандартным правилам стрейфа.
Nt.run
Цитата
Т.е. вектор тяги относительно прицела на 45 градусов значит отличается?
Да, если стрейфить фуллбитом.
uN*DeaD!HOX
Цитата(Nt.run @ 25.09.2011 - 22:31) *
Цитата
Т.е. вектор тяги относительно прицела на 45 градусов значит отличается?
Да, если стрейфить фуллбитом.

логично спросить а если халфом? )))
Nt.run
Цитата
логично спросить а если халфом? )))

В ту сторону где нажаты две кнопки отличается на 45, в другую - на 90. smile.gif Будет полностью совпадать только если стрейфить одной лишь кнопкой вперёд.
glm
Достаточно посмотреть демку setup'a на w3spgaz_strafes middle lane, там наглядно видно куда, как и что направлять в каждом фрейме и при каждом упсе.
aRCHI
эмм а как ети чертежи повлеяют на мой стрейф?=))
uN*DeaD!HOX
Цитата(aRCHI @ 25.09.2011 - 23:06) *
эмм а как ети чертежи повлеяют на мой стрейф?=))

Ну я написал жирным шрифтом чуть выше
Enter
кхм..
я фигею от того что вы нарисовали
как я понял, для того чтобы нормально стрейфиться, мало точно направлять прицел в ярко зеленую полоску худа (худ оказывается врет нам)
надо еще направлять в определенные градусы компаса. (узнал об этом только сейчас)
отсюда вопрос
как мне на компасе найти эти нужные градусы?
я же не могу рандомно повернуть мышу и попасть точно туда куда надо (например в нужные 12 градусов)
тем более как я понял при различном стрейфе эти градусы меняются. 8\
ждем новую версию худа с выделенными ярко-(розовым?) цветом нужными градусами?
uN*DeaD!HOX
Цитата(Enter @ 26.09.2011 - 00:21) *
кхм..
я фигею от того что вы нарисовали
как я понял, для того чтобы нормально стрейфиться, мало точно направлять прицел в ярко зеленую полоску худа (худ оказывается врет нам)
надо еще направлять в определенные градусы компаса. (узнал об этом только сейчас)
отсюда вопрос
как мне на компасе найти эти нужные градусы?
я же не могу рандомно повернуть мышу и попасть точно туда куда надо (например в нужные 12 градусов)
тем более как я понял при различном стрейфе эти градусы меняются. 8\
ждем новую версию худа с выделенными ярко-(розовым?) цветом нужными градусами?

Градусы не меняются, диапазоны куда нужно направлять курсор по возможности относительно ровной стороны карты 0-12, 38-52, 78-102, 128-142, 168-180... градусов, т.е. от нуля плюс минус 12 каждые 45 градусов. В них ошибка округления идет в большую сторону, поэтому ускорение больше. Надо мысленно разбить карту на 8 направлений от ровной стороны карты каждые 45 градусов и стрейфиться так, чтобы курсор попадал примерно в эти направления, именно в этих углах акселерация высокая. Это правило работает в дополнение к обычной техники стрейфа. В большинстве случаев карты не позволяет прямо таки активно юзать эту фишку, это эффективно на картах более открытых.
Возможно и будет новая версия худа, до конца не ясно стоит ли делать, а если делать то как лучше, hk думает объединить эти полоски в одну, но тогда будет возможно не так удобно.
Enter
Цитата(uN*DeaD!HOX @ 25.09.2011 - 20:26) *
Градусы не меняются,

Цитата(Nt.run @ 25.09.2011 - 18:36) *
В ту сторону где нажаты две кнопки отличается на 45, в другую - на 90.

так меняются или нет при различном стрейфе??

Цитата(uN*DeaD!HOX @ 25.09.2011 - 20:26) *
Надо мысленно разбить карту на 8 направлений от ровной стороны карты каждые 45 градусов и стрейфиться так, чтобы курсор попадал примерно в эти направления,

что?? blink.gif
я так нифига не пойму как надо что делить и куда смотреть
uN*DeaD!HOX
Цитата(Enter @ 26.09.2011 - 01:05) *
Цитата(uN*DeaD!HOX @ 25.09.2011 - 20:26) *
Градусы не меняются,

Цитата(Nt.run @ 25.09.2011 - 18:36) *
В ту сторону где нажаты две кнопки отличается на 45, в другую - на 90.

так меняются или нет при различном стрейфе??

Цитата(uN*DeaD!HOX @ 25.09.2011 - 20:26) *
Надо мысленно разбить карту на 8 направлений от ровной стороны карты каждые 45 градусов и стрейфиться так, чтобы курсор попадал примерно в эти направления,

что?? blink.gif
я так нифига не пойму как надо что делить и куда смотреть

Я еще сделаю видеотуториал, где расскажу о теории стрейфа, в том числе о velocity snapping. В видео это намного проще объяснить, сразу показывая.
Ну а пока вот так объяснию:
Беру любую карту, например df_train, провожу мысленно линии с севера на юг, с запада на восток, и по диагонали, т.е. через 45 градусов у меня из центра 8 направлений. Центр не важно где, из любой точки на карте, главное соблюдать параллельность любой из нарисованной линии.
Нажмите для просмотра прикрепленного файла
На худе df_hud_cgaz "5" эти направления обозначены так:
Нажмите для просмотра прикрепленного файла
Так вот когда ты стрейфишься по обычной теории стрейфа, которая есть в школе фарша и пытаешься попадать в наилучшие зоны акселерации, полученная акселерация на самом деле не является окончательной. Полученные значения должны еще округлиться, а округляются они по сложной системе. Если не вдаваться в подробности, по упрощенной схеме можно сказать что когда ты направляешь свой прицел вдоль 8 направлений с отклонением от каждого направления плюс минус 12 градусов, то полученный аксель округляется в большую сторону, например до 2ups за фрейм, а в любых других направлениях округлится в меньшую сторону, до 1ups за фрейм.
psych
вы такие задроты . а я и не знал... но спасибо за разъяснения biggrin.gif
Mntr
на практике бы разницу увидеть biggrin.gif
glm
А тем временем gaz спер идею у хокса. Совсем уже обнаглел, своего сам ниче не может придумать ph34r.gif
uN*DeaD!HOX
ХОЧУУУУ!!! Голем, ну ты как всегда скромен на подробности!
Кстати, полосок в принципе достаточно таких тонких, можно бы и другие такими сделать )
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Русская версия IP.Board © 2001-2024 IPS, Inc.