???
Математика на уровне МГУ

Показано с 1 по 13 из 13

Тема: Взгляд со стороны на Point of View, или немного о хатках.

  1. #1
    Ломаю джойстики Аватар для Alex Oz
    Регистрация
    03.03.2007
    Адрес
    Minsk
    Возраст
    58
    Сообщений
    1,092
    Images
    4

    Взгляд со стороны на Point of View, или немного о хатках.

    Таки взглянем на хатку. Пристально. Внимательно. На первый взгляд - грибок, четыре кнопки, восемь позиций.
    Это - обычно-привычная хатка, все производители игр/симуляторов только так её и видят.
    Производители джойстиков только так её и делают, ибо игры/симы по другому её и не представляют.
    Теперь посмотрим в структуру DIJOYSTATE, из которой собственно практически все игры и берут данные от контроллеров джойстиков:


    typedef struct DIJOYSTATE {
    LONG lX; /* x-axis position */
    LONG lY; /* y-axis position */
    LONG lZ; /* z-axis position */
    LONG lRx; /* x-axis rotation */
    LONG lRy; /* y-axis rotation */
    LONG lRz; /* z-axis rotation */
    LONG rglSlider[2]; /* extra axes positions */
    DWORD rgdwPOV[4]; /* POV directions */
    BYTE rgbButtons[32]; /* 32 buttons */
    } DIJOYSTATE, *LPDIJOYSTATE;

    В DIJOYSTATE2 ( DX8 ) собственно больше кнопок и дополнительных осей, но нам сейчас это неинтересно.
    Интересно больше что rgdwPOV - это DWORD и никак не три бита.
    Формально любой контроллер обьявляет хатку как аналоговое (не дискретное!) устройство с диапазоном 360°, но сужает её дискретность до 3 бит. Игры в конечном итоге из директинпута получают значения от 0 до 36000 - и ничего не знают о изначальной дискретности хатки.
    Самое интересное начинается дальше.После ввода значений хатки игра/сим делит полученное значение из DX на 4500 - и получает наши знакомые три бита и восемь положений. Потом игра, получив эти данные, преобразует их в восемь кнопок, которые затем уже мапятся на обзор. Логично? Мне кажется не совсем. Это просто костыль для поддержки четырехкнопочных хаток - иных не было.

    Но, ещё более интересно, что соответсвующий апплет Windows XP - вполне нормально понимает хатки с числом позиций больше 8( правда больше 315° не видит - ну не было таких устройств для теста тогда). Если позволить игре сразу, минуя дополнительные преобразования принять данные и установить "поинт оф вью" согласно того что выдала хатка - получим и совместимость с 8-ми позиционными хатками, и с аналоговыми.

    Ради интереса создал хатку на 8 бит ( 240°, дискретность 1,5°) - винда отлично её понимает, директ инпут вполне успешно выдает эти данные.
    И текущий DX позволяет их иметь в девайсе аж 4 штуки. И все полностью аналоговые. Что это означает на практике? Что уже больше десятка лет существуют дополнительных 4 аналоговых оси в любом контроллере - просто ими никто не пользуется. Не пользуется во-первых - потому что до сего дня не существовало таких устройств, которые давали бы такую возможность, а во-вторых - не существует игр/симов, которые позволяли бы эту возможность использовать. Замкнутый круг. Приблизительно такая же ситуация была когда я попробовал первую вибронакидку - но тогда благодаря недоразумению Ил2Ш позволил получить вибрацию на "левое" устройство.

    После перехода на DX8 игровые устройтсва получили три дополнительных оси (5+3 , +60% ).Это была революция своего рода. Однако возможность использования структур POV как аналоговых - это означает испоьзования 8+4 ( +50% ) =12 осей уже сегодня с одного контроллера.И эта латентная "революция" лежит тихохонько и ждет своего часа.
    Все что надо - просто воспользоваться этим. По сравнению с раскраской и расчетом баллистической траектории пульки в любом симе - это 0,0000....1 % кода обсчета этой пульки и максимум полчаса работы с перерывом на кофе/пиво.

    В результате запросто можно получить полноценный 3D обзор с микростика ( при этом оставить 8 осей на управление) , или если есть трекер - 4 дополнительных оси на управление - будь то радиатор, закрылки или еще чего - конечно мелочишка в современном симе, а приятно...


    Увидят ли когда нибудь симы аналоговые хатки? (читай - захотят ли разработчики включить полноценную поддержку хатки как устройства обзора либо как аналоговой оси). Делаем ставки?


    Приложения
    Нажмите на изображение для увеличения. 

Название:	POV-3.gif 
Просмотров:	59 
Размер:	104.7 Кб 
ID:	168760Нажмите на изображение для увеличения. 

Название:	POV-2.gif 
Просмотров:	43 
Размер:	103.9 Кб 
ID:	168761Нажмите на изображение для увеличения. 

Название:	POV-1.gif 
Просмотров:	41 
Размер:	101.1 Кб 
ID:	168762

    http://www.youtube.com/watch?v=lJYi1...ature=youtu.be


    PS в тестовом конфиге - хатки POV2 и POV3 "привязаны" к основным осям XY - для наглядности, POV1 - обычная 8-ми позиционная хатка.
    Крайний раз редактировалось Alex Oz; 09.07.2013 в 19:03.
    Все знают как играть в футбол и делать джойстики.
    Законы Мерфи пока что никто не отменял, и судя по всему, не собирается...
    Собака лает — ветер носит, а караван идёт...

  2. #2

    Re: Взгляд со стороны на Point of View, или немного о хатках.

    Ну что сказать...супер!!! Очень интересно.
    Первый вопрос который приходит в голову - триммирование этим способом осей крена и тангажа можно осуществить?

  3. #3
    Ломаю джойстики Аватар для Alex Oz
    Регистрация
    03.03.2007
    Адрес
    Minsk
    Возраст
    58
    Сообщений
    1,092
    Images
    4

    Re: Взгляд со стороны на Point of View, или немного о хатках.

    Хатко-оси можно цеплять в симе - точно также, как и обычные - хоть на триммеры, хоть куда. Единственное "ограничение", связанное с совместимостью с нынешними "дискретными" хатками - это 36000 отсчетов оси, а не 65536 как для обычных. Впрочем ограничеие весьма условное, потому как и такое разрешение выше любых потенциально требуемых разрешений для устройств в 4000 отсчетов. В симе добавить строчку, где будет нормировка в зависимости от типа оси - гораздо проще и быстрее, чем сейчас всё это было описать здесь.
    Все знают как играть в футбол и делать джойстики.
    Законы Мерфи пока что никто не отменял, и судя по всему, не собирается...
    Собака лает — ветер носит, а караван идёт...

  4. #4
    Механик Аватар для mega_mozg_13
    Регистрация
    04.07.2012
    Адрес
    Минск, РБ.
    Возраст
    43
    Сообщений
    326

    Re: Взгляд со стороны на Point of View, или немного о хатках.

    Цитата Сообщение от Alex Oz
    И текущий DX позволяет их иметь в девайсе аж 4 штуки.
    а можно ли глянуть на HID дискриптор такого устройства, жутко интересно как это объявляется?
    что-то я всё время думал, что хатка одна на устройство...

  5. #5
    Ломаю джойстики Аватар для Alex Oz
    Регистрация
    03.03.2007
    Адрес
    Minsk
    Возраст
    58
    Сообщений
    1,092
    Images
    4

    Re: Взгляд со стороны на Point of View, или немного о хатках.

    Да пожалуйста, секрета в этом никакого нет:

    HID_UsagePage(HID_USAGE_PAGE_GENERIC_DESKTOP),
    HID_Usage(HID_USAGE_GENERIC_HATSWITCH),
    HID_LogicalMin(0),
    HID_PhysicalMin(0),
    HID_LogicalMaxS(POV_MAX-1),
    HID_PhysicalMaxS(315),
    HID_Unit(0x14),
    HID_ReportSize(8),
    HID_ReportCount(1),
    HID_Input(HID_Data | HID_Variable | HID_Absolute | HID_NullState)

    Здесь однобайтовая хатка , при POV_MAX=8 - 8 ми позиционная, при POV_MAX=240 - аналоговая с шагом 1,5° (соответственно надо скорректировать HID_PhysicalMaxS(360), 0xFF - в обоих случаях считается нейтральным положением.
    А по числу хаток дальше возможны варианты: 4 раза повторяем эту структуру либо повторяем в ней HID_Usage(HID_USAGE_GENERIC_HATSWITCH) - еще три раза и сотвественно тогда HID_ReportCount(4). Первый вариант больше подходит для динамического формирования HID-репорта, второй - для статического задания.
    В NJoy32 используется динамический способ, который позволяет задать количество указателей POV (0-4) самим пользователем в три клика мышки.
    Разумеется можно задать размер данных и не один, а два байта , и получить не 240 отсчетов, а вплоть до 36000 - но пока это можно только увидеть в тестовой программе.

    Минимумы в принципе можно и не обьявлять, если ранее были заданы нули.
    Все знают как играть в футбол и делать джойстики.
    Законы Мерфи пока что никто не отменял, и судя по всему, не собирается...
    Собака лает — ветер носит, а караван идёт...

  6. #6
    Механик Аватар для mega_mozg_13
    Регистрация
    04.07.2012
    Адрес
    Минск, РБ.
    Возраст
    43
    Сообщений
    326

    Re: Взгляд со стороны на Point of View, или немного о хатках.

    хм, вот оно как!!!
    просто все остальные параметры объявляются с привязкой типа "это ось такая-то" или "кнопка номер N", а тут просто подряд от 1й до 4й хаток.
    будет чем заняться и прикрутить вагон хаток к старику мджою...
    Спасибо.

  7. #7
    Ломаю джойстики Аватар для Alex Oz
    Регистрация
    03.03.2007
    Адрес
    Minsk
    Возраст
    58
    Сообщений
    1,092
    Images
    4

    Re: Взгляд со стороны на Point of View, или немного о хатках.

    Да, все просто, пожалуйста, пользуйтесь на здоровье

    Один ньюанс - первая хатка это крайняя объявленная, если правильно помню...
    Крайний раз редактировалось Alex Oz; 08.07.2013 в 13:04.
    Все знают как играть в футбол и делать джойстики.
    Законы Мерфи пока что никто не отменял, и судя по всему, не собирается...
    Собака лает — ветер носит, а караван идёт...

  8. #8

    Re: Взгляд со стороны на Point of View, или немного о хатках.

    Алекс, мне кажется что есть смысл создать тему о твоем NJoy32.
    По крайней мере есть смысл рассказать о тех возможностях которые дает его настройка.
    Популярезировать надо контроллеры которые позволяют пользователям производить тонкие настройки под себя.
    Большинство пользователей просто тупо назначают кнопки и оси в самой игре, даже не подозревая о тех возможностях которые им предоставляет этот контроллер.
    Последнее относится не только к NJoy32 но и к большинству других контроллеров.

  9. #9
    Ломаю джойстики Аватар для Alex Oz
    Регистрация
    03.03.2007
    Адрес
    Minsk
    Возраст
    58
    Сообщений
    1,092
    Images
    4

    Re: Взгляд со стороны на Point of View, или немного о хатках.

    О не, только не это Я популяризацию не потяну и не переживу - хочется успеть еще чего-то сделать - контроллер в нынешнем состоянии это только половина всех задумок.А потомки (надеюсь благодарные) со временем разберутся, чего там наворочено, и понапишут красивые и понятные мануалы.
    Ну а кто разобрался и пользуется уже сейчас - надеюсь не сильно ругаются в мою сторону
    Все знают как играть в футбол и делать джойстики.
    Законы Мерфи пока что никто не отменял, и судя по всему, не собирается...
    Собака лает — ветер носит, а караван идёт...

  10. #10

    Re: Взгляд со стороны на Point of View, или немного о хатках.

    А кто Алекс лучше тебя знает что там можно сделать?
    Я ж не говорю что бы ты писал трехтомную монографию с иллюстрацими!
    Ты "на пальцах" покажи что он может, а дальше глядишь народ подтянется и этот топик и станет таким мануалом при соответствующем желании...
    Тут главное "ввязаться в драку"!
    Начни - там видно будет, опиши просто что уже реализовано, без особых подробностей, только о том что уже возможно и отработано...

  11. #11
    Механик Аватар для mega_mozg_13
    Регистрация
    04.07.2012
    Адрес
    Минск, РБ.
    Возраст
    43
    Сообщений
    326

    Re: Взгляд со стороны на Point of View, или немного о хатках.

    Цитата Сообщение от Pavel_Kh Посмотреть сообщение
    Тут главное "ввязаться в драку"!
    как говорится, инициатива - наказуема =)
    электроника есть под рукой? начинайте писать, а автор уже подправит ньюансы.
    мне вот очень тяжело писать мануал, сам спинным мозгом понимаешь как всё работает а как это словами расписать, да чтобы понятно было.
    основная задача это отделить что нужно рассказывать конечному пользователю, а что нет.

  12. #12

    Re: Взгляд со стороны на Point of View, или немного о хатках.

    Цитата Сообщение от mega_mozg_13 Посмотреть сообщение
    как говорится, инициатива - наказуема =)
    электроника есть под рукой? начинайте писать, а автор уже подправит ньюансы.
    мне вот очень тяжело писать мануал, сам спинным мозгом понимаешь как всё работает а как это словами расписать, да чтобы понятно было.
    основная задача это отделить что нужно рассказывать конечному пользователю, а что нет.
    Под рукой есть, но не моя.
    Так что я это все даже попробовать толком не могу.
    Да и времени нет...к сожалению.

  13. #13
    Конструктор Аватар для UIV
    Регистрация
    08.07.2003
    Адрес
    ВКБ
    Сообщений
    3,429

    Re: Взгляд со стороны на Point of View, или немного о хатках.

    Цитата Сообщение от Pavel_Kh Посмотреть сообщение
    Под рукой есть, но не моя.
    Так что я это все даже попробовать толком не могу.
    Да и времени нет...к сожалению.
    Ага, а у Алекса время есть?

    - - - Добавлено - - -

    Это трата времени, писатт мануалы, когда в проекте реализовано только половина задуманных функций. Изменение функционала = правки мануала. По времени это может быть в разы больше, чем непосредственное программирование.
    Виртуальное Конструкторское Бюро
    http://www.vkb-pro.ru

Ваши права

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