Проблема с мышкой

Тема в разделе "WASM.DirectX", создана пользователем sash_ok, 6 май 2006.

  1. sash_ok

    sash_ok New Member

    Публикаций:
    0
    Регистрация:
    6 май 2006
    Сообщения:
    4
    Адрес:
    Komsomolsk
    Помогите, пожалуйста. Кто-нибудь, подскажите, как организовать обзор мышкой в DX на асме. Нигде не могу найти, и у самого уже 4 месяца не могу ничего сообразить
     
  2. Kozyr__

    Kozyr__ New Member

    Публикаций:
    0
    Регистрация:
    28 янв 2005
    Сообщения:
    213
    Адрес:
    Ukraine
    как организовать обзор мышкой в DX на асме



    ты имеешь в виду, что положение камеры управляется мышкой?
     
  3. sash_ok

    sash_ok New Member

    Публикаций:
    0
    Регистрация:
    6 май 2006
    Сообщения:
    4
    Адрес:
    Komsomolsk
    Да. Помогите, плиз
     
  4. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    Скока новых юзеров на васме... И все с такими вопросами... Аж неприлично :)))



    sash_ok



    Скажите пожалста, молодой человек, знакомы ли Вам такие понятия как векторное произведение, а так же поворот вектора вокруг базовых осей?
     
  5. sash_ok

    sash_ok New Member

    Публикаций:
    0
    Регистрация:
    6 май 2006
    Сообщения:
    4
    Адрес:
    Komsomolsk
    _DEN_: Знакомы, конечно. Но сколько не пытался, ничего не получается, а туториалов на эту тему тоже не встречал. Вопрос-то ламерский, но всё-таки...
     
  6. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    sash_ok







    Вопрос не просто ламерский... Боюсь бан за мат получить :)) Что-то у меня какое-то весеннее обострение :))



    Ну вот смотри. Давай попробуем порассуждать на уровне детсада.



    Движение мыши влево-вправо определяет угол поворота вокруг вертикальной оси.

    Движение мыши вверх-вниз определяет угол поворота вокруг оси, лежащей в горизонтальной плоскости. Какой именно - выбрать по вкусу.



    Далее поворачиваемся сначала по одному углу относительно одной оси, далее - по другому углу относительно другой оси. Порядок не помню, т.к. пьян и лень думать. В итоге имеем произведение двух матриц поворота. ВСЕ.
     
  7. Kozyr__

    Kozyr__ New Member

    Публикаций:
    0
    Регистрация:
    28 янв 2005
    Сообщения:
    213
    Адрес:
    Ukraine
    sash_ok

    для управления камерой можно использовать кватернионы. Например, смотри вот эту статью (о кватернионах есть хорошая статья на gamedev.ru).



    еще посмотри функцию D3DUtil_GetRotationFromCursor и класс CD3DArcBall (\DXSDK\Samples\C++\Common\Src\d3dutil.cpp)
     
  8. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    Kozyr__



    Человек будет в два раза дольше врубаться что такое кватернионы чем просто выполнить два матричных умножения.
     
  9. Kozyr__

    Kozyr__ New Member

    Публикаций:
    0
    Регистрация:
    28 янв 2005
    Сообщения:
    213
    Адрес:
    Ukraine
    _DEN_

    ничего, лишняя инфомация не помешает, а сделает он так, как будет ему удобнее.
     
  10. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    Kozyr__



    Нифакт что с кватернионами удобнее. По-любому придется делать два поворота, что с кватернионами, что с матрицами. Вот только результирующий кватернион надо по-любому в конце в матрицу перевести, а это одно лишнее действие.
     
  11. sash_ok

    sash_ok New Member

    Публикаций:
    0
    Регистрация:
    6 май 2006
    Сообщения:
    4
    Адрес:
    Komsomolsk
    Всем спасбо. А так, между прочим, не могли бы сказать, как выглядит макрос glcall (tylerdurden OpenGL tutorial) на MASM32?