После трёх лет разработки представлен [3] первый стабильный релиз проекта Qt 3D [4], в рамках которого подготовлены библиотеки, добавляющие в Qt кроссплатформенные средства для работы с 3D-контентом. При помощи Qt 3D разработчики могут добавить в свои программы трехмерные объекты, используя методы, аналогичные тем, что используются при работе с изображениями и битовыми картами.
Поддерживается как интеграция простых 3D-функций в обычные 2D-программы, так и создание специализированных 3D-приложений, манипулирующих сложными трёхмерными сценами, содержащими большие 3D-модели и применяющие эффекты, создаваемые при помощи шейдеров. Например, Qt 3D может быть задействован для создания пользовательского интерфейса систем трёхмерного моделирования. В будущем планируется реализация таких возможностей как формирование стереоскопического вывода, использующего специальное оборудование для вывода разных изображений для каждого глаза. Для демонстрации возможностей Qt 3D подготовлена серия примеров [5].
Среди поддерживаемых функций можно отметить работу с массивами и вершинными буферами, необходимые для трехмерных расчётов математические функции, средства для определения геометрии (кубические, сферические, конусообразные и другие объекты), манипулирование обзором (угол зрения, масштабирование, трансформация, вращение и т.п.), управление рендерингом поверхности, создание материалов, перемещение камеры, работа с текстурами, управление сценой и рендерингом, создание эффектов, 3D-рисование.
Для работы с 3D-моделями в комплект включено специализированное приложение Asset Viewer, позволяющее наглядно сконфигурировать модели, используемые в программах на базе Qt 3D. Загрузка моделей и текстур в приложение производится в многопоточном режиме. Qt 3D 1.0 поставляется в виде надстройки над Qt 4.8.1. Для Qt 5 код Qt 3D развивается в рамках основного цикла разработки и поддерживает все доступные в Qt5 платформы (в Qt4 поддерживается только OpenGL).
Ссылки:
[1] http://htfl.ru/cat-news-nokia
[2] http://htfl.ru/cat-news-novosti
[3] /out.php?link=http://labs.qt.nokia.com/2012/04/11/qt-3d-and-qt5-qt4-news-and-releases/
[4] /out.php?link=http://doc-snapshot.qt-project.org/qt3d-1.0/
[5] /out.php?link=http://doc-snapshot.qt-project.org/qt3d-1.0/qt3d-examples.html