Войти
ПрограммированиеФорумГрафика

OpenGL на Qt4. Это просто! (комментарии) (3 стр)

Страницы: 1 2 3 4 5 6 7 Следующая »
#30
13:54, 20 янв. 2011

deus krid

> Что имеется ввиду? Автор статьи предлагает использовать библиотеку Qt как оболочку для приложения (и OpenGL). Все, что мы берем в данном примере от Qt - это ее класс приложения, класс окна наследуем от QGLWidget. Все, дальше пиши себе платформер или пакмена как считаешь нужным. Вводная дана - и отлично.

Вопрос один - а зачем тогда Qt, если не показывать как можно использовать возможности Qt для таких приложений? Просто как оболочкой пользоваться не имеет смысла.


#31
13:59, 20 янв. 2011

deus krid
> Касательно мешанины кода из разных библиотек - ее не избежать. За звук одна
> библиотека, за GUI вторая, за оболочку третья и так далее. Все упирается в
> грамотную реализацию, а это уже зависит от программиста. Степень интеграции Qt
> в код проекта тоже может быть разным (как и способ).
Это не тот пример.
речь идет о том, что для Qt надо использовать QString, в корне проекта - другой тип строк,
в основном проблема в том, что есть типы Qt и есть типы ядра, которые разные.
По сути в одном проекте существует два String, два Vector, два Map и всего остального тоже два.


deus krid
> Все, что мы берем в данном примере от Qt - это ее класс приложения, класс окна
> наследуем от QGLWidget. Все, дальше пиши себе платформер или пакмена как
> считаешь нужным. Вводная дана - и отлично.
то есть тащить с собой 30 метровый фреймворк(под маком он занимает 34 метра) ради создания окна - это норм? :)
Вся игра с контентом меньше весит. Можно, конечно, пересобрать под свои нуждны... Вот только это больше времени займет чем написать свой класс окна.
Qt для всевозможных тулзов еще имеет смысл использовать. Для игр - нет.

ufna
> Если не секрет, о каких это либах идет речь?
не понял вопроса.

ufna
> рисующие векторную графику на навигаторах - и как-то мощностей и скоростей
> хватало :)
А почему их собственно не должно было хватить?

#32
14:04, 20 янв. 2011

ufna
> Вопрос один - а зачем тогда Qt, если не показывать как можно использовать
> возможности Qt для таких приложений? Просто как оболочкой пользоваться не имеет
> смысла.
Так у нас статья же, а не книга) Все же не осветишь в пределах условных 5000 знаков. Да и литературы по Qt - полно (в том числе и русскоязычной), не говоря уже о их собственной справки (с множеством документированных примеров).
Да и мне кажется, пользоваться просто как оболочкой - имеет смысл при создании платформонезависимого кода. Особенно если использование остальных возможностей библиотеки не считается нужным (да и степень зависимости приложения от Qt падает - в данном случае просто переписать функционал QGLWidget на WinAPI, к примеру, и вот уже совсем никакого Qt, при том что 99% кода осталось неизменным).

(добавлено)
@!!ex
> то есть тащить с собой 30 метровый фреймворк(под маком он занимает 34 метра)
> ради создания окна - это норм? :)
За все приходится платить. Понятно, что если размер приложения является краеугольным камнем, то Qt вообще использовать не совсем уместно. Да и, как писалось выше, это не критично для приложения - избавится от Qt можно ведь (хотя даже не знаю, какой пример привести...)

#33
14:06, 20 янв. 2011

@!!ex

Мне кажется, здесь как раз и идет речь о том, чтобы использовать Qt не как "для создания окна", а как фреймворк в целом. А если Вы хотите мешать свои библиотеки, делать по куче разных мапов, стрингов и т.п. - наверное Вам это не нужно просто по начальной постановке задачи.


> А почему их собственно не должно было хватить?
Вы же говорили, что "медленно всё". Не знаю где тут что медленно.

> о есть тащить с собой 30 метровый фреймворк(под маком он занимает 34 метра) ради создания окна - это норм? :)
Статическую сборку, дающую также прирост по скорости, еще никто не отменял. Достаточно крупное приложение, собранное с правильно сконфигурированной сборкой, занимает от 3 до 8Мб в зависимости от кол-ва библиотек, что Вам нужно. Я считаю это очень приемлимыми размерами.

> не понял вопроса.

о мешанине каких библиотек Вы говорите?

#34
14:09, 20 янв. 2011

deus krid

Дак как раз как сделать оболочку - это элементарный вопрос, для которого достаточно глянуть демо кутэшное. В статье должен быть имхо в первую очередь материал, вызывающий интерес с точки зрения подхода, а не расширенного описания демо с комментариями. Даже если это выращивает объем статьи.  Если рассматривать эту статью как первую из цикла - тогда все замечательно. Но отдельно она не так интересна, как хотелось бы видеть из темы Qt + OpenGL, особенно в рамках геймдева.

#35
14:09, 20 янв. 2011

ufna
> Мне кажется, здесь как раз и идет речь о том, чтобы использовать Qt не как "для
> создания окна", а как фреймворк в целом
Для ядра "игры"?

ufna
> Вы же говорили, что "медленно всё". Не знаю где тут что медленно.
Слот-сигнальная система, медленная, например. Это никак не проявится при рендере векторной графики.

ufna
> Статическую сборку
делать нельзя по лицензии LGPL.

ufna
> о мешанине каких библиотек Вы говорите?
В [31] первый абзац.

#36
14:15, 20 янв. 2011

@!!ex

Да, для ядра игры.

Сигнально-слотовая система с каких это пор стала медленной? У нее есть свои особенности, но медленной я бы ее никогда не назвал. Можно использовать directConnection, а не queuedConnection (что есть по-умолчанию).

Статическую сборку делать можно, у нас LGPL2 уже как несколько лет. Читайте внимательно что там требуется для предоставления. Нельзя вносить изменения в Qt, либо если внесли - предоставить объектные файлы сборки Qt по запросу.

В [31] первый абзац говорит о том, что ядро игры, отрисовку и т.п. Вы не рассматриваете как Qt-based, а лишь как приложение в окошечке "От Кутэ".

#37
14:22, 20 янв. 2011

ufna
> В [31] первый абзац говорит о том, что ядро игры, отрисовку и т.п. Вы не
> рассматриваете как Qt-based, а лишь как приложение в окошечке "От Кутэ".
Нет. Я говорю о том, чтобы использовать QT в утилитах к игре, но в этом случае общий с игрой код будет содержать и QT код и код используемый в игре. Да, я не рассматриваю Qt как адекватный инструмент именно для самой игры.

ufna
> Статическую сборку делать можно, у нас LGPL2 уже как несколько лет. Читайте
> внимательно что там требуется для предоставления. Нельзя вносить изменения в
> Qt, либо если внесли - предоставить объектные файлы сборки Qt по запросу.
Хм. Действительно двоечка.

#38
14:36, 20 янв. 2011

вопрос к автору:
несколько месяцев назад я спрашивал на форуме о Qt и OpenGL 3.3
Ну так собственно вопрос - будет объяснятся нечто подобное? И именно с использованием модуля QtOpenGL (QGLBuffer, QGLSHader и т.д.)

#39
14:40, 20 янв. 2011

@!!ex

Использование Qt в утилитах к игре можно сделать совершенно по-разному, при этом здесь требуется частный подход. При этом частное решение может быть как отличным, так и "через попу" чисто из-за особенностей игры. По-моему, это никак не касается вопроса "Qt как инструмент для создания игр" или "Qt + OpenGL".

На мой взгляд, Qt имеет очень широкие возможности для геймдева, однако в силу особенностей развития, очень мало специалистов, кто "знает" и Qt, и геймдев на хорошем уровне.

#40
14:43, 20 янв. 2011

qwertyuhjkfgec

А разве в 4.7 с этим есть проблемы? QGLFormat::OpenGL_Version_3_3 определен. Не проверял правда.

#41
14:55, 20 янв. 2011

ufna
Хм. Ок.
ваше мнение понял.
Продолжать спор не могу - боюсь компетенции не хватит.

#42
15:09, 20 янв. 2011

На мой взгляд, тут надо сосредоточиться именно на инициализации Qt, а писать кучу OGL'овского кода не обязательно, это можно посмотреть в других статьях. )

#43
20:02, 20 янв. 2011

Добавил:
Команда setFormat(QGLFormat(QGL::DepthBuffer)) указывает, что нужно использовать буфер глубины, о котором говорилось раньше. Эта команда эквивалентна glutInitDisplayMode(GLUT_DEPHT) библиотеки GLUT. Соответственно, команда setFormat() класса QGLContext устанавливает контекст (режим работы) OpenGL.

#44
22:47, 20 янв. 2011

Статья в целом хорошая, но пример перегружен кодом рисования сцены и совершенно отсутствуют элементы управления, даже меню нет, не говоря о кнопочках и панельках, а в них как мне кажется вся фишка использования QT. Ну и соответственно не показано, как интерфейс взаимодействует со сценой и всю статью можно свести к разбору примера использования QGLWidget и тому, что он есть в QT.

Страницы: 1 2 3 4 5 6 7 Следующая »
ПрограммированиеФорумГрафика

Тема в архиве.