Qt QML и 3d: эти две рамки одинаковы?

Любой, кто экспериментировал с Qt QML и 3D OpenGL, меня интересуют 2 фреймворка, о которых я читал, но мне не ясно, действительно ли они являются одним и тем же фреймворком. Наиболее интересные из них описаны в видео-презентации Qt Developer Days 2013 от Krzysztof Krzewniak:

http://www.youtube.com/watch?v=29wCpA0DBZI

Хотя это очень интересно, к сожалению, я нигде не могу найти в Интернете какой-либо исходный код для этого или даже название обсуждаемой платформы.

Есть QtQuick3d:

http://doc.qt.digia.com/qt-quick3d-snapshot/

Тем не менее, я не могу сказать, действительно ли это описывает ту же платформу из Dev Days, или это отдельные (и, по-видимому, несколько похожие) платформы? Мой первоначальный взгляд на API по сравнению с видео показывает, что они разные, что кажется излишним, если в сообществе Qt есть два значимых проекта, пытающихся сделать то же самое.

Может ли кто-нибудь с некоторыми знаниями в этой области QML предоставить некоторые указатели здесь?

3

Решение

Эти две 3d библиотеки не одинаковы, вы правы.

Есть много справочной информации, которую вы уже связали с онлайн в отношении Qt3d 1.0 и QtQuick 3d, которые похожи и связаны.

Работа OpenGL в видеопрезентации — это нечто гораздо более новое. Это прямо положено сверху QSceneGraph а также QQuickWindow функциональность.

Я рекомендую не использовать подход, описанный в этом видео или в библиотеке Qt3d / QtQuick3d. Вместо этого подождите, пока KDAB завершит Qt3d 2.0 (который может уже отсутствовать, вы должны проверить). Qt3d 2.0 — это полная библиотека для QML, которая позволит вам делать то, что продемонстрировано в этом видео.
(http://qt-project.org/wiki/Qt3D-wip-newapi-Overview, http://prezi.com/u-ewejoqxqj2/qt3d-20/)

0

Другие решения

Итак, давайте начнем с истории позади …

Изначально Qt был 2D-фреймворком для визуализации компьютерной графики для простых настольных приложений.

Qt3D был разработан раньше, чем qml стал зрелым, как расширение 2D-мира, предоставляемого модулем QtGui или даже QtOpenGL.

Это был 3D Qt API для рендеринга 3D контента на экране. У него были разные аспекты работы с трехмерными объектами, их построения, вывода на экран, вычисления пересечений и так далее.

Идея заключалась в том, чтобы упростить создание концепции приложения в Qt, а не всегда использовать QtOpenGL или API более низкого уровня для создания игр, симуляторов, приложений для САПР и так далее.

введите описание изображения здесь

Правильно, когда QML вышел и продолжал развиваться, участники Qt3D в Брисбене подумали, что было бы неплохо поместить API QML поверх существующего API C ++ Qt3D для легкого использования в приложении QML. Вот как мы пришли к QtQuick3D.

введите описание изображения здесь

Когда Nokia решила закрыть офис в Брисбене, модуль Qt3D практически не работал и отказывался от получения только нескольких исправлений от сообщества время от времени.

В KDAB ведется некоторая работа по реорганизации и перепроектированию модуля, но он еще не готов, и его можно найти в отдельной ветке.

Видео, на которое вы ссылаетесь, не имеет отношения к необслуживаемому модулю Qt3D. Скорее, он пытается построить 3D на основе нового графа сцены, представленного в Qt. Поскольку в Qt 5 нет модуля Qt3D, работающего с новым SG, люди становятся прагматичными и идут дальше. Это то, что вы видите в видео.

Теперь, как вы можете видеть, это не совсем дублирование, но … В будущем новая архитектура Qt3D может работать лучше с новым графом сцены. На самом деле, KDAB приложил много усилий в привнесение поддержки OpenGL в QtGui до реального мира.

Это было основой для модуля Qt3D, который, вероятно, будет использоваться в будущем (будем надеяться) в 3D-приложениях, написанных на основе Qt, но пока … видео показывает, как создавать аппаратно-ускоренный 3D-интерфейс на основе того, что мы имеем сегодня. ,

6

Есть довольно много устаревшей информации, плавающей вокруг вики, и найти полезную информацию и не устаревший репозиторий было больно. Итак, вот что я узнал несколько месяцев назад:

Правильное и, насколько я знаю, единственное действующее на данный момент git-репо это:

git://gitorious.org/qt/qt3d.git

«KDAB проделывает определенную работу … пока не завершена … найдена в отдельной ветке». абзац ответа Ласло Паппа, кажется, относится к ветка wip / newapi, в то время как мастер ветка кажется, поддерживается в состоянии компиляции (то есть, я смог скомпилировать его несколько раз, YMMV). Основная ветвь должна подойти для игры с Qt3D, но похоже, что API изменится.

Я играл с ним несколько месяцев назад на Windows 8.0, наборе инструментов MinGW, который устанавливается вместе с SDK, и с использованием встроенных полных драйверов OpenGL (которые мне пришлось получить с веб-сайта ATI для моей карты, драйверов Windows по умолчанию недостаточно). И похоже, что он не сломался, чтобы гнить, пример все еще построен, и у меня есть луна, вращающаяся на этом экране.

Она имеет ПРОЧТИ МЕНЯ файл, который расскажет вам, как его собрать, начиная с сборки Qt5. Здесь другой хорошая ссылка для этого, так как QT3D ПРОЧТИ МЕНЯ не очень всеобъемлющий. А если вы работаете в Windows, просто пропустите Webkit и его приложения, если они вам действительно не нужны, потому что эти дополнительные действия могут быть немного хлопотными.

0
По вопросам рекламы [email protected]