Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> OpenGL + рисование менюшки по верх 3D 
:(
    Опции темы
ILyAHA
Дата 11.3.2010, 23:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гламурный хакер
*


Профиль
Группа: Участник
Сообщений: 193
Регистрация: 30.3.2007
Где: Ярославская обл. г.Рыбинск

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



Вопрос следующий:

Как в 3D приложении в OpenGL вывести картинку-менюшку, по которой можно было бы тыкать мышью в нужных местах, и уже дальше буду какие-нибудь действия(это например как во всяких стратегиях).
Т.е. воросы следующие:

-Вывести 2D картинку поверх 3D сцены.
-Определять в какой области изображения такнули мышью.


Очень буду рад коду и примерам.

Юзаю QT 3.3.4 + OpenGL(но OpenGL везде одинаковый, поэтому средства разработки не важны я думаю).
--------------------
<sсriрt>alert('xss')</sсriрt>
PM MAIL   Вверх
kemiisto
Дата 12.3.2010, 00:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



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

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



Цитата(ILyAHA @  12.3.2010,  00:50 Найти цитируемый пост)
Юзаю QT 3.3.4

Ты бы ещё 2-ой использовал. smile 

Тут, видимо, 2 варианта:


--------------------
PM MAIL WWW GTalk Jabber   Вверх
Mazzi
Дата 12.3.2010, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Правильный
**


Профиль
Группа: Комодератор
Сообщений: 825
Регистрация: 3.4.2003

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



После вывода 3д переключаешь окно для вывода 2д и на нём рисуешь


--------------------
Мне нужны помощники.
PM MAIL WWW   Вверх
ILyAHA
Дата 12.3.2010, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гламурный хакер
*


Профиль
Группа: Участник
Сообщений: 193
Регистрация: 30.3.2007
Где: Ярославская обл. г.Рыбинск

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



Цитата(Mazzi @  12.3.2010,  14:01 Найти цитируемый пост)
После вывода 3д переключаешь окно для вывода 2д и на нём рисуешь

как переключить?
--------------------
<sсriрt>alert('xss')</sсriрt>
PM MAIL   Вверх
Alexeis
Дата 12.3.2010, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



Цитата(ILyAHA @  11.3.2010,  22:50 Найти цитируемый пост)
-Вывести 2D картинку поверх 3D сцены.

Типа битмап? Может это подойдет? http://www.opengl.org/sdk/docs/man/xhtml/glDrawPixels.xml


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
darkAv
Дата 12.3.2010, 17:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



просто переключаешся в режим орто и через него выводиш 2д графику
PM MAIL   Вверх
Alexeis
Дата 12.3.2010, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



Цитата(darkAv @  12.3.2010,  16:47 Найти цитируемый пост)
просто переключаешся в режим орто и через него выводиш 2д графику 

  Тогда еще камеру повернуть нужно на плоскость XOY.

Добавлено через 54 секунды
Опять же, а Z-буфер? Не получиться ли картинка в середине меша?


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
darkAv
Дата 12.3.2010, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



почему просто очередность рендеринга должна быть

Добавлено через 8 минут и 21 секунду
С вызовами функций OrthoMode() и PerspectiveMode() происходит замена между 3д точками и 2д точками. Это значит, что вместо передавания OpenGL трехмерных координат, в ortho-режиме мы передаем ему пикселные координаты экрана.

Добавлено через 10 минут и 26 секунд
Код

void OrthoMode(int left, int top, int right, int bottom)
{
    glMatrixMode(GL_PROJECTION);
    glPushMatrix();
    glLoadIdentity();
    glOrtho( left, right, bottom, top, 0, 1 );
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
}


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


Новичок



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

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



Режим Ortho - режим проекции, позволяющий рисовать примитивы в 2Д. Вместо 
glVertex3f() используется glVertex2f(), в которую передаются экранные 2д координаты 
вместо мировых 3д. Это очень полезно, если имеешь дело с интерфейсом или чем-то,
что должно оставатся на экране независимо от движения камеры.
PM MAIL   Вверх
ILyAHA
Дата 14.3.2010, 19:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гламурный хакер
*


Профиль
Группа: Участник
Сообщений: 193
Регистрация: 30.3.2007
Где: Ярославская обл. г.Рыбинск

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



Спасибо darkAv, воспользовался твоим советом.
еще помогла ссыль
--------------------
<sсriрt>alert('xss')</sсriрt>
PM MAIL   Вверх
darkAv
Дата 15.3.2010, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



на здоровье я недавно сталкивался с такой проблеммой
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

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


 




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


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

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