Russian Qt Forum
Октябрь 01, 2024, 02:43 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: OpenGL 3.2 и Qt4.5.3  (Прочитано 7908 раз)
altk
Гость
« : Октябрь 29, 2009, 21:54 »

Использую платформу Windows Vista. Нужно написать приложение с использованием функций OpenGL 3.2. Как всем известно,стандартные библиотеки, которые идут с виндой поддерживают только OpenGL 1.4. С сайта opengl.org я скачал файлы glext.h и wglext.h. На одном из русскоязычных сайтов нашел парсер, который при помощи двух файлов создает два исходника(.h и .cpp), которые добавляются в проект. После добавления становится возможным использование новых фукций. Теперь подскажите пожалуйста, как правильно подключить всё это дело, чтобы оно заработало вместе c Qt4. Я так понимаю нужно инициализировать контекст специальным образом? Если честно, я пока совсем не знаю решения...
Записан
azazello
Гость
« Ответ #1 : Ноябрь 24, 2009, 19:42 »

(если ещё актуально) насколько я помню, QT имеет инициализацию только OGL 2.x.
OGL 3.x инициализируется отдельно(и его ещё вроде нет в QT).
Записан
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #2 : Ноябрь 25, 2009, 03:59 »

Вообще то есть такая возможность - к сожалению я сам сейчас далек от 3D графики но точно знаю что можно использовать OGL 3.X совместно с QGLWidget - копайте в сторону переопределения initializeGL в QGLWidget
Записан
azazello
Гость
« Ответ #3 : Ноябрь 25, 2009, 13:00 »

копайте в сторону переопределения initializeGL в QGLWidget
ну это и означает, что в Qt нету
3.x создаётся через # WGL_ARB_create_context /# GLX_ARB_create_context

If version 3.2 or greater is requested, the context returned may
    implement any of the following versions:

      * The requested profile of the requested version.
      * The requested profile of any later version, so long as no
   features have been removed from that later version and profile.
Записан
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #4 : Ноябрь 25, 2009, 16:41 »

Я попросил программиста графики из нашей фирмы ответить на этот спорный вопрос - у нас как раз работают ф-ции OpenGL 3.X в Qt 4.X

Вот его комментарий
Цитировать
XOP:
В QGLWidget действительно создается старый контекст, но - все функции из новой спецификации OpenGL вполне нормально работают, по крайней мере на видеокартах от NVIDIA. На ATI не проверял - не было ни возможности, ни необходимости.

Еще на форуме opengl.org есть кусок кода qt-виджета, в котором создается именно новый контекст (под X11):
http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=showflat&Number=262519
Под винду аналогичный код будет еще проще.

С его слов я понял так: вам надо использовать ваши h и cpp для вызова соответствующих ф-ций GL - после создания QGLWidget(точнее перед вызовом ф-ции initializeGL) уже создан GL контекст и он является текущим - работайте с ним.
Записан
azazello
Гость
« Ответ #5 : Декабрь 01, 2009, 17:17 »

В QGLWidget действительно создается старый контекст, но - все функции из новой спецификации OpenGL вполне нормально работают, по крайней мере на видеокартах от NVIDIA. На ATI не проверял - не было ни возможности, ни необходимости.
лучше разделять контексты (ибо nvidia дрова прощают многое, а вот ati, а тем более intel\via вмогут такого не простить).
также, рендеры для 2.x и 3.x - явно разные(при правильной архитектуре движка) - так что по коду всё-равно разные реализации
Записан
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #6 : Декабрь 01, 2009, 18:28 »

Цитировать
ибо nvidia дрова прощают многое

Ну ATI так это вообще какашка по сравнению с NVidia - до сих пор нормальных дров для Линукс нет, а уж головники программистов графики с ATI картами всем известны. По поводу intel - какая разница будет рнаботать или нет если мощных карт для 3D на базе intel все равно нет? Это получается минимальные системные требования должны ограничивать...
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.048 секунд. Запросов: 23.