Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Камера в OpenGL 
:(
    Опции темы
Evgesha
Дата 8.2.2014, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 181
Регистрация: 2.7.2005
Где: Германия

Репутация: нет
Всего: нет



Здравствуйте
Кто подскажет как сделать управление камеры мышкой
Чтото уменя крышняк уже едит
Вот кусок кода

Код

void __fastcall TForm00_Haupt::Panel_3DSceneMouseDown(TObject*Sender, TMouseButton Button, TShiftState Shift,
  int X, int Y)
  {
    if (Button == mbLeft)
      {
        Panel_3DScene->Cursor = crSizeAll;
        mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
        if (Mouse->CursorPos.y > oldy)
          {
            lookupdown -= (oldy - Mouse->CursorPos.y) / sensitivity;
            glRotatef(lookupdown, 1.0f, 0, 0);
          }
        if (Mouse->CursorPos.y < oldy)
          {
            lookupdown -= (oldy - Mouse->CursorPos.y) / sensitivity;
            glRotatef(-lookupdown, 1.0f, 0, 0);
          }
        if (Mouse->CursorPos.x > oldx)
          {
            heading -= (oldx - Mouse->CursorPos.x) / sensitivity;
            glRotatef(heading, 0, 1.0f, 0);
          }
        if (Mouse->CursorPos.x < oldx)
          {
            heading -= (oldx - Mouse->CursorPos.x) / sensitivity;
            glRotatef(-heading, 0, 1.0f, 0);
          }
        //
        oldx = Mouse->CursorPos.x;
        oldy = Mouse->CursorPos.y;
        //
        Bild3D_zeichnen();
      }
    else
      {
        Panel_3DScene->Cursor = crDefault;
        mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
        return;
      }
  }

--------------------
Все это хорошо, а как дальше жить!!!
PM MAIL   Вверх
tzirechnoy
Дата 9.2.2014, 11:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1173
Регистрация: 30.1.2009

Репутация: нет
Всего: 16



Я, конечно, вижу минимум одну вроде как ошыбку в Вашэм коде -- но можэт Вы сами словами расскажэте, что Вам не нравится?

А то можэт это конкретно и не ошыбка, а так задумано.
PM MAIL   Вверх
Evgesha
Дата 9.2.2014, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 181
Регистрация: 2.7.2005
Где: Германия

Репутация: нет
Всего: нет



Да прошу прощения что сразу не расказалю Было такой ощущение что все понимают проблему ну ладно.
Хотелось бы крутить мышкой объект 
если мышка в области панели и удержаной левой кнопки мышки
если мышка в области панел и левая кнопка отжата чтоб не крутилость
но самое важное сам объект както крутиться не так как хочу
хотелось бы как в играх 

а что за ошибка

--------------------
Все это хорошо, а как дальше жить!!!
PM MAIL   Вверх
tzirechnoy
Дата 10.2.2014, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1173
Регистрация: 30.1.2009

Репутация: нет
Всего: 16



Цитата
но самое важное сам объект както крутиться не так как хочу


Ага. То есть крутится. Тогда я, можэт быть, угадал ошыбку.

Дело в том, что glRotate*() поворачивает текущую сцэну. То есть у Вас угол поворота -- накапливается в переменных lookupdown и heading, а потом на этот угол доворачивается ужэ текущая сцэна. То есть, фактически, в lookupdown и heading получается скорость поворота, а не угол, как Вы, вероятно, планировали.

В общем, измерения движэния мышы накапливаются дважды -- и в переменных и в матрицэ opengl.

Да, если всё ещё непонятно -- попробуйте просто ничего не накапливать в lookupdown/heading, а просто крутить на oldx - Mouse->CursorPos.x
PM MAIL   Вверх
SVN74
Дата 10.2.2014, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 5.5.2008
Где: Комсомольск на Дн епре

Репутация: 11
Всего: 18



Зачем изобретать велосипед?
В нормальных движках это пишется одной строкой...
CONTROL CAMERA USING ARROWKEYS

PM MAIL WWW   Вверх
baldina
Дата 10.2.2014, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 1
Всего: 101



Цитата(SVN74 @  10.2.2014,  14:22 Найти цитируемый пост)
В нормальных движках

а если товарисч пишет сам движок?
PM MAIL   Вверх
SVN74
Дата 10.2.2014, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 5.5.2008
Где: Комсомольск на Дн епре

Репутация: 11
Всего: 18



Цитата(baldina @  10.2.2014,  14:31 Найти цитируемый пост)
а если товарисч пишет сам движок? 

Тогда все пожелаем ему удачи...  smile 
PM MAIL WWW   Вверх
baldina
Дата 10.2.2014, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 1
Всего: 101



Evgesha, ты пытаешься крутить на углы эйлера, что приводит к нехорошим последствиям, и допустимо только при небольших углах

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

PM MAIL   Вверх
Evgesha
Дата 10.2.2014, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 181
Регистрация: 2.7.2005
Где: Германия

Репутация: нет
Всего: нет



Цитата(SVN74 @ 10.2.2014,  13:22)
Зачем изобретать велосипед?
В нормальных движках это пишется одной строкой...
CONTROL CAMERA USING ARROWKEYS

Порекомендуй нормальный движок для XE 2 c++ Builder
--------------------
Все это хорошо, а как дальше жить!!!
PM MAIL   Вверх
SVN74
Дата 10.2.2014, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 5.5.2008
Где: Комсомольск на Дн епре

Репутация: 11
Всего: 18



Цитата(Evgesha @  10.2.2014,  18:18 Найти цитируемый пост)
Порекомендуй нормальный движок для XE 2 c++ Builder 

Вот не могу понять, почему вы так уперлись в XE 2 c++ Builder, вам все равно игры придется писать в консольном режиме, а там у всех сред одинаково (все пишется с чистого листа)...   
http://forum.vingrad.ru/forum/topic-375647.html

PM MAIL WWW   Вверх
tzirechnoy
Дата 11.2.2014, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1173
Регистрация: 30.1.2009

Репутация: нет
Всего: 16



Да с чего вы все взяли, что у него игра?

Если игра -- то да, лучшэ взять какой-нибудь опенсурсный движок для начала, и писать как все на lua. Но у меня все использования OpenGL совсем не были играми.
PM MAIL   Вверх
Evgesha
Дата 11.2.2014, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 181
Регистрация: 2.7.2005
Где: Германия

Репутация: нет
Всего: нет



да действительно с чего вы взяли что игра
мне надо рисовать определеный объект и крутить его мышкой и маштабировать 
предложения и идеии а лучше рабочий код  smile еще принемаються
--------------------
Все это хорошо, а как дальше жить!!!
PM MAIL   Вверх
baldina
Дата 12.2.2014, 09:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 1
Всего: 101



arcball поглядел?
PM MAIL   Вверх
Evgesha
Дата 12.2.2014, 15:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 181
Регистрация: 2.7.2005
Где: Германия

Репутация: нет
Всего: нет



Да уже пробовал но чтото совсем не получаеться
может кто расталкует куда что писать  smile 
башка совсем не варит
--------------------
Все это хорошо, а как дальше жить!!!
PM MAIL   Вверх
baldina
Дата 12.2.2014, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 1
Всего: 101



на nehe есть работающие примеры

Добавлено через 2 минуты и 18 секунд
погляди внизу страницы, там исходники под разные компиляторы
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0525 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.