Поиск:

Ответ в темуСоздание новой темы Создание опроса
> OpenGL 3 4 в QT но средсвами, обычных библиотек gl + gle 
V
    Опции темы
Vetos
Дата 22.11.2011, 00:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



я хочу использовать от QT только оболочку, т.е. окно (со всеми обработчиками и так далее).
Хочу использовать OpenGL с библитекой Gle. QT оборачивает как основные функции так и расширения ОГЛ, а  я гдето в помощи читал что подключение Gle(ну того что Glew для винды) не приветсвуется и ошибки будут сыпаться пачками.
Вот хочу спросить наперед у опытных программеров, возможен ли такой гибридный подход, либо используй OpenGL в QT, либо не используй QT вообще? 
Хотелось просто потом портироваться на мобильник, а конкретно рыться в симбиане неохото(первая попытка неудалась), а через QT все доступно.


--------------------
Строить нужно так, чтоб никто не сломал!
А ломать, чтоб никто не знал 8) :ne_huliganit 
PM MAIL ICQ   Вверх
alexvs11
Дата 22.11.2011, 01:02 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


hell is here
**


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

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



я пытался отрисовывать на Qt'шном окне DirectX'ом - и скажу, что если это и возможно, то результат зависит от версии библиотеки и скрытых внутренних механизмов
Qt использует свой стек рендеринга, думаю встраиваться в него не самая удачная идея
PM MAIL   Вверх
bsa
Дата 22.11.2011, 10:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Vetos, нет никаких проблем, кроме криво реализованных хидеров в gle. Таким образом, если ты ОЧЕНЬ хочешь ее использовать, то делай отдельный модуль (читай *.cpp файл), который будет с ней работать, но не будет подключать хидеры QtOpenGL.
На сколько я помню, gle просто открывает все возможное функции OpenGL (читай расширения), а не только те, что открыты по умолчанию.
Если ты хочешь потом портировать на мобильник, то следует сразу ознакомиться с GLES (кажется как). Чтобы потом не было мучительно больно.
Цитата(alexvs11)
я пытался отрисовывать на Qt'шном окне DirectX'ом - и скажу, что если это и возможно, то результат зависит от версии библиотеки и скрытых внутренних механизмов
А тебе кто-нибудь обещал поддержку DirectX в Qt? Qt позиционируется как кроссплатформенная библиотека. А DirectX (в отличие от OpenGL) есть только на 2-х платформах: Windows и XBox.
Вот что делают энтузиасты: QDirect3DWidget.

Это сообщение отредактировал(а) bsa - 22.11.2011, 10:41
PM   Вверх
alexvs11
Дата 22.11.2011, 13:13 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


hell is here
**


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

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



Цитата(bsa @  22.11.2011,  10:36 Найти цитируемый пост)
А тебе кто-нибудь обещал поддержку DirectX в Qt? Qt позиционируется как кроссплатформенная библиотека. А DirectX (в отличие от OpenGL) есть только на 2-х платформах: Windows и XBox.

а ктото обещал нативную работу с opengl?
речь идет о том, чтобы использовать окна Qt для отрисовки
на винде например можно было получить hwnd окна и попытаться рисовать на нем
собственно речь о том, что Qt не позволял завладеть отрисовкой окна по простому
и тут нет разницы чем отрисовывать, directx или opengl
PM MAIL   Вверх
bsa
Дата 22.11.2011, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(alexvs11 @  22.11.2011,  14:13 Найти цитируемый пост)
а ктото обещал нативную работу с opengl?

а если документацию почитать?
Цитата
The QGLWidget class is a widget for rendering OpenGL graphics.
QGLWidget provides functionality for displaying OpenGL graphics integrated into a Qt application. It is very simple to use. You inherit from it and use the subclass like any other QWidget, except that you have the choice between using QPainter and standard OpenGL rendering commands.

PM   Вверх
alexvs11
Дата 22.11.2011, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


hell is here
**


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

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



bsa, а если пост автора почитать?
из него следует, что автор собирается использовать opengl не через обертки Qt, а через нативную библиотеку
PM MAIL   Вверх
bsa
Дата 22.11.2011, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



alexvs11, ты видимо документацию так и не прочитал... Или не понял... Или не захотел понять...
Для тех кто в танке:
QGLWidget создает контекст OpenGL, который необходим для отрисовки сцены с использованием данной библиотеки. Далее у тебя есть возможность использовать средства QPainter или OpenGL для отрисовки. Выбор остается за тобой. Чтобы тебе было удобней, создано несколько виртуальных методов, которые вызываются при инициализации контекста для его настройки, изменении размера виджета (для настройки вьюпорта, например), а так же paintGL для отрисовки сцены.
PM   Вверх
alexvs11
Дата 22.11.2011, 20:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


hell is here
**


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

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



bsa, ок, победили
об таком использовании я не знал
PM MAIL   Вверх
bsa
Дата 22.11.2011, 21:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(alexvs11 @  22.11.2011,  21:42 Найти цитируемый пост)
об таком использовании я не знал

Именно поэтому я и отослал к документации. Рекомендую в следующий раз не брезговать и читать ее, когда возникает спор.  smile 
PM   Вверх
Vetos
Дата 23.11.2011, 00:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Спасибо за ответы!


Цитата(bsa @  22.11.2011,  10:36 Найти цитируемый пост)
Vetos, нет никаких проблем, кроме криво реализованных хидеров в gle. Таким образом, если ты ОЧЕНЬ хочешь ее использовать, то делай отдельный модуль (читай *.cpp файл), который будет с ней работать, но не будет подключать хидеры QtOpenGL.


Т.е. я просто создаю класс который будет рисовать что мне нужно, командами поднятыми Gle, сразу на окне QT с поднятым контекстом?
Или же создавать контекст прийдется вручную без QGLWidget?
 
Цитата(bsa @  22.11.2011,  10:36 Найти цитируемый пост)
Если ты хочешь потом портировать на мобильник, то следует сразу ознакомиться с GLES


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

Цитата(bsa @  22.11.2011,  13:57 Найти цитируемый пост)
Для тех кто в танке:QGLWidget создает контекст OpenGL, который необходим для отрисовки сцены с использованием данной библиотеки.


Так получается что всетаки GLWidget может использоваться только встроенными функциями? Или всетаки возможен вариант использования контекста GLWidget?

Впринцыпе начну я знакомиться с функциональносттью QT по отношению к GL, всеравно и так и так прийдется его использовать для мобилки. Но всеже если какието приемлемые варианты известны прошу помощи. Для начала попробую перенести уроки gl33lessons на QT, если QT поддерживает весь функционал уроков, то впринципе на первых порах мне будет достаточно. И всетаки идея с гибридным использованием не покидает мою голову. Я просто гдето на nokia.com читал что QT не поддерживает OpenGL на 100%, может это какието старые странички, может в 4.7.4 версии уже все реализовано???


--------------------
Строить нужно так, чтоб никто не сломал!
А ломать, чтоб никто не знал 8) :ne_huliganit 
PM MAIL ICQ   Вверх
bsa
Дата 23.11.2011, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(Vetos @  23.11.2011,  01:17 Найти цитируемый пост)
Т.е. я просто создаю класс который будет рисовать что мне нужно, командами поднятыми Gle, сразу на окне QT с поднятым контекстом?
Класс или просто функцию - не важно. Можешь сделать класс и потом его использовать в качестве второго предка для твоего виджета (первый предок должен быть QGLWidget или его потомок).
Цитата(Vetos @  23.11.2011,  01:17 Найти цитируемый пост)
Или же создавать контекст прийдется вручную без QGLWidget?
Зачем? QGLWidget позволяет тебе встраивать OpenGL сцену в интерфейс приложения. Зачем отказываться от такой возможности?
Цитата(Vetos @  23.11.2011,  01:17 Найти цитируемый пост)
Так получается что всетаки GLWidget может использоваться только встроенными функциями? Или всетаки возможен вариант использования контекста GLWidget?
Под "данной библиотекой" я имел в виду OpenGL. Не обязательно пользоваться средствами QPainter. Можешь напрямую использовать OpenGL - QGLWidget создаст тебе необходимые комфортные условия.
Цитата(Vetos @  23.11.2011,  01:17 Найти цитируемый пост)
Я просто гдето на nokia.com читал что QT не поддерживает OpenGL на 100%, может это какието старые странички, может в 4.7.4 версии уже все реализовано???
Подозреваю, что ты просто не так понял. Qt (именно t маленькая, так как QT == QuickTime) действительно содержит ряд элементов, которые упрощают работу (читай скрывают) с OpenGL (см. модуль QtOpenGL). Но если ты собираешься использовать OpenGL напрямую, то Qt тебе создаст контекст (просто для разных ОС это делается по разному, а у Qt единый интерфейс) и даст три виртуальные функции, которые позволят не заморачиваться с интеграцией в интерфейс. Дальше - используй что хочешь или OpenGL (кроме некоторых функций glut, которые дублируют функционал Qt).
Цитата(Vetos @  23.11.2011,  01:17 Найти цитируемый пост)
Для начала попробую перенести уроки gl33lessons на QT, если QT поддерживает весь функционал уроков, то впринципе на первых порах мне будет достаточно.

Эти примеры придется немного отредактировать. В частности, убрать создание контекста (это QGLWidget сделает за тебя) и разнести код по трем виртуальным функциям. Это не сложно.
PM   Вверх
Vetos
Дата 23.11.2011, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Спасибо
Цитата(bsa @  23.11.2011,  10:18 Найти цитируемый пост)
QGLWidget позволяет тебе встраивать OpenGL сцену в интерфейс приложения. Зачем отказываться от такой возможности?


вот и я думаю, богатый функционал Qt уже состовляет пол движка, и скрипты и сеть, и т.д.
Буду изучать (Ужеб давно пора бы) smile  

Если комуто понадобится то полная поддержка версий OpenGL свыше 3.1 есть только в версии Qt 4.8.0 ( сам пользуюсь версией Qt 4.8.0 RC )

Это сообщение отредактировал(а) Vetos - 3.12.2011, 00:40


--------------------
Строить нужно так, чтоб никто не сломал!
А ломать, чтоб никто не знал 8) :ne_huliganit 
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

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

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




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


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

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