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

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

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

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Ломаю джойстики Аватар для Alex Oz
    Регистрация
    03.03.2007
    Адрес
    Minsk
    Возраст
    59
    Сообщений
    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.
    Все знают как играть в футбол и делать джойстики.
    Законы Мерфи пока что никто не отменял, и судя по всему, не собирается...
    Собака лает — ветер носит, а караван идёт...

Ваши права

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