Просмотр полной версии : Баг-репорт: обработка сигнала джойстика в Ил2
Если коротко - у самого лучшего авиасимулятора Второй мировой самый бажный алгоритм ввода сигнала от джойстика.
Такой вывод был сделан мной на основе изучения откликов в меню "Устройства ввода" программы Ил2.
В прикреплённом рисунке приведены алгоритмы преобразования сигнала от джойстика (Yджой) в сигнал отклонения РУС (Yрус). Далее перечислю основные недостатки реализованой сейчас в Иле схемы:
1) Неправильный тип мёртвой зоны. У мёртвой зоны, реализованой сейчас в иле, имеет место скачёк выходного сигнала при переходе через порог мёртвой зоны. Это неприемлимо. Получается значительный рывок самолёта при мизерном перемещении джойстика в районе порога. И этот рывок получается тем боьше, чем больше величина мёртвой зоны, выставленная в настройках.
2) Мёртвая зона расположена после фильтра, который выпоняет сглаживание. Такое расположение - неправильное. Мёртвая зона должна находиться перед сглаживанием. Иначе получается то, что получается: попробуйте в меню "Устройства ввода" поставить на тангаж максимальные сглаживание и мёртвую зону, потом быстро перемещайте джойстик от верхнего упора до нижнего и следите за зелёным маркером, показывающим положение РУС. Заметели? Вместо того, чтобы быстро и безостановочно пройти центр, зелёный маркер замирает в нуле на продолжительное время. Управлять самолётом при такой передаточной функции довольно таки тяжело будет ;).
3) Зачем введено условие, что при сигнале джойстика, точно равном нулю, сигнал РУС тоже сразу, скачком, переключается в нуль? Вот это совершенно непонятно. Во первых при, этом сразу отменяется действие сглаживания. Но самое ужасное, что сумма, накопленная в фильтре сглаживания не сбрасывается при этом в нуль. Поэтому, когда потом джойстик сходит с нуля, выходной сигнал схемы, то есть положение РУС, становиться таким, каким он был до установления сигнала джойстика в нуль. Для илюстрации этого кашмарного эффекта нужно проделать следующее: в меню "устройства ввода" установить на ось тангажа нулевую мёртвую зону и максимальное сглаживание. Далее, полностью взять джойстик на себя, затем быстро переместить точно в нулевое положение. Потом переместить джойстик от себя - вы увидете, что в первый момент зелёный маркер РУС метнулся совершенно в противоположную сторону, на запомненное на момент установки в нуль значение.
Последний пункт, дамы и господа, офигенно серьёзный баг, и касается он в первую очередь владельцев высокоточных джойстиков, которые позволяют без дребезга выставить нулевое положение. Мой Майкрософт FF2, например. Я сколько себя помню, наблюдаю нездоровое поведение своего джойстика в районе нуля.
В принципе, я понимаю, что имел в виду программист, написав первые два бага. Но он был не прав. И тем более он был не прав, программируя третий баг. Ну, хоть бы сумму фильтра сбрасывал в нуль, что ли.
В итоге, получается, что пользоваться штатными сглаживанием и мёртвой зоной, предоставляемыми игрой, по-просту нельзя.
aeropunk
28.10.2005, 23:00
Думаю, сюда же стоит присовокупить непонятки с отрицательными значениями сглаживания.
Можно подождать недельку, может быть кто-нибудь еще что-нибудь найдет. Затем этот баг-репорт обязательно нужно будет отправить по адресу PF@1c.ru
Поскольку ты сделал этот обзор, создал тему, тебе и отсылать. :)
Думаю, сюда же стоит присовокупить непонятки с отрицательными значениями сглаживания.
Да нет там никаких непоняток. Там апериодический фильтр на снлаживании имеет формулу что-нибудь вроде:
S = S + (Yджой - S)*((125 - Сглаживание)/125)*dt;
Yджой - вход сглаживающего звена;
S - выход сглаживающего звена;
Сглаживание - настройка оси, %;
dt - длительность цикла вычисления, сек.
Вот и получается, что при отрицательных значениях сглаживания растёт множитель рассогласования входа и выхода. Поэтому, при каком то значении сглаживания численная схема теряет устойчивость и её выход начинает носиться вокруг входного сигнала.
С другой стороны, получается, что даже при сглаживании = 0 фильтр не отключается, а просто имеет достаточно маленькую постоянную времени. Тем не менее этого хватает, чтобы проявлялся эфект, описанный в предыдущем сообщении мной в пункте 3.
Вот оно что. Теперь понятно почему при точном прицеливании, самолет вдруг дергается ни с того ни с сего. Спасибо! А то я все на джой грешил.
А не подскажете еще, почему при подаче РУДа до упора, тяга как правило останавливается на 109%? У меня уже третий джой (все разных фирм) но картина не меняется. Подозреваю что и здесь тоже косяк в самом - Иле.
Tony_1982
29.10.2005, 14:21
А мне не понятно назначение этого блока "передаточная функция+демпфирование" в принципе... Какую реальную механическую систему самолёта она моделирует? И вообще, выходной сигнал (эти самые бегающие кубики) - это что? Положение РУС виртуального самолёта, или уже положение управляющих поверхностей? Или это всего-лишь помощь владельцам глючных девайсов и никакого отношения к авиации это не имеет (по крайней мере к ВВ2)?
Tony_1982
29.10.2005, 14:24
Если действительно существуют баги, описаные Пакманом - ставим всё по 100% и отключаем сглаживание+мёртвая зона - и нет проблем?
Если действительно существуют баги, описаные Пакманом - ставим всё по 100% и отключаем сглаживание+мёртвая зона - и нет проблем?
кхе кхе :ups: :rolleyes: ;) :D
спасибо за научную формулировку.
многие непонятки теперь прояснились, все эти дергания при сглаживании 100 и щадящих кривых.
сглаживание передвинул до 50, а МЗ вообще убрал (добавил в маппере), кривые оставил прежние.
теперь нет рывков на взлете да и целиться можно без мандража.
Молодец ,Pakman ! Я тоже чуйствовал все время что с управлением в ИЛе что-то не так ,но также продолжал грешить на джой ,до тех пор пока не заимел Microsoft precision2 (гляжу в калибровке -не дребезжит ,собака,аж не верится ,а в игре -скачок ближе к центру(меньше правда чем на любом другом джое ,но СКАЧОК))Как-то мысля раньше не поднималась грешить на любимый сим (ведь алгоритм обработки сигнала с джойстика -это же одна из основных составляющих станового хребта симулятора -наравне с ФМ) Очень надеюсь на то что данная проблема будет доведена до разработчиков и внесены соответствующие изменения ,либо будет получено официальное опровержение всего вышеизложенного !
MaxPayneRUS
29.10.2005, 16:31
Вот оно что. Теперь понятно почему при точном прицеливании, самолет вдруг дергается ни с того ни с сего. Спасибо! А то я все на джой грешил.
А не подскажете еще, почему при подаче РУДа до упора, тяга как правило останавливается на 109%? У меня уже третий джой (все разных фирм) но картина не меняется. Подозреваю что и здесь тоже косяк в самом - Иле.
Это косяк джойстика и калибровки, лечится просто при калибровке не доводи регулятор тяги до крайнего значения (чуть чуть) и в игре будешь иметь гарантированно 110%, проверено
MaxPayneRUS
29.10.2005, 16:34
А мне не понятно назначение этого блока "передаточная функция+демпфирование" в принципе... Какую реальную механическую систему самолёта она моделирует? И вообще, выходной сигнал (эти самые бегающие кубики) - это что? Положение РУС виртуального самолёта, или уже положение управляющих поверхностей? Или это всего-лишь помощь владельцам глючных девайсов и никакого отношения к авиации это не имеет (по крайней мере к ВВ2)?
ни положение РУС ни положение рулей влияние на полет самолета в игре не оказывают, они вычисляются и рисуются у же после того как траектория самолета будет обсчитана и поправлена, судить по этим делам о перемещении джоя можно только косвенно
MaxPayneRUS
29.10.2005, 16:49
Думаю, сюда же стоит присовокупить непонятки с отрицательными значениями сглаживания.
как только вы расскажете КАК увидеть разницу между сглаживанием 0 и -50, а то какие то домыслы одни, смотрят в черный квадрат малевича и рассказывают что видят там что то кроме черного квадрата
:D
Ну, разве адрес для баговболше не работает?
MaxPayneRUS
29.10.2005, 17:03
1) Неправильный тип мёртвой зоны. У мёртвой зоны, реализованой сейчас в иле, имеет место скачёк выходного сигнала при переходе через порог мёртвой зоны. Это неприемлимо. Получается значительный рывок самолёта при мизерном перемещении джойстика в районе порога. И этот рывок получается тем боьше, чем больше величина мёртвой зоны, выставленная в настройках.
дык тут надо выбирать или иметь настройки и кривых отклика и мертвой зоны но при этом учитывать некоторые тонкости или настройку мертвой зоны исключить вовсе и дело тут не в фильтре, просто устанавливая мертую зону ты грубо отсекаешь N значений начиная с центра, но не забывай что кривые отклика на значении N уже совсем не нулевые, отсюда и скачок, соответственно ставить мертвую зону нужно совместно с кривыми отклика, вернее ТОЛЬКО кривыми отклика :), я собсна так и делаю давно уже, к примеру все на сто а первый на ноль, мертвая зона 10 процентов, причем таким методом меньше 10 процентов мертвую зону сделать нельзя, таким образом было бы логично что бы настрока мертвой зоны регулировала бы мертвую зону в пределах 10 процентов хода, все остальное можно добавить кривыми отклика, а если делать все по уму то расчет кривых, сглаживания и мертвой зоны придеться полностью переписывать
MaxPayneRUS
29.10.2005, 17:12
Да нет там никаких непоняток. Там апериодический фильтр на снлаживании имеет формулу что-нибудь вроде:
S = S + (Yджой - S)*((125 - Сглаживание)/125)*dt;
Yджой - вход сглаживающего звена;
S - выход сглаживающего звена;
Сглаживание - настройка оси, %;
dt - длительность цикла вычисления, сек.
не совсем так, фильтр сглаживания там усредняет N последовательных значений полученных от джоя, причем значение N и есть количество этих значений, чем больше N тем точнее сглаживание, но больше запаздывание фильтра, вон Орион давал ссылку на описания цифровых фильтров сглаживания, оттуда ясно что сглаживание 10 это к примеру усреднить сигнал используя 10 последовательных значений, на выходе запаздывание в итоге на 10 этих значений, но вот как усреднить -10 или -50 значений :) я понимаю что питерчкие студенты сильны в теории, но усреднять значения которые еще не поступили это машину времени надо, мож она есть а я от жизни отстал :) питерские студенты изобрели, гы гы
Tony_1982
29.10.2005, 17:13
... соответственно ставить мертвую зону нужно совместно с кривыми отклика, вернее ТОЛЬКО кривыми отклика :), я собсна так и делаю давно уже, к примеру все на сто а первый на ноль, мертвая зона 10 процентов...
Верно подмечено!
как только вы расскажете КАК увидеть разницу между сглаживанием 0 и -50, а то какие то домыслы одни, смотрят в черный квадрат малевича и рассказывают что видят там что то кроме черного квадрата ок, как просили -
и16, 100%, оффл, джой - кот на марсах, педули ВКБ.
настройки кривых в иле - все по сто, мз ила в 0, кривые кота линейны, мз - 3% по крену и тангажу, 5% - по рысканью.
сглаживание ила - "0", делаем на и16 вираж левый, рус на ~70-80% на себя, скорость ввода ~320кмч, высота на уровне моря*), крен под 80 - на 240кмч ишачка выворачивает вправо, сталл, конец.
сглаживание - "-70", тоже самое что и выше, спокойно довираживаем до 200-220 кмч, после чего следует завал на левую полуплоскость, легко выправляемый педулями.
и153. климб от земли.
сглаживание "0" - на 140-150 кмч крафт опускает нос с заваливанием.
сглаживание - "-70" - спокойно климбимся на 120-110 кмч с легким правым креном со скоростью 10-15 м/с по прибору (10 м/с по девлинку)
или руки у мя кривые или котяра, хыхыхыхы
про кривую реализацию мз ила - мз=3% ила, идем в крене 10 град, отпускаем рус в 0 - крен начинает увеличиваться со скоростью ~[(пред значение рус)/с]
про дерганье - котяра мой может менять значение тангажа с 32766 на 32767 по кнопке, так вот - ил отрабатывает это изменение - т.е. и рус в кабине и управляющие плоскости на это изменение 1/32767 реагируют. ))))))
удачи.
Это косяк джойстика и калибровки, лечится просто при калибровке не доводи регулятор тяги до крайнего значения (чуть чуть) и в игре будешь иметь гарантированно 110%, проверено
Да пробовал я, и не раз! Не доводил и чуть - чуть, и больше, но не помогло. Причем при калибровке, шарик (курсор), доходит до упора без проблем а в Иле все те-же 109%. Вот и приходится несколько раз двинуть туда сюда рукоятку, чтобы получить желаемые 110%. За это время у меня поменялись и комп, и джои, а проблемка эта, так и осталась. И неужели, ни у кого больше такого не наблюдается?
но вот как усреднить -10 или -50 значений :) я понимаю что питерчкие студенты сильны в теории, но усреднять значения которые еще не поступили это машину времени надо, мож она есть а я от жизни отстал :) питерские студенты изобрели, гы гы
Я, скорее всего, соглашусь с Йо-Йо... Он сказал, что при отрицательном сглаживании АЧХ фильтра инвертируется по оси У. То есть имеем 1 КУ на полосе до частоты среза и >1 на полосе после.
Хотя и не исключаю свою догадку, что сглаживанием задается не только частота среза, но и добротность. Причем 0 - это не полное отсутвие сглаживания и добротность 1. Скорее всего, это какой-то минимальный минимум %)
Тогда в такой формулировке возможно таки наличие скользящего среднего, где 0 - "минимальный минимум" сглаживания.
MaxPayneRUS
29.10.2005, 18:38
ок, как просили -
и16, 100%, оффл, джой - кот на марсах, педули ВКБ.
настройки кривых в иле - все по сто, мз ила в 0, кривые кота линейны, мз - 3% по крену и тангажу, 5% - по рысканью.
сглаживание ила - "0", делаем на и16 вираж левый, рус на ~70-80% на себя, скорость ввода ~320кмч, высота на уровне моря*), крен под 80 - на 240кмч ишачка выворачивает вправо, сталл, конец.
сглаживание - "-70", тоже самое что и выше, спокойно довираживаем до 200-220 кмч, после чего следует завал на левую полуплоскость, легко выправляемый педулями.
и153. климб от земли.
сглаживание "0" - на 140-150 кмч крафт опускает нос с заваливанием.
сглаживание - "-70" - спокойно климбимся на 120-110 кмч с легким правым креном со скоростью 10-15 м/с по прибору (10 м/с по девлинку)
или руки у мя кривые или котяра, хыхыхыхы
про кривую реализацию мз ила - мз=3% ила, идем в крене 10 град, отпускаем рус в 0 - крен начинает увеличиваться со скоростью ~[(пред значение рус)/с]
про дерганье - котяра мой может менять значение тангажа с 32766 на 32767 по кнопке, так вот - ил отрабатывает это изменение - т.е. и рус в кабине и управляющие плоскости на это изменение 1/32767 реагируют. ))))))
удачи.
пробовал то же самое делать на мессе, только мертвую зону в настройках я не ставлю по причине описанной выше, разницы не заметил никакой, возможно при использовании сглаживания отриц значения каким то образом начинают влиять, но тут есть один нюанс, сглаживание равное 0 означает что в знаменателе формулы расчета текущего значения будет 0 (так или иначе, так как при умножении на любой коэффициент все равно будет ноль) поскольку количество значений для отсчета равно нулю, а так как деление на ноль напрямую в программе недопустимо, при установке значения сглаживания ноль программа фильтра не работает вообще (отключена) таким образом что бы сравнить реакцию нужно выставить значение 1 что бы задействовать фильтр но при этом иметь минимальные искажения от него и сравнивать, есть у меня предположение что результаты для любого отрицательного значения и значения 1 будут идентичны
MaxPayneRUS
29.10.2005, 18:44
Да пробовал я, и не раз! Не доводил и чуть - чуть, и больше, но не помогло. Причем при калибровке, шарик (курсор), доходит до упора без проблем а в Иле все те-же 109%. Вот и приходится несколько раз двинуть туда сюда рукоятку, чтобы получить желаемые 110%.
За это время у меня поменялись и комп, и джои, а проблемка эта, так и осталась. И неужели, ни у кого больше такого не наблюдается?
значит у тебя джой с автокалибровкой, облом-с, будешь с этим жить :) или тюнить джой надо, для этого придется чуть чуть довернуть резистор тяги, до положения при котором на максимальной тяге, движок резистора будет сходить с резистивного слоя в упор, или заставить разработчиков ограничить снимаемые игрой показания на пару процентов в области крайних значений, но все равно ничего неправильного в этом сейчас нет, это скорее тюнинг игры чем исправление ошибок
А не подскажете еще, почему при подаче РУДа до упора, тяга как правило останавливается на 109%? У меня уже третий джой (все разных фирм) но картина не меняется. Подозреваю что и здесь тоже косяк в самом - Иле.
У тебя Winodws 2000?
MaxPayneRUS
29.10.2005, 18:57
Я, скорее всего, соглашусь с Йо-Йо... Он сказал, что при отрицательном сглаживании АЧХ фильтра инвертируется по оси У. То есть имеем 1 КУ на полосе до частоты среза и >1 на полосе после.
Хотя и не исключаю свою догадку, что сглаживанием задается не только частота среза, но и добротность. Причем 0 - это не полное отсутвие сглаживания и добротность 1. Скорее всего, это какой-то минимальный минимум %)
Тогда в такой формулировке возможно таки наличие скользящего среднего, где 0 - "минимальный минимум" сглаживания. Орион, ты хоть раз писал программу, любую, паскаль, асм, пусть самую простую, которая бы вычисляла, значения? Нет? Если бы писал ты бы меня понял, что бы осчитывать отрицательные значения нужно этот минус учесть в коде на всех этапах хранения промежуточных значений вычислений, чрезвычайно мала вероятность это сделано специально, возможно что минус успевает сыграть свою роль при начальных вычислениях но он однозначно будет потерян к итоговому результату, вообще весьма геморно использовать отрицательные числа при вычислениях в программах, заметь к примеру что данные Директ инпут имеют положительные значения, таким образом вероятнее всего отрицательное значение сглаживание скорее всего приводит к одному результату на выходе который, имеет аналог который можно выставить к примеру поставив сглаживание 1, и совершенно пофигу что ставить -10 или -99 результат будет один и тот же. На самом деле я разницы со сглаживанием 0 вообще никакой не заметил
MaxPayneRUS
29.10.2005, 19:19
Спорим?Легко, только каким образом установить истину? Сходи по ссылке выложенной Орионом и найди отличия приведенной тобой формулы от обычного фильтра с плавающим окном
Так вот сглаживание это сколько соседних значений мы возьмем для усреднения, главная проблема такого фильтра что чем больше сглаживание тем сильнее запаздывание выходного сигнала, что мы собственна в илу и наблюдаем, так вот возьми и подставь реальные значения в свою формулу и нарисуй что будет на выходе, увидишь что пока ты сглаживание суммируешь как обычный коэффициент нифига СГЛАЖИВАТЬ твой фильтр не будет :)
MaxPayneRUS
29.10.2005, 19:23
Если действительно существуют баги, описаные Пакманом - ставим всё по 100% и отключаем сглаживание+мёртвая зона - и нет проблем? После последнего патча все по 100 и есть проблема, из за чего и шум собственна, а так в общем мысль верная
Да пробовал я, и не раз! Не доводил и чуть - чуть, и больше, но не помогло. Причем при калибровке, шарик (курсор), доходит до упора без проблем а в Иле все те-же 109%. Вот и приходится несколько раз двинуть туда сюда рукоятку, чтобы получить желаемые 110%. За это время у меня поменялись и комп, и джои, а проблемка эта, так и осталась. И неужели, ни у кого больше такого не наблюдается?
Может и Ила косяк... Но у меня такая проблема на ТМ АБ2 есть. Вылечил просто сместив ползунок в настройках газа в трастмаппере.
Подскоки самаля в райное нуля стали наблюдатся в патчах 4.01 и выше. Подозреваю, типа фича от разработчиков. Не более.
значит у тебя джой с автокалибровкой, облом-с, будешь с этим жить :) или тюнить джой надо, для этого придется чуть чуть довернуть резистор тяги, до положения при котором на максимальной тяге, движок резистора будет сходить с резистивного слоя в упор, или заставить разработчиков ограничить снимаемые игрой показания на пару процентов в области крайних значений, но все равно ничего неправильного в этом сейчас нет, это скорее тюнинг игры чем исправление ошибок
Сейчас у меня "СН Throttle" без автокалибровки, зато вручную можно откалибровать как хочешь. А до этого была "Ева" с автокалибровкой, но трабл что там, что там один и тот же.
У тебя Winodws 2000?
Win XP SP2
Этот трабл у меня настолько давно живет, что я думал так и у всех, но оказывается проблему надо искать у меня. Может быть это потому что Ила я, давно уже не устанавливаю при переустановке Виндовса или смене жеского диска, а просто копирую или запускаю без переустановки.
Может и Ила косяк... Но у меня такая проблема на ТМ АБ2 есть. Вылечил просто сместив ползунок в настройках газа в трастмаппере.
Жаль что у меня такого ползунка в дровах нет.
Russoturisto
29.10.2005, 20:24
".....За это время у меня поменялись и комп, и джои, а проблемка эта, так и осталась. И неужели, ни у кого больше такого не наблюдается?"
У меня наблюдается. (logitech wingman force 3D)... и лечится уменьшением тяги процентов до 90, а потом обратно до 110и и всё работает...
Russoturisto
29.10.2005, 20:29
всё по 100 (кривые отклика) я ставить тоже пробовал (+ 0 сглаживания и dead band)--> целится невозможно (дёргает сильно...)....
MaxPayneRUS
29.10.2005, 21:30
Сейчас у меня "СН Throttle" без автокалибровки, зато вручную можно откалибровать как хочешь. А до этого была "Ева" с автокалибровкой, но трабл что там, что там один и тот же.
Win XP SP2
Этот трабл у меня настолько давно живет, что я думал так и у всех, но оказывается проблему надо искать у меня. Может быть это потому что Ила я, давно уже не устанавливаю при переустановке Виндовса или смене жеского диска, а просто копирую или запускаю без переустановки.
так, ил тут не причем, если джой без автокалибровки (повторяю ЕСЛИ) то калибруем драйвера, проходим все оси как надо двигаем, держим в центре и тп, доходим до оси газа:
1 Ось газа должна перед калибровкой быть установлена в ноль
2 На просьбу подвигать газом, аккуратно двигаем его не доводя 2-3 процента до фиксатора, если не поможет то надо увеличить до 4-5 проц и тд. Провели один раз от нуля до 97% хода рычага и жмем далее, потом применить, после этого мы получим 110 тяги при положении ручки на 97 поцентах, мизерная часть в конце хода уже менять ничего не будет, повторяю, я именно так всегда решал проблемы когда ставил на ось закрылки, все работает, если у тебя лично не работает, виноват в этом не джой и не ил а руки к сожалению.
удачи
так вот возьми и подставь реальные значения в свою формулу и нарисуй что будет на выходе, увидишь что пока ты сглаживание суммируешь как обычный коэффициент нифига СГЛАЖИВАТЬ твой фильтр не будет :)
Да ну! Не будет сглаживать? Правда?
А я то не знал, вот ведь засада! :rolleyes:
Макс, та формула - элементарный апериодический фильтр. Слышал про такой? И поверь мне - он сглаживает. И если здесь, паче чаяния, появится MG_Dimas, то он подтвердит, что именно такая формула работает сглаживанием в Иле.
так, ил тут не причем, если джой без автокалибровки (повторяю ЕСЛИ) то калибруем драйвера, проходим все оси как надо двигаем, держим в центре и тп, доходим до оси газа:
1 Ось газа должна перед калибровкой быть установлена в ноль
2 На просьбу подвигать газом, аккуратно двигаем его не доводя 2-3 процента до фиксатора, если не поможет то надо увеличить до 4-5 проц и тд. Провели один раз от нуля до 97% хода рычага и жмем далее, потом применить, после этого мы получим 110 тяги при положении ручки на 97 поцентах, мизерная часть в конце хода уже менять ничего не будет, повторяю, я именно так всегда решал проблемы когда ставил на ось закрылки, все работает, если у тебя лично не работает, виноват в этом не джой и не ил а руки к сожалению.
удачи
Макс, ты не понял. Я именно так все и делал и уж поверь руки у меня не кривые, http://www.sukhoi.ru/forum/showthread.php?t=35320 и как калибровать я знаю. Но! В дровах, я например доводил газ до 90% хода, сохранял, переходил в режим тестирования (в дровах джоя) и там при положении газа 90%, шарик добегал до упора. Но Ил, газ-110% не выдавал, только при резкой подаче газа и то не сразу а надо несколько раз дергать рычаг туда сюда. Вот в чем проблема. И если ты внимательно читал, то я говорил что у меня были джои и с автокалибровкой и без а проблема не менялась.
Но мы ушли от темы Pakmanа, поэтому давай прекратим.
Упс, ошибся не
т.е. и рус в кабине и управляющие плоскости на это изменение 1/32767 реагируют. )))))) а на 1/65535
Но мы ушли от темы Pakmanа, поэтому давай прекратим.
Пакман, если нужно будет, ещё десять тем создаст :D. Так что, давай продолжим. ТАРЗАН, выложи ка тут строчку из файла conf.ini для оси джойстика, на которой у тебя висит газ. Это будет что-нибудь вроде:
1U=0 10 20 30 40 50 60 70 80 90 100 50
Если последний параметр в строке не 0 (как в примере - 50), сделай его нулём, запиши файл, запусти Ила и посмотри в простом редакторе, что вышло.
Упс, ошибся не а на 1/65535
Шнек, ты садист. Уверен, что Ил реагирует именно на 1/65535? Может возмущение было побольше?
Вот строчка:
1U=0 100 100 100 100 100 100 100 100 100 100 0
я как то пробовал вот такой вариант:
1U=0 100 100 100 100 100 100 100 100 100 200 0, не помогло.
З.Ы. Пакман, у тебя ровно 1000 сообщений, надо бы обмыть это дело! %) :D
З.Ы. Пакман, у тебя ровно 1000 сообщений, надо бы обмыть это дело! %) :D
Не без этого. И если ты скажешь, что это у меня вода в стакане на столе, то ты изречёшь неправду :D. Присоединяйса ;).
Та-ак... По поводу наших баранов. Ты уверен, что именно эта строчка у тебя овечает за газ? Как проверял? Ты её вручную прописал все по 100 или так и было?
Строчку я скопировал из conf.ini а проверял в IL-2conn - поэтому уверен. Все по 100 я прописал сам и уже давно, потому как если посмотреть в Ил-2conn, там хорошо видно на графике что от 30 до 70% тяга почти не меняется (идет по синусоиде), а при всех по 100 - линейно.
Кстати, IL-2conn показывает тягу от 100 до -99. Так и должно быть? Я спрашиваю потому, что в отличие от Ила, здесь как ни дергай -100 не получишь. Вот и подумал что здесь отсчет идет от нуля.
Добавил:
Вот сделал скрены для наглядности.
А нафига вообще нужна настройка нуля, если все можно выставить чувствительностью? Поставить несколько первых ползунков в "0", будет настоящий, полноценный ноль. Но логиченее постепенно вывести к нужным значениям.
Если это зачем-то нужно.
Да нет! Речь идет о 110%. Просто когда ты даешь полный газ, к илу приходит -100. Я скрен выложил - посмотри.
То, что я написал, к первым постам относится. :)
MaxPayneRUS
31.10.2005, 19:48
Да ну! Не будет сглаживать? Правда?
А я то не знал, вот ведь засада! :rolleyes:
Макс, та формула - элементарный апериодический фильтр. Слышал про такой? И поверь мне - он сглаживает. И если здесь, паче чаяния, появится MG_Dimas, то он подтвердит, что именно такая формула работает сглаживанием в Иле.
Это то как ты лично видишь это в ИЛ-2, почему например не так как здесь
http://www.eltech.spb.ru/pdf/AD/6.pdf
????
Зачем в фильтр сглаживания заваривать еще и кривые отклика сразу???
и какая связь вообще сглаживания и кривых отклика по твоему мнению, очень интересно послушать :)
Я знаю одно и это лежит в корне цифровой фильтрации, коэффициент сглаживания это значение прямо пропорциональное количеству выборок, так всегда было и будет, так что двигая в ИЛ-2 движок сглаживания мы меняем это количество выборок соответственно в формуле НЕ БУДЕТ значений типа 125, и не будет вычитания равно как и сложения коэффициента сглаживания с какими то фиксированными значениями, поскольку, процент усреднения каждой выборки то же будет изменяться в соответствии с положением движка сглаживания, для 4 выборок это будет 0.25 для 10 соответсна 0.1, поэтому там будет стоять переменная, поэтому я и говорю что то что вы там написали не более чем ЧТО ТО ВРОДЕ и не с того огорода.
Теоретизировать мне надоело, очень и давно хочу послушать разработчиков по этому вопросу.
MaxPayneRUS
31.10.2005, 19:52
А нафига вообще нужна настройка нуля, если все можно выставить чувствительностью? Поставить несколько первых ползунков в "0", будет настоящий, полноценный ноль. Но логиченее постепенно вывести к нужным значениям.
Если это зачем-то нужно.
Именно так и приходится делать, проблема в том что поставить так мертвую зону меньше 10 процентов на кривых все по 100 не получится :( потому как череззадовый метод
Шнек, ты садист. Уверен, что Ил реагирует именно на 1/65535? Может возмущение было побольше? не, я - мазохист )
у мя марс по тангажу дает ноль в 32766, а для стрельбы есть кнопачка
CURVE /U (JOYY, -1) (JOYX, -1)
/M (JOYSTICK, 0)
/D (JOYY, 0) (JOYX, 0)
вместе с "прильнуть к прицелу"
дык, вот когда я джой по фокси выставил в 0, а потом кнопачку "DOG FIGHT" нажимаю - у мя ноль становиться 32767. в иле нажатие этой кнопачки приводит к вздрагиванию носом и рус в кабине дергается )))).
тут я этта, попробовал дико концептуальную методу максапейнаруса - нифига не вышло - отклоняю джой на малую величину (красный квадратик) - скажем половину ребра зеленого квадратика так, чтобы точно попасть в зону действия первого (сам левого) движка, зел кв начинает периодически метаться из "0" , (все кривые в 100, сглаживание -55), начинаю первый движок опускать - амплитуда колбашенья зеленого квадратика начинает увеличиваться. красный квадратик стоит как влитой. че за хз ))
MaxPayneRUS
31.10.2005, 20:46
не, я - мазохист )
у мя марс по тангажу дает ноль в 32766, а для стрельбы есть кнопачка
CURVE /U (JOYY, -1) (JOYX, -1)
/M (JOYSTICK, 0)
/D (JOYY, 0) (JOYX, 0)
вместе с "прильнуть к прицелу"
дык, вот когда я джой по фокси выставил в 0, а потом кнопачку "DOG FIGHT" нажимаю - у мя ноль становиться 32767. в иле нажатие этой кнопачки приводит к вздрагиванию носом и рус в кабине дергается )))).
тут я этта, попробовал дико концептуальную методу максапейнаруса - нифига не вышло - отклоняю джой на малую величину (красный квадратик) - скажем половину ребра зеленого квадратика так, чтобы точно попасть в зону действия первого (сам левого) движка, зел кв начинает периодически метаться из "0" , (все кривые в 100, сглаживание -55), начинаю первый движок опускать - амплитуда колбашенья зеленого квадратика начинает увеличиваться. красный квадратик стоит как влитой. че за хз ))
условия задачи нарушены, это раз, отклонение на 1 именно от центра может дергать самолет из за пересчета в DirectX это два но вот что интересно будет ли он дергаться на ВСЕХ позициях от 0 до 32767 и установленных на ноль сглаживании и мертвой зоне, я думаю нет, потому что Когур насколько я не помню скольки разрядный АЦП в когуре но к примеру посчитаем что он 8 разрядный, то есть выдает он 256 значений (но очень точно это делает в отличие от остального барахла), таким образом на каждое изменение в единицу выданное АЦП драйвер изменит на 32768/256=128 значений, вопрос в том что если ты будешь двигать медленно джой то найдешь точку в которой занчения увеличиваются на 128 но это не будет означать что джой отрабатывает ВСЕ 32768 позиций.
Если ЦАП в когуре 10 разрядный то коэффициент будет на 128 а 32, но сути это не изменит. Потому как при разрядности более 10 потребуется ну очень крутая схема питания резисторов и АЦП и сами резисторы то же :)
вообще скрин от DXTweak вполне бы устроил, тогда я тебе сразу скажу что он может
...интересно будет ли он дергаться на ВСЕХ позициях от 0 до 32767 и установленных на ноль сглаживании и мертвой зоне, я думаю нет, потому что...
хм, ну, думать можно че угодно, я то знаю что да )))))), т.к. то что я привел есть изменение кривой отклика джоя не в иле, а в дровах джоя, эт раз )))), соотв чем дальше к середине отклонения руса уходишь - тем больше разница между линейным откликом и параболой)))), переключение курвы при 50% отклонении джоя дает прыжок в почти 3000 ед (поэтому кстати особо в иле не попользуешься изменениями кривой отклика джоя, хыхыхы, на вираже кликнул - и усе траектория сбилась - весь прицел насмарку - по-новой выноси)
колбашенье ЗЕЛЕНОГО квадратика (а не красного :) ) уменьшается чем дальше ты рус отклоняешь и полностью пропадает при полностью отклоненной ручке (при кривых в 100 и -500 сглаживании). при сглаживании 0 НИКАКОГО колбашенья ни красного ни зеленого кв я не наблюдаю ))))
второе - мне пофиг какой там ацп стоит, главное что дрова кота позволяют так задурить директикс, что у мя в джой тестер мин шаг равен 3 (из 65535), скрины выкладывал годом ранее ))))
условия задачи нарушены, это раз, отклонение на 1 именно от центра может дергать самолет из за пересчета в DirectX это два но вот что интересно будет ли он дергаться на ВСЕХ позициях от 0 до 32767 и установленных на ноль сглаживании и мертвой зоне, я думаю нет, потому что Когур насколько я не помню скольки разрядный АЦП в когуре но к примеру посчитаем что он 8 разрядный, то есть выдает он 256 значений (но очень точно это делает в отличие от остального барахла), таким образом на каждое изменение в единицу выданное АЦП драйвер изменит на 32768/256=128 значений, вопрос в том что если ты будешь двигать медленно джой то найдешь точку в которой занчения увеличиваются на 128 но это не будет означать что джой отрабатывает ВСЕ 32768 позиций.
Если ЦАП в когуре 10 разрядный то коэффициент будет на 128 а 32, но сути это не изменит. Потому как при разрядности более 10 потребуется ну очень крутая схема питания резисторов и АЦП и сами резисторы то же :)
вообще скрин от DXTweak вполне бы устроил, тогда я тебе сразу скажу что он может
"Спокойствие, только спокойствие".
65535 - это значение уже ДиректИнпута (масштабированное х10) Драйвер может выдавать - 655.
Кстати, IL-2conn показывает тягу от 100 до -99. Так и должно быть? Я спрашиваю потому, что в отличие от Ила, здесь как ни дергай -100 не получишь. Вот и подумал что здесь отсчет идет от нуля.
Не, ну фиг знает. У меня на упорах il2conn показывает 100 и -100.
Это то как ты лично видишь это в ИЛ-2, почему например не так как здесь
http://www.eltech.spb.ru/pdf/AD/6.pdf
????
Зачем в фильтр сглаживания заваривать еще и кривые отклика сразу???
и какая связь вообще сглаживания и кривых отклика по твоему мнению, очень интересно послушать :)
Я знаю одно и это лежит в корне цифровой фильтрации, коэффициент сглаживания это значение прямо пропорциональное количеству выборок, так всегда было и будет
Я думаю, будет приятным откровением узнать, что можно как угодно сильно сгладить сигнал, пользуясь всего одной-двумя-тремя выборками. IIR-filter - и вся недолга. Количество выборок - это порядок фильтра, а частота среза может быть сколь угодно низкой (в разумных пределах).
Это то как ты лично видишь это в ИЛ-2, почему например не так как здесь
http://www.eltech.spb.ru/pdf/AD/6.pdf
????
Зачем в фильтр сглаживания заваривать еще и кривые отклика сразу???
и какая связь вообще сглаживания и кривых отклика по твоему мнению, очень интересно послушать :)
Я знаю одно и это лежит в корне цифровой фильтрации, коэффициент сглаживания это значение прямо пропорциональное количеству выборок, так всегда было и будет, так что двигая в ИЛ-2 движок сглаживания мы меняем это количество выборок соответственно в формуле НЕ БУДЕТ значений типа 125, и не будет вычитания равно как и сложения коэффициента сглаживания с какими то фиксированными значениями, поскольку, процент усреднения каждой выборки то же будет изменяться в соответствии с положением движка сглаживания, для 4 выборок это будет 0.25 для 10 соответсна 0.1, поэтому там будет стоять переменная, поэтому я и говорю что то что вы там написали не более чем ЧТО ТО ВРОДЕ и не с того огорода.
Теоретизировать мне надоело, очень и давно хочу послушать разработчиков по этому вопросу.
Макс, откуда у тебя этот апломб? Ты споришь со специалистом о вещах, в которых сам, мягко говоря, путаешься. Как бы ты не был эрудирован, будь ты хоть обладателем Хрустальной Совы Что?-Где?-Когда?, этого всё равно не достаточно, что бы рассуждать о специфическом инженерном вопросе. Для этого нужно быть инженером.
Видишь ли, прочитанный текст из чужой ссылки не сделает из дилетанта инженера. Вот мне совершенно ничего не надо читать, чтобы понять, что в Иле используется именно цифровой апериодический фильтр - вещь, с которой я постоянно имею дело на работе. Мало того, анализируя работу этого фильтра, я выяснил дискретность обсчёта сигнала джойстика в Иле. 10 раз в секнду.
Не знаю, имеет ли, это, отношение к излагаемой теме, но...
Какие фильтры меняются при подлёте к ВПП?
У меня (в оффлайне) всегда, на, приблизительно, одинаковом расстоянии от оной происходит "дёрг" самолёта. Курю, всё время, разное... На игру начал грушить... :)
Не знаю, имеет ли, это, отношение к излагаемой теме, но...
Какие фильтры меняются при подлёте к ВПП?
У меня (в оффлайне) всегда, на, приблизительно, одинаковом расстоянии от оной происходит "дёрг" самолёта. Курю, всё время, разное... На игру начал грушить... :)
И всегда при посадке на одну и ту же полосу, да? Совет: заходи на посадку с противоположной стороны. Хотя, если ты садишься на бетонку на островке на карте Окинавы - всё равно дёргнет, с какой стороны не заходи. :rtfm:
MaxPayneRUS
31.10.2005, 22:53
цифровой апериодический фильтр - вещь, с которой я постоянно имею дело на работе. Мало того, анализируя работу этого фильтра, я выяснил дискретность обсчёта сигнала джойстика в Иле. 10 раз в секнду.ты себя со стороны так отвлеченно послушай, я ща попробую проэкстраполировать, "я собираю табуретки на работе и я убежден что табуретка применяется в ил-2, я даже высчитал что там применяется 10 табуреток"
расчеты в студию а не не пойми какую вязкую формулу, а вот когда вы коллега докажете, тогда и будете загибать пальцы, по части кто инженер
:D
MaxPayneRUS
31.10.2005, 22:55
"Спокойствие, только спокойствие".
65535 - это значение уже ДиректИнпута (масштабированное х10) Драйвер может выдавать - 655.
я что, спорю?
сколько джой выдает?
Я знаю одно и это лежит в корне цифровой фильтрации, коэффициент сглаживания это значение прямо пропорциональное количеству выборок, так всегда было и будет
А что ты скажешь на счет апроксимации, степень которой НЕ ЗАВИСИТ от числа узлов? Три точки можно апроксимировать по МНК прямой, параболой, синусом - каждый раз сглаживание будет разным!
я что, спорю?
сколько джой выдает?
Это к Шнеку. У меня "Кугара" нету.
расчеты в студию а не не пойми какую вязкую формулу, а вот когда вы коллега докажете, тогда и будете загибать пальцы, по части кто инженер
:D
Давай так: я привожу доказательства и ты начинаешь грызть свою пилотку? В противном случае - я положу на стол свой парт-билет. Идёт? :D
Кстати, коллега, вы в сою очередь можете доказать Ваше утверждение, что в Иле сглаживание использует алгоритм скользящего среднего? Да ещё с изменяемым размером окна. Не кажется ли Вам, уважаемый коллега, что вы раздаёте авансы разработчикам, которых они, возможно, не заслуживают?
И всегда при посадке на одну и ту же полосу, да? Совет: заходи на посадку с противоположной стороны. Хотя, если ты садишься на бетонку на островке на карте Окинавы - всё равно дёргнет, с какой стороны не заходи. :rtfm:
ссылка на "rtfm" есть?
Спасибо...
Там ещё все ЛаГГ-3 только с "американской символикой" летают...
А почему там, всё-таки, "колбасит"?
ссылка на "rtfm" есть?
Спасибо...
Там ещё все ЛаГГ-3 только с "американской символикой" летают...
А почему там, всё-таки, "колбасит"?
Колбасит потому, что ты пролетаешь над границей воды и суши. Типа, над водой холоденее и воздух более плотный.
MaxPayneRUS
31.10.2005, 23:36
Давай так: я привожу доказательства и ты начинаешь грызть свою пилотку? В противном случае - я положу на стол свой парт-билет. Идёт? :D
Может тебя еще усыновить и назначить пожизненную ренту, есть что сказать скажи, нет на отдых
Кстати, коллега, вы в сою очередь можете доказать Ваше утверждение, что в Иле сглаживание использует алгоритм скользящего среднего? Да ещё с изменяемым размером окна. Не кажется ли Вам, уважаемый коллега, что вы раздаёте авансы разработчикам, которых они, возможно, не заслуживают?
По крайней мере я не считаю их олигрофренами, что следует из приведенной вам блок схемы, удалять аппендицит можно и через интересное место но вот зачем??? А по вашему получается что у программеров там тараканы в голове потому что ни один нормальный человек так схему кривые+сглаживание+мертвая зона не построит, не ну я не учитываю мешок гонжубаса конечно.
Я вполне склонен верить что программер мог ошибиться при построении самого алгоритма, но что бы так, увольте.
Теперь про скользящее окно. Мне эта схема нравится и я считаю ее вполне жизнеспособной, главный плюс малое запаздывание и простота вычислений, плюс можно использовать изменяемое количество выборок
делая это окно шире и уже практически напрямую увязав с настройкой уровня сглаживания. НО я не утверждаю что именно она использована, я лишь надеюсь что разработчики вдоволь наржавшись с вышеизложенного :) наконец пояснят как это происходит непосредственно в игре.
Посему я спрашиваю А ПОЧЕМУ ИМЕННО ТАК, и какого ляда значат ваши постоянные в формуле, почему не вот так и не так. Но видимо клевые инженеры у нас народ гордый, со всяким ... не общаются, а типа тока на спор.
В общем мысль я думаю моя понятна. Мне не понятны только странные понты...
MaxPayneRUS
31.10.2005, 23:43
Я думаю, будет приятным откровением узнать, что можно как угодно сильно сгладить сигнал, пользуясь всего одной-двумя-тремя выборками. IIR-filter - и вся недолга. Количество выборок - это порядок фильтра, а частота среза может быть сколь угодно низкой (в разумных пределах).
Ну сгладь сколь угодно два последовательных выброса, раза в три больших нормы за две выборки :) , все это ограниченно работоспособно при малом количестве нормализуемых выборок, нужна критическая масса как бы и в идеале чем больше выборок тем лучше сглаживание и хуже полезный сигнал. Но когда помеха или шумы подчиняются периодическому закону все меняется, тогда можно и за две
ROSS_Tracer
31.10.2005, 23:58
По крайней мере я не считаю их олигрофренами, что следует из приведенной вам блок схемы, удалять аппендицит можно и через интересное место но вот зачем??? А по вашему получается что у программеров там тараканы в голове потому что ни один нормальный человек так схему кривые+сглаживание+мертвая зона не построит, не ну я не учитываю мешок гонжубаса конечно.
Я вполне склонен верить что программер мог ошибиться при построении самого алгоритма, но что бы так, увольте.
Теперь про скользящее окно. Мне эта схема нравится и я считаю ее вполне жизнеспособной, главный плюс малое запаздывание и простота вычислений, плюс можно использовать изменяемое количество выборок
делая это окно шире и уже практически напрямую увязав с настройкой уровня сглаживания. НО я не утверждаю что именно она использована, я лишь надеюсь что разработчики вдоволь наржавшись с вышеизложенного :) наконец пояснят как это происходит непосредственно в игре.
Посему я спрашиваю А ПОЧЕМУ ИМЕННО ТАК, и какого ляда значат ваши постоянные в формуле, почему не вот так и не так. Но видимо клевые инженеры у нас народ гордый, со всяким ... не общаются, а типа тока на спор.
В общем мысль я думаю моя понятна. Мне не понятны только странные понты...
Если что-то переделывалось... а потом исправлялось. Добавлялось новое.. потом пересматривалось и оптимизировалось. Может бы и не такое :) По опыту.
А вообще очень интересно, что по-этому поводу скажут забанненые разработчики :) Рассуждения пакмана интересны, и не противорячат моим ощущениям в игре :)
По крайней мере я не считаю их олигрофренами, что следует из приведенной вам блок схемы, удалять аппендицит можно и через интересное место но вот зачем??? А по вашему получается что у программеров там тараканы в голове потому что ни один нормальный человек так схему кривые+сглаживание+мертвая зона не построит, не ну я не учитываю мешок гонжубаса конечно.
Я тоже совсем не считаю разработчиков олигофренами. Наоборот, я уверен, что это вполне симпатичные ребята, хорошие программисты. Тем не менее я не отказываюсь от приведённой структурной схемы - тут уж что есть, то есть, не сам же я это придумал :D. Или тебе не убедительны приведённые мной примеры, подтверждающие, что схема именно так и построена? Тогда укажи на несостыковки в моих рассуждениях.
Я вполне склонен верить что программер мог ошибиться при построении самого алгоритма, но что бы так, увольте.
Лично я склонен поверить во что угодно. %)
надеюсь что разработчики вдоволь наржавшись с вышеизложенного :) наконец пояснят как это происходит непосредственно в игре.
Вот на это я не надеюсь. Ты бы на месте разработчиков заметил бы эту тему, если представить, что всё мной изложенное - правда?
И честно говоря, я не собирался слать этот баг-репорт куда бы то ни было. Я расчитывал затеять перепалку, типа которой ведём сейчас мы с тобой :ups: . Так что, не будем беспокоить разработчиков, они люди занятые. ;)
А вообще очень интересно, что по-этому поводу скажут забанненые разработчики :) Рассуждения пакмана интересны, и не противорячат моим ощущениям в игре :)
Мир? ;)
Мужики! Все это, конечно, здорово, но вот если без зауми, на практике - чего дает такая реализация отклика в игре? И как с энтим бороться?:)
Не, то что дергает на минимуме - эт я сам вижу каждый день... И при нулевом сглаживании, и при отрицательном - дергает. Кста почему-то это именно после патча стало хорошо заметно.. А вот как избежать, например? Сводить кривую в начале некошерно - ваще не пепелац а черт-те-что. Сглаживание тоже имхо не выход - заметно дубеет ручка.
Что же делать?
FH_Lord_Lexus
01.11.2005, 07:09
И главное, от разработчиков полная тишина! Хоть бы кто нить, не обязательно ОМ, написали пару строк, типа, у нас там скользящее среднее, или апериодический, или калман с батеруотом какой-нить...
Это наверно главное ноу-хау симулятора, коммерческий секрет! :) А то "УНВП" твердить запросто, а показать как ОНО получается - фиг! :confused:
-500 сглаживании). при сглаживании 0 НИКАКОГО колбашенья ни красного ни зеленого кв я не наблюдаю ))))
а зачем тогда вообще сглаживание включать? если марсы тем более? :ups:
MaxPayneRUS
01.11.2005, 09:25
хм, ну, думать можно че угодно, я то знаю что да )))))), т.к. то что я привел есть изменение кривой отклика джоя не в иле, а в дровах джоя, эт раз )))), соотв чем дальше к середине отклонения руса уходишь - тем больше разница между линейным откликом и параболой)))), переключение курвы при 50% отклонении джоя дает прыжок в почти 3000 ед (поэтому кстати особо в иле не попользуешься изменениями кривой отклика джоя, хыхыхы, на вираже кликнул - и усе траектория сбилась - весь прицел насмарку - по-новой выноси)
колбашенье ЗЕЛЕНОГО квадратика (а не красного :) ) уменьшается чем дальше ты рус отклоняешь и полностью пропадает при полностью
Это потому что разрешение джоя у тебя перераспределено настройками кривых в дровах, на малых углах лучше вот кадрат и колбасит, а на больших углах хуже вот он там и успокаивается, а в нуле стоит потому что мертвая зона где то задана, либо в настройках дров либо в самих дровах
отклоненной ручке (при кривых в 100 и -500 сглаживании). при сглаживании 0 НИКАКОГО колбашенья ни красного ни зеленого кв я не наблюдаю ))))
второе - мне пофиг какой там ацп стоит, главное что дрова кота позволяют так задурить директикс, что у мя в джой тестер мин шаг равен 3 (из 65535), скрины выкладывал годом ранее ))))
а где посмотреть можно?
Хорошо, при калибровке джоя что пишет в окне необработанные значения и насколько колбасит курсор?
Ну сгладь сколь угодно два последовательных выброса, раза в три больших нормы за две выборки :) , все это ограниченно работоспособно при малом количестве нормализуемых выборок, нужна критическая масса как бы и в идеале чем больше выборок тем лучше сглаживание и хуже полезный сигнал. Но когда помеха или шумы подчиняются периодическому закону все меняется, тогда можно и за две
А в чем проблема: частота дискретизации 100 Гц, частота среза фильтра второго порядка 1 Гц (к примеру), два последовательных выброса имеют длительность 20 мс. Прилично подавит, однако. А если частота 0.5 Гц?
Просто ты, наверное, совершенно не представляешь себе, что есть цифровой фильтр.
Дорогие мой, pakman & MaxPaynRUS, неважно кто из вас прав в этом споре!
.
Важно то, что тысячи людей летают а ИЛ-2 и грешат на свои джойстики. Лично я уже третий меняю. И для чего? Для того чтобы обнаружить, что офигенно навороченный и дорогой джой не решил проблемы с дерганьем?
И вот наконец находиться человек который говорит, что ребята, а собака то совсем не там порылась! Дело не в ваших джоях, а в самой игре!
.
Не надо превращать эту тему в спор!
Давайте лучше подумаем что нам делать?
Ну не мне же писать ОМу & K. Я то в этом деле ни черта не смыслю. А вам, как говориться, сам Бог велел.
Оно и раньше колбасило при малых отклонениях РУС. А после 4.02 вообще караул.
.
Вот простой вопрос: а можно ли с помощью патча, или там аддона, изменить систему обработки сигнала джойстика, то есть позволяет ли это программа, или нам теперь до БоБа дергаться как паралитикам?
А если ничего изменить нельзя, то что можно сделать на уровне простого пользователя??????????
Может есть джойстики на которых этот эффект не так сильно сказывается?
Озвучьте Ваше мнение! А то ждать советов или объяснений от разработчиков видимо уже не приходиться. :( :( :(
А я смелюсь утверждать, что дело таки в джоях. Хорошему джою не нужны все эти фичи по сглаживанию и МЗ, поэтому я их отключил. Ничего не дергается и ничего не дрожит - полное взаимопонимание меня и самолета :)
А джой какой? У меня тоже МЗ и сглаживание отключено.
.
Тут дело не в дрожании. Прочитай, пожалуйста, еще раз о чем собственно пакман пишет.
.
Давай дождемся более умного ответа.
Джой собственного производства :) Точнее, сконструирован из Б/У Сайтека.
А заумные вещи мне читать влом... Я уже два года как на лекции не хожу %)
всё верно, но сглаживание ещё в иле вставил,, ибо было не совсем комфортно ощущать машину на скорости, ибо с увеличением скорости рули ставятся "воздушной пружиной" по триммерам, и мне лично не совсем по глазам то как машина реагирует без сглаживания на малейшие отклонения, сглаживание даёт ощущение воздуха вокруг машины,, по личным ощущениям
можно вякнуть ИМХу?
мыслю я себе, что дело все в новой ФМ.
если в реальном самолете дергать рули с такой же частотой и амплитудой, как джоем - получим тот же результат. Именно нововведения в ФМ и обеспечивают столь резкое поведение самолета.
И еще есть у меня подозрение, что у самолета пропала масса, ибо ну очень резво он реагирует на рули, инерции практически нет.
просто некоторым машинам ещё повысили управляемость - реакция на рули стала быстрее,, наверно так,, а по поводу новой фм,, так ясное дело:) до неё ж подобных вопросов не подымали,, кроме задалбывающих пилотов о завышенной управляемости в игре,,, колебания сигнала даёт на столько малый еффект, какой он давал в 4,01, но в 4,01 никто не замечал ибо и замечать было неча,,, прикольно знать если еффект смещения фокуса теперь появляется скачком на рулях, хехехе,,, так что граждане следопыты,, гляньте как квадратики ходют в 4,01,,,
Тэ-экс, я тут собираюсь немного по-занудствовать. Дальнейшее советую читать только тем, кто не боится перегреть мозг ;).
Итак, апериодический фильтр, который используется для сглаживания сигнала от джойстика в Иле.
Апериодический фильтр, это алгоритм, состоящий из нижеприведённой формулы и выполняемый циклически (в частности в цикле общёта ФМ ):
Y = Y + (X - Y)*m
X - значение на входе фильтра
Y - значение на выходе фильтра
m - параметр, определяющий свойства фильтра
Формула записана в виде строки из программного кода, т.е. над переменной Y производятся действия и результат потом присваевается этой же переменной.
Если присмотрется к формуле, можно увидеть, что к текщему выходу фильтра прибавляется доля от величины отставания выходного значения от входа фильтра. Эта ситуация очень хорошо иллюстрируется парадоксом про Ахилеса и черепаху, в которой Ахилес сначала проходит половину расстояния до черепахи, протом половину оставшейся половины, половину оставшейся четверти и так далее. В итоге, Ахилес подойдёт вплотную к черепахе. Так и в этой формуле, если X не будет изменятся, то через какое-то количество циклов расчёта выход фильтра Y практически сравняется со входом X. Приведу пример изменения выходного сигнала фильтра для скачка входного сигнала с 50% до 70% при m=0.5:
Х : 50 50 50 70 70 70 70 70 70
Y : 50 50 50 60 65 68 69 70 70
Как видно, выход фильтра сравнялся со входным значением через 5 циклов вычислений.
Тепрь немного о сглаживающих свойствах данного фильтра. Приведу пример изменения выходного сигнала фильтра для единичного выброса во входном сигнале с 50% до 70% при m=0.5:
X : 50 50 50 70 50 50 50 50 50
Y : 50 50 50 60 55 53 51 50 50
Мы видим, что пик выброса на выходе фильтра был сглажен до 60%. Зато появился "хвост" - постепенное спадание выхода фильтра до исходного значения 50%, опять же таки через 5 циклов вычислений. Здесь имеет место одна небезынтересная деталь - величины интегралов по времени входного сигнала и выходного равны. Это означает, что хоть максимальное значение выброса и было сглажено, но вся энергия выброса входного сигнала прошла через фильтр. Практически это будет выражаться в том, что нос самолёта под действием сглаженного сигнала переместится на тот же угол, как если бы никакого сглаживания не было. Единственно, сглаженный сигнал обеспечивает боее плавное перемещение. А так же, этот фильтр полезен, если джойстик настолько шумит, что сама ФМ Ила, которая суть, опять же, некий фильтр, не может сгладить дрожание носа самолёта.
А теперь собственно, доказательства, что в Иле используется именно описаный мной способ сглаживания - апериодический фильтр.
Путём несложных опытов можно определить формулу расчёта параметра m в Иле:
m = (125 - Сглаживание)/125
То, что это именно так, проверить легко.
Напомню, как выглядит формула сглаживающего фильтра:
Y = Y + ( X - Y )*m;
1) При сглаживании = 0 параметр m равен 1. При этом формула для фильтра преобразуется в
Y = X;
То есть, идёт прямая перезапись значения со входа на выхоод без всякой фильтрации. Что, собственно мы и имеем в игре.
2) Попробуйте поставить сглаживание = 125. При этом вы не сможете сдвинуть зелёный маркер ни на миллиметр. И это не удивительно, ведь параметр m равен 0, а значит формула выглядит как:
Y=Y;
Выход фильтра постоянно присваивает себе собственное значение, которое как изначально проинициализировано нулём, так нулём и остаётся.
3) Теперь зададим сглаживание 128. Параметр m при этом станет отрицательным. Согласно формуле, это создаёт положительную обратную связь. Формулу можно, раскрыв скобки, записать так:
Y = Y+|m|*Y - |m|*X;
То есть выход фильтра постоянно складывается с долей самого себя. В иоге это должно приводить к быстрому достиженю максимального или минимального значения выхода фильтра, вне зависимости от значения входного сигнла. Проверьте - зелёный маркер, у меня по крайней мере, находися в нижнем положении и не реагирует на положение джойстика, кроме идиотского случая, описанного в моём первом сообщении в пункте 3, когда входной сигнал строго равен 0.
4) Тепрь рассмотрим, что происходит, если параметр m станет больше 1 но меньше 2. Это соответствует отрицательным значениям сглаживания до -125. Формулу запишем следующим образом:
Y = X + (X-Y)*m1,
где m1 = m - 1;
Здесь не так наглядно, но если посчитать по этой формуле, то видно, что в первый момент после изменения значения на входе, выход фильтра перепрыгнет это значение, на следуещем вычислении - недопрыгнет, и так колбасясь вокруг входного значения постепенно сравняется с ним. Подобное колбашение зелёного маркера становится заметно на глаз при значениях сглаживания -70 и меньше. проверьте сами.
5) Ну и последний гвоздь - при сглаживании менее -125, когда m станет больше 2, согласно формуле, численная схема апериодического фильтра потеряет устойчивость и разойдётся. В нашем случае это означает, что колбашение выхода фильтра вокруг входного значения будет происходить от верхнего предела до нижнего.
6)Ну и ещё: если бы мы имели дело со скользящим средним, то при отклонении джойстика зелёный маркер с постоянной скорость подбирался бы к красному. Однако, мы видим, это особенно заметно при большом сглаживании, что зелёный маркер замелдляется при приближении к красному. Это как раз характерно для апериодического фильтра.
Итак имеем совпадения по шести пунктам. Если кто-нибудь скажет, что это случайность, пусть первый бросит в меня камень и бежит по-дальше ;).
Доказано.
Ну и самый, на мой взгляд, интересный результат из всего этого - стала известна дискретность, с которой Ил вводит сигнал от джойстика в модель. С бльшой долей вероятности, что это есть дискретность расчёта физики в Иле.
10 раз в секунду.
PS Э... может это и так давно все знают? А я тут Америку открываю... :D
Ну и самый, на мой взгляд, интересный результат из всего этого - стала известна дискретность, с которой Ил вводит сигнал от джойстика в модель. С бльшой долей вероятности, что это есть дискретность расчёта физики в Иле.
10 раз в секунду.
PS Э... может это и так давно все знают? А я тут Америку открываю... :D
RESPEKT!
ВЕРЮ!
тогда сразу возникает вопрос:
А что мешает прицепить к джою (между direct-x и Илом) свой фильтр, работающий как надо?
Ну что мне мешает - понятно :ups:
Может кто-нибудь напишет программульку-эмулятор джоя, переводящую сигналы реального джоя в сигналы виртуального, сглаженного и настроенного?
С учётом дискретности по времени опроса в Иле, можно хорошо подавить шумы джоя (опрос системой, по крайней мере в 10 раз чаще) и подавать в ИЛ сигнал идеального джоя. При этом, можно повысить разрядность сигнала, относительно исходного джойстика, избавившись от "ступенек" на границах значений.
ИМХО именно эти "ступеньки" неправильно отрабатываются ФМ и вызывают столько нареканий.
Вот бы ещё узнать реально обсчитываемую разрядность джоя в Иле... :rolleyes:
можно вякнуть ИМХу?
мыслю я себе, что дело все в новой ФМ.
если в реальном самолете дергать рули с такой же частотой и амплитудой, как джоем - получим тот же результат. Именно нововведения в ФМ и обеспечивают столь резкое поведение самолета.
И еще есть у меня подозрение, что у самолета пропала масса, ибо ну очень резво он реагирует на рули, инерции практически нет.
Если бы в реальном самолёте от Щелбана по РУС самолёт также дёргался, то, сфотографировав спутный след можно было бы кардиограмму пилота расшифровывать :) .
С ФМ "не всё правильно". Ощущение отсутствия массы при малых отклонениях действительнол есть, а при больших масса ощущается.
С учётом дискретности по времени опроса в Иле, можно хорошо подавить шумы джоя (опрос системой, по крайней мере в 10 раз чаще) и подавать в ИЛ сигнал идеального джоя.
Я лично раздумываю над тем, что если опрос системой джойстика происходит 100 раз в секунду, то как бы урезать его до 10 раз. Высвободившееся процессорное время скормить тому же Илу, которому, как известно, много процессорного времени не бывает :D .
71Stranger
02.11.2005, 12:35
Я лично раздумываю над тем, что если опрос системой джойстика происходит 100 раз в секунду, то как бы урезать его до 10 раз. Высвободившееся процессорное время скормить тому же Илу, которому, как известно, много процессорного времени не бывает :D .
Опрос много времени не съест. Разницы между 100 и 10 опросов ты в Иле не разглядишь. а вот сделать нормальный драйвер, который качественно сгладит шум - это мысль.
Опрос много времени не съест. Разницы между 100 и 10 опросов ты в Иле не разглядишь. а вот сделать нормальный драйвер, который качественно сгладит шум - это мысль.
Довольно долго имея дело с любимой игрой, я предочитаю в её отношении дуть на воду. Чем меньше основной алгоритм будет прерываться на выполнение ненужных действий, тем меньше проблем будет с фризами, затыками и т.п. А тут, как-никак на 90 прерываний меньше. Вот только как бы этого добиться?
Довольно долго имея дело с любимой игрой, я предочитаю в её отношении дуть на воду. Чем меньше основной алгоритм будет прерываться на выполнение ненужных действий, тем меньше проблем будет с фризами, затыками и т.п. А тут, как-никак на 90 прерываний меньше. Вот только как бы этого добиться?
А ты серьёзно?
Никаких ил2коннект?, гиперлобей? Все лишние службы отключаешь?
Если так, и у тебя не цел 2000 и памяти не 128, попробуй всего этого не делать - удивишься - нет разницы!
Довольно долго имея дело с любимой игрой, я предочитаю в её отношении дуть на воду. Чем меньше основной алгоритм будет прерываться на выполнение ненужных действий, тем меньше проблем будет с фризами, затыками и т.п. А тут, как-никак на 90 прерываний меньше. Вот только как бы этого добиться?
Если ваши догадки верны, может сообщить об этом разрабочикам? Если у них времени, ( об этом слишком часто упоминается) то пусть подскажут путь решения, бага весьма и весьма серьезная.Можно в такую лужу сесть! Если со временем все ж таки нормально, пофиксят. В купе с артефактамии проч.
:ups: :rtfm: :rolleyes:
Ну и самый, на мой взгляд, интересный результат из всего этого - стала известна дискретность, с которой Ил вводит сигнал от джойстика в модель. С бльшой долей вероятности, что это есть дискретность расчёта физики в Иле.
10 раз в секунду.
PS Э... может это и так давно все знают? А я тут Америку открываю... :D
10 раз в секунду? Расчет физики? Я что-то очень сомневаюсь... :)
Никаких ил2коннект?, гиперлобей? Все лишние службы отключаешь?
Недавно как раз отключил лишнюю службу - службу времени Виндос. Она так и норовила мне поставить время на час меньше :D.
Если ваши догадки верны, может сообщить об этом разрабочикам?
Какие наши? Пока что я тут один догадки строю :D.
А на счёт разработчиков - люди они, как верно было замечено, чрезвычайно занятые. К тому же, они давным давно уже про себя всё знают, и лишний раз им напоминать не надо - обижаются они :D.
Какие наши? Пока что я тут один догадки строю :D.
А на счёт разработчиков - люди они, как верно было замечено, чрезвычайно занятые. К тому же, они давным давно уже про себя всё знают, и лишний раз им напоминать не надо - обижаются они :D.
Это нам впору обижаться за "сглаживание", сохраняющее энергию импульсного выброса. :(
Какие наши? Пока что я тут один догадки строю :D.
А на счёт разработчиков - люди они, как верно было замечено, чрезвычайно занятые. К тому же, они давным давно уже про себя всё знают, и лишний раз им напоминать не надо - обижаются они :D.
Дык это...Я ж на ВЫ)))
:ups:
А насчет Обижаться? Ну если они родом из...совка, где корапь для матросов, поезд для машиниста и сим для разработчика, то вопрос отпадает сам, как яйца от продналога. Если все ж таки нет, то обязаны прислушаться. И уж точно определить так ли это? Другое дело порядок ентой процедуры.Они вроде как его озвучили. Типа там, кто, откуда, какое железо суть проблемы. треки ( если нать, или скрины, тоже, если нать)) :D
А насчет Обижаться? Ну если они родом из...совка, где корапь для матросов, поезд для машиниста и сим для разработчика, то вопрос отпадает сам, как яйца от продналога.
Тише! Тише :expl: . О разработчиках или хорошо или никак :D . А не то нашу шарагу тут в миг прикроют.
FH_Lord_Lexus
02.11.2005, 14:37
С бльшой долей вероятности, что это есть дискретность расчёта физики в Иле.
10 раз в секунду.
Очень похоже на правду. В свое время я думал над этим, и у меня возникало подозрение, что часть сомнительных артефактов в иле происходят из-за того, что обсчитываются они с опозданием в очередной такт расчета.
Тише! Тише :expl: . О разработчиках или хорошо или никак :D . А не то нашу шарагу тут в миг прикроют.
Это в эпоху то демократии и гласности???
:D :D :D . Мы про них тогда всем расскажем. Пущай знають! Не уверен только, критично ли для МГ такой параметр в бизнесе как кредит доверия , или потеря имиджа. :confused: А с другой стороны это все ж пока догадки и нет ни подтверждения официальной стороны ни опровержения. Вам( тебе) написать надо. Любой ответ на проблему такого рода будет для нашей пользы. Либо пофиксят , если есть чего, либо объяснят где с бубном надо прыгать. :D
10 раз в секунду? Расчет физики? Я что-то очень сомневаюсь... :)
Надо сказать, и я не полон уверенности, но...
Сигнал от джойстика орабатывается 10 раз в секунду - это я могу доказать, но пока не хочу выкладками отпугивать читателей от топика.
В связи с этим вопрос: зачем понадобилось обрабатывать сигнал от джойстика реже, чем выполняется расчёт физики?
В обычной практике так делается, если объём второстепенных расчётов составляет значительную долю от полного обёма вычислений и не укладывается в основной таймерный цикл. Тогда выделяется другой таймерный цикл, с большим периодом, и в нём производятся второстепенные расчёты. Но в нашем случае:
1) Разве ввод обратной связи можно считать второстепенным расчётом?
2) Можем ли мы поверить, что объём вычислений по обработке сигналов осей джойстика занимает значительную часть от объёма вычислений ФМ, ДМ и прочего М?
Оба пункта не выдерживают критики.
Вывод - либо неоправдано занижена дискретность ввода сигнала джойстика в модель, либо 10 раз в секнду - это и есть дискретность расчёта всей физики Ила.
.
Вывод - либо неоправдано занижена дискретность ввода сигнала джойстика в модель, либо 10 раз в секнду - это и есть дискретность расчёта всей физики Ила.
10 раз в секунду - врядли. Ведь у большинства фпс больше,а совпадающих кадров вроде не наблюдается?
Или они силы-моменты-скорости 10 раз в секунду считают, а координаты - чаще?
71Stranger
02.11.2005, 15:16
В связи с этим вопрос: зачем понадобилось обрабатывать сигнал от джойстика реже, чем выполняется расчёт физики?
В обычной практике так делается, если объём второстепенных расчётов составляет значительную долю от полного обёма вычислений и не укладывается в основной таймерный цикл. Тогда выделяется другой таймерный цикл, с большим периодом, и в нём производятся второстепенные расчёты. Но в нашем случае:
1) Разве ввод обратной связи можно считать второстепенным расчётом?
2) Можем ли мы поверить, что объём вычислений по обработке сигналов осей джойстика занимает значительную часть от объёма вычислений ФМ, ДМ и прочего М?
Нее! Не похоже. Кадров-то больше! Если-б рисовались всего 10 в секунду - были-б вполне заметные тормоза! Значит между отсчетами интерполяция? А зачем оно надо? ИМХО, положение крафтов, стрельба, ФМ, еще что-то обсчитывается намного чаще, а управление, какое-нить движение наземки, обломки там, взрывы и тп - 10 раз в секунду, ну в этот цикл запихали и обсчет джоя...
10 раз в секунду - врядли. Ведь у большинства фпс больше,а совпадающих кадров вроде не наблюдается?
Или они силы-моменты-скорости 10 раз в секунду считают, а координаты - чаще?
Тут можно стрить догадки. Я считаю, что расчёт физики 10 раз в секунду достаточен для обеспечения сходимости численной схемы. Процессору легче интерполировать координаты для каждого фрейма, чем 100 или более раз в секунду обсчитывать ФМ полностью. Но как там на самом деле - я не знаю.
Наихудший вариант - это если ФМ считается 100 раз в секеунду, а джойстик только 10 раз. Это была бы просто очередная подстава для игроков. Причём, на мой взгляд, неаргументированная.
положение крафтов, стрельба, ФМ, еще что-то обсчитывается намного чаще, а управление, какое-нить движение наземки, обломки там, взрывы и тп - 10 раз в секунду, ну в этот цикл запихали и обсчет джоя...
Обратную связь запихали во всякие второстепенные задачи? Ты считаешь это логично?
Тридцать третий
02.11.2005, 15:33
10 раз в секунду - врядли. Ведь у большинства фпс больше,а совпадающих кадров вроде не наблюдается?
Или они силы-моменты-скорости 10 раз в секунду считают, а координаты - чаще?
С другой стороны - получается, что на "супер-компьютерах" число ФПС упрется в 1/время тика так? Тогда можно это проверить, запустив на различных конфигурациях простейшую карту с минимальной графикой и померять ФПС. Если на разных, но мощных компах максимальные ФПС совпадут - тогда догадка верна. А что происходит на "слабых" компах, выдающих меньше 10 ФПС?
Наихудший вариант - это если ФМ считается 100 раз в секеунду, а джойстик только 10 раз. Это была бы просто очередная подстава для игроков. Причём, на мой взгляд, неаргументированная.
Мне 10 раз в сек не нравится тем, численная схему будет хоть и сходящаяся, но очень неконсервативная, особенно при движении по изогнутым траекториям - возникли бы "дополнителыне" ускорения порядка 0.5м/c^2, а это килоньютоны тяги 8)). А разработчики отвечают, что с этим все ОК... так что частота ФМ, похоже, выше...
Надо придумать опыт - как бы эту дискретность ФМ посчитать?
А откуда данные о 10 раз в секунду с джойстика?
update: еще раз убеждаюсь, что реализация - это самая сложная задача
А откуда данные о 10 раз в секунду с джойстика?
Оттуда:
http://212.192.155.117/forum/showthread.php?t=1511 :D
update: еще раз убеждаюсь, что реализация - это самая сложная задача
Тебе, как маркетологу, видней :D.
Тут можно стрить догадки. Я считаю, что расчёт физики 10 раз в секунду достаточен для обеспечения сходимости численной схемы. Процессору легче интерполировать координаты для каждого фрейма, чем 100 или более раз в секунду обсчитывать ФМ полностью. Но как там на самом деле - я не знаю.
Наихудший вариант - это если ФМ считается 100 раз в секунду, а джойстик только 10 раз. Это была бы просто очередная подстава для игроков. Причём, на мой взгляд, неаргументированная.
При таком варианте придётся не интерполировать, а экстраполировать.
Первый тик получили, а нужно считать уже следующий кадр, а что будет следующим тиком ещё не известно.
Или считать с задержкой на 1 тик?
Тогда 1/10 секунды задержки - это много...
как только вы расскажете КАК увидеть разницу между сглаживанием 0 и -50, а то какие то домыслы одни, смотрят в черный квадрат малевича и рассказывают что видят там что то кроме черного квадрата
:D
Воображение, друг мой, воображение! Воспользуйся им, и может быть вместо "Чёрного квадрата" ты увидешь эпохальное полотно "Чёрной-чёрной ночью негры уголь воруют". ;)
А кстати, не связана ли пресловутая "болтанка" с экстраполяцией?
Изменил между тиками джой на 1 показания, и следующую 1/10 сек считается, что джой продолжил движение в том же направлении...
Приходит новый тик, а показания джоя остались прежними- ё-маё! А мы-то насчитали... Крути взад! А если не на 1, а на 10?
А кстати, не связана ли пресловутая "болтанка" с экстраполяцией?
Изменил между тиками джой на 1 показания, и следующую 1/10 сек считается, что джой продолжил движение в том же направлении...
Приходит новый тик, а показания джоя остались прежними- ё-маё! А мы-то насчитали... Крути взад! А если не на 1, а на 10?
Может и такое. Всё может быть, я теперь ничему не удивлюсь. :rolleyes:
71Stranger
02.11.2005, 19:25
Обратную связь запихали во всякие второстепенные задачи? Ты считаешь это логично?
Не во второстепенные, а в медленные. Юзер - тормоз. :) Чтоб избежать злобного дрочения ручки и избавиться от необходимости сглаживать его в ФМ можно было просто пореже опрашивать джой. ПМСМ.
71Stranger
02.11.2005, 19:32
А кстати, не связана ли пресловутая "болтанка" с экстраполяцией?
Изменил между тиками джой на 1 показания, и следующую 1/10 сек считается, что джой продолжил движение в том же направлении...
Приходит новый тик, а показания джоя остались прежними- ё-маё! А мы-то насчитали... Крути взад! А если не на 1, а на 10?
Не. крафт бы колбасило как умалишенный. Особенно что-нить типа фоки с высокой маневренностью по крену. Восему, имхо, частота опроса мала, между опросам джой (само-собой) считается неподвижным, а частота рассчета физики выше.
Не во второстепенные, а в медленные. Юзер - тормоз. :) Чтоб избежать злобного дрочения ручки и избавиться от необходимости сглаживать его в ФМ можно было просто пореже опрашивать джой. ПМСМ.
А что же тогда не 1 раз в секнду? Или, ещё лучше, в 10 секунд. Фильтровать так будет - закачаешься. Все будем летать как в кинохронике.
Ракция юзера - прядка 0.1 секнды. А нам накидывают ещё столько же за счёт низкой частоты опроса джойстика.
71Stranger
02.11.2005, 20:23
А что же тогда не 1 раз в секнду? Или, ещё лучше, в 10 секунд. Фильтровать так будет - закачаешься. Все будем летать как в кинохронике.
Ракция юзера - прядка 0.1 секнды. А нам накидывают ещё столько же за счёт низкой частоты опроса джойстика.
Я долго про это все думал. Про опыты. Про чтение доки на директикс, про то, что на реальном самоле ручку с борта на борт за 0.1сек не переведешь...
В итоге скажу вот что: если мы почитай 5 лет отлетали и только сейчас заметили, значит все нормально. :) Ну ломает МГ громоздить отдельный цикл на опрос джоя. Ну и пусть. Я думаю, в ранних пре-бетах они все промеряли, перепробовали и остановились на такой схеме, тк эффект от дальнейших улучшений не оправдывает затрат... Как нибудь так они думали, наверное... Опять-же если джой опрашивать 100 раз в секунду, не факт, что он будет так часто отвечать... Короче, можно долго :expl: а разработчику все равно видней %)
Я думаю, в ранних пре-бетах они все промеряли, перепробовали и остановились на такой схеме, тк эффект от дальнейших улучшений не оправдывает затрат... Как нибудь так они думали, наверное...
:D :D :D
Maximus_G
03.11.2005, 07:48
Ну и самый, на мой взгляд, интересный результат из всего этого - стала известна дискретность, с которой Ил вводит сигнал от джойстика в модель. С бльшой долей вероятности, что это есть дискретность расчёта физики в Иле.
10 раз в секунду.
PS Э... может это и так давно все знают? А я тут Америку открываю... :D
Про дискретность обработки сигналов с устройств пока оставим, вопрос насчет физики.
Как с этим утверждением о 10 Гц коррелирует то, что игра показывает нам числовые значения параметров движения ЛА с частотой, в разы большей 10 Гц?
Грубо говоря, переходим в Shift+F1, переводим аппарат в пикирование и наблюдаем мелькание цифр высоты, равное ФПСам.
Как с этим утверждением о 10 Гц коррелирует то, что игра показывает нам числовые значения параметров движения ЛА с частотой, в разы большей 10 Гц?
Грубо говоря, переходим в Shift+F1, переводим аппарат в пикирование и наблюдаем мелькание цифр высоты, равное ФПСам.Это значит, что все силы, моменты, и, соответственно, ускорения рассчитываются 10 раз в секунду. А вычислять скорости и координаты можно чаще (и рисовать самолет в этих координатах), это времени почти не занимает.
Maximus_G
03.11.2005, 09:11
Это значит, что все силы, моменты, и, соответственно, ускорения рассчитываются 10 раз в секунду. А вычислять скорости и координаты можно чаще
Ты разделил физику на эти две части и сделал именно такой вывод, исходя из предположения, что скорости и координаты можно считать чаще? :ups:
---
Хотя в твоих словах достаточно здравого смысла.
Ты разделил физику на эти две части и сделал именно такой вывод, исходя из предположения, что скорости и координаты можно считать чаще? :ups:Это не на 2 части. Физика вся кончается на расчете мгновенных ускорений. Все остальное - это арифметика вида v+=a*t, x+=v*t+a*t*t/2. Знакомо?
Maximus_G
03.11.2005, 09:24
Далее:
Означает ли предположение о 100 мс то, что при нажатии кнопки стрельбы снаряды начнут свое движение точно в момент начала следующего 100-миллисекундного тика?
Означает ли предположение о 100 мс то, что при нажатии кнопки стрельбы снаряды начнут свое движение точно в момент начала следующего 100-миллисекундного тика?Ну раз джой опрашивается 10 раз в секунду, а кнопка стрельбы находится именно на нем? :)
По крайней мере, для себя я давно сделал вывод, что при стрельбе под большими углами к траектории цели со сверхмалых дистанций упреждение надо брать побольше, чем обычно, хотя "в реале" нужно было бы делать скорее наоборот (из-за замедления снарядов в воздухе). Одно время я грешил на то, что у двухкнопочного курка x52 слишком большой ход, и за счет этого имеется определенная задержка между сигналом пальчику о нажатии и выстрелом из пушки, но теперь я думаю, что дело не только в этом.
Более любопытен другой вопрос - как опрашивается клавиатура? Может, почаще (как-никак, винда события сразу в очередь пихает)?
Maximus_G
03.11.2005, 10:29
Более любопытен другой вопрос - как опрашивается клавиатура? Может, почаще (как-никак, винда события сразу в очередь пихает)?
Мои тесты показывают что
* _задержка реакции_ Ила на клаву значительно меньше, чем на джой;
* _частота опроса_ клавы такая же.
См. тему "Джои в Иле, замедленная реакция (http://forum.sukhoi.ru/showthread.php?t=35802)" и аттач.
Наличие частоты опроса и её величину определяю исходя из предположения, что если мы многократно тыкаем клавиши, то в среднем попадаем в середину временного промежутка между соседними опросами. Разумеется, плюс время задержки. Получившееся распределение глазом проверяем на нормальность, и если оно нормальное - то ширина распределения соответствует времени между тиками, т.е. частоте опроса. См. лист №2 в эксельном файле.
Замеры сделаны через покадровый просмотр записи с экрана, сделанной цифрокамерой (частота кадров = 50, соответственно точность измерений 20 мс).
---
Честно говоря, поначалу думал, что это фигня, сел тестировать, и тут оно объявилось.
Ну раз джой опрашивается 10 раз в секунду, а кнопка стрельбы находится именно на нем? :)
10 раз в секунду - это для аналоговых осей. Как вводятся состояния кнопок я не определял. Тут подходит методика Максимуса.
* _задержка реакции_ Ила на клаву значительно меньше, чем на джой;Интересно, а возможен ли такой "чит" - профайлером джоя связываем кнопку на джое с кнопкой на клаве, и уже клавиатурную кнопку забиваем в Ил. Если это даст реальный эффект - кое-кто и после смерти устанет икать... Вечером буду пробовать.
в ил2 грохнуть клавишника было в ближнем бою ох как не просто, тока на е,, сейчас не думаю, но некий прирост на угле на больших скоростях будет, но опятьже триммера все преимущества клавиш и настроек гасят
Еропанк. Признаюсь, дурак был. Отрицательное сглаживание - это действительно ФВЧ... То есть супер-плавные движения не передает. Не замечал, потому что моторика у меня нервная %) Коллективный разум рулит :)
Еропанк. Признаюсь, дурак был. Отрицательное сглаживание - это действительно ФВЧ... То есть супер-плавные движения не передает. Не замечал, потому что моторика у меня нервная %) Коллективный разум рулит :)
Орионыч, иди проспись :) .
Тут можно стрить догадки. Я считаю, что расчёт физики 10 раз в секунду достаточен для обеспечения сходимости численной схемы. Процессору легче интерполировать координаты для каждого фрейма, чем 100 или более раз в секунду обсчитывать ФМ полностью. Но как там на самом деле - я не знаю.
Наихудший вариант - это если ФМ считается 100 раз в секеунду, а джойстик только 10 раз. Это была бы просто очередная подстава для игроков. Причём, на мой взгляд, неаргументированная.
Ну почему... теорему Шеннона (Котельникова :) ) еще никто не отменял. Запиши типичный дроч джоя в бою, например, вычисли его спектр... даже интересно будет, какая там часть энергии на составляющие выше 3-4 Гц придется. Я серьезно: очень интересную работу проделаешь и полезную... :)
aeropunk
09.11.2005, 15:51
Еропанк. Признаюсь, дурак был. Отрицательное сглаживание - это действительно ФВЧ... То есть супер-плавные движения не передает. Не замечал, потому что моторика у меня нервная %) Коллективный разум рулит :)
Ну, как мы выяснили - это не чистый ФВЧ, а некий фильтр, АЧХ которого в интересующем нас диапазоне опускается от верхних частот к нижним. При этом даже трудно сказать, какую именно форму имеет эта АЧХ.
В другой теме я предположил, что АЧХ этого фильтра имеет форму функции Котельникова (sin(x-a)/(x-a)) в диапазоне от 0 до a. Но сейчас я в этом совсем не уверен. Из практических опытов можно утверждать только то, что АЧХ этого фильтра при отрицательных сглаживаниях понижается с понижением частоты.
Т.е. в данном случае термин ФВЧ применим весьма условно, только для обозначения более сильного гашения НЧ по сравнению с ВЧ.
71Stranger
22.12.2005, 12:24
А что многоуважаемые авторы думают по поводу повышения чисел в кривых отклика свыше 100? Например 10,40,60,80,100,110,115,120,123,125
Будеит это работать, или нет? Особенно в свете вот этой ветки:
http://forum.sukhoi.ru/showthread.php?p=671266#post671266
aeropunk
22.12.2005, 12:34
А что многоуважаемые авторы думают по поводу повышения чисел в кривых отклика свыше 100? Например 10,40,60,80,100,110,115,120,123,125
Будеит это работать, или нет? Особенно в свете вот этой ветки:
http://forum.sukhoi.ru/showthread.php?p=671266#post671266
Да это будет работать.
Значения кривой выше 100 сужают рабочий ход физической оси.
Т.е. при кривых "все по 200" виртуальная ручка достигнет крайнего положения уже на половине хода физической оси. Дальнейшее движение физической оси на игру не повлияет.
Соответственно при кривых "все по 300" тоже самое произойдет на одной трети хода физической оси.
Так что нет никакого криминала в использовании значений >100 для формирования кривой отклика.
Беги, 71Stranger, беги быстрее! ПАКМАН ПРОСНУЛСЯ!!! :D
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot