crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Qt+OpenGL. Qt "не видит" функции OpenGL
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
lanz Дата 30.1.2013, 9:29
  Рад помочь .)
Цитата(Christor @ 29.1.2013, 18:33) *
Под "собрать" я понимаю собрать из исходников. Верно?

Да, все верно. Это не так страшно как кажется .)
Цитата
Имеет ли смысл делать данную процедуру или лучше тихо и мирно оставаться на 4.8.4 ?

Тут есть несколько моментов.

Если есть желание освоить OpenGL то как мне кажется лучше начинать с fixed pipeline и immediate mode(glBegin/glEnd) - OpenGL 2, потом переходить на шейдеры/буферы (OpenGL 3-4(core profile)/ES).

Если уже есть представление как работают GL/DirectX то можно сразу начинать с GL4 версии.

Однако на это все время уйдет, поэтому если нужно быстро написать то лучше взять готовый движок(например http://hge.relishgames.com/), так получится быстрее и лучше. Кармака в твиттере спросили как то - что бы мне изучить, чтобы сделать игру? Он ответил: Если хотите действительно сделать игру, найдите как можно больше готового кода (библиотеки, движок и т.п.)

Это в качестве оффтопа, а так изучать конечно лучше последнюю версию.
Christor Дата 29.1.2013, 17:33
  Установил Qt libraries 4.8.4 for Windows (VS 2010, 234 MB) и QtCreator к нему.
Всё отлично заработало.
Я с Qt Познакомился около недели назад(это я к тому, что с ним никогда не работал). Естественно сразу скачал последнюю версию. С OpenGL тоже на Вы. Когда-то давно баловался используя glut. Делал всякие 3D пирамидки, сферы. Сейчас нужно написать не сложную 2D игру.
Цитата(lanz @ 29.1.2013, 16:54) *
Или собрать Qt с использованием нативного OpenGL (используя опцию -opengl desktop)

Под "собрать" я понимаю собрать из исходников. Верно?
Имеет ли смысл делать данную процедуру или лучше тихо и мирно оставаться на 4.8.4 ?
lanz, спасибо!
lanz Дата 29.1.2013, 16:54
  Поставил Qt5. Подтверждаю, у меня тоже не видит .)

Смотреть почему - http://qt-project.org/forums/viewthread/22821 (от 20 декабря)

Цитата
OK that is the source of your issues then. The pre-compiled Windows desktop version of Qt5 is built against ANGLE which only provides OpenGL ES 2 support by implementing it on top of DirectX 9.
This was done to ensure that QtQuick2 works on all windows systems, including those with crappy Intel OpenGL drivers ;)
OpenGL ES 2 does not support the legacy fixed function pipeline, only a shader-based one.
There is a bug open to provide a build of Qt 5 using the native desktop OpenGL implementation for Qt 5.0.1. Please go vote for https://bugreports.qt-project.org/browse/QTBUG-28715 to see this happen.
For now, you have two choices:
Live with OpenGL ES 2 support and don’t use legacy OpenGL
Build your own copy of Qt 5 to use the native OpenGL drivers by passing in

-opengl desktop

to configure.

With the 2nd option you should have access to OpenGL from 1.0 up to 4.3 (if your card/driver support it).

Суть вкратце:
1. Устанавливаемая собранная версия Qt собрана с использованием OpenGL ES, чтобы QtQuick 2 мог работать на всех системах с Windows.
2. Как я уже говорил OpenGL ES не поддерживает многих старых функций fixed pipeline, только шейдеры, только хардкор .)
3. Можно проголосовать за десктопную сборку для 5.0.1 по ссылке https://bugreports.qt-project.org/browse/QTBUG-28715 , но пока ее нет.
4. Собственно есть два пути
Отказаться от старых функций и использовать только шейдеры.
Или собрать Qt с использованием нативного OpenGL (используя опцию -opengl desktop)
lanz Дата 29.1.2013, 16:16
  Возможно проблемы с драйвером видеокарты.

В Qt4 все работает, проверял сегодня и в Creator и в MSVS2010, Win7x64.
Возможно дело действительно в Qt5, надо будет поиграться.
Christor Дата 29.1.2013, 13:16
  Windows 7. Не виртуалка и не эмулятор.
Сейчас попробую переустановить Qt. Но думаю не поможет.
OpenGL ES ? Я ничего подобного не ставил. Разве с Qt не идут все необходимые OpenGL файлы?
Где должен находиться gl.h ?
lanz Дата 29.1.2013, 13:00
  Что за система? Виртуалка/эмулятор?

Похоже на OpenGL ES. В ней не будут работать эти команды, ищи пример для GL ES.
Christor Дата 29.1.2013, 10:37
  Да.
Вот My.pro:
TEMPLATE = app

# Input
HEADERS += scene3D.h
SOURCES += main.cpp scene3D.cpp
QT += opengl

Я не могу понять, почему
glEnable(GL_DEPTH_TEST); работает, а
glShadeModel(GL_FLAT); не работает.
Как будто glShadeModel(GL_FLAT); просто нигде не прописана.
Константу GL_FLAT тоже не видит. Как будто она не определена. И многие другие функции.
За то glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glViewport(0, 0, (GLint)nWidth, (GLint)nHeight); видны и компилятор на них не ругается.
lanz Дата 29.1.2013, 8:46
  .pro файл такой же как в оригинальной стаье? (lecture1.pro)
Christor Дата 28.1.2013, 22:02
  Доброго времени суток.
Срочно нужна помощь.
Скопировал код со статьи http://www.gamedev.ru/code/articles/OpenGL_Qt4 (своего не добавлял).
В итоге вот такие ошибки:

т.е. Стандартные функции gl не видны. Практически все функции с префиксом gl не работают. Как будто не подключён gl.h (он же вроде должен быть в модуле Qt).
Пробовал другие исходники с OpenGL. Результат тот же.
В чём может быть ошибка? Очень срочну нужно решить проблему.
Qt 5.0 (статья для Qt 4. Может быть с этим связано?)
Очень надеюсь на помощь.
Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 10.7.2025, 12:24