Мы рассмотрели основные функции Qt для работы с OpenGL и сопутствующие команды самого OpenGL. Но для минимального набора знаний нам также потребуется методы обработки нажатия клавиш и событий мыши, определенные в Qt. Всё это будет продемонстрировано в последнем листинге полной программы. А в качестве геометрической фигуры мы нарисуем икосаэдр, используя массив вершин. Программа компилировалась и тестировалась на Windows XP + Qt 4.3.0 и openSUSE 11.2 + Qt 4.5. Листинг состоит из трёх файлов: scene3D.h, scene3D.cpp и main.cpp.
Теперь настало время для написания 3D-приложения. Приступим!
// вызывается функция paintGL() -> перерисование сцены -> обновление изображения
Наконец, рассмотрим слот updateGL(). Слоты являются как бы командами и используются Qt в механизме сигналов и слотов, но здесь этот механизм объясняться не будет. Слот updateGL() вызывает через glDraw() (функция класса QGLWidget, а не OpenGL) выполнение функции paintGL(), которая в свою очередь выполняет рисование сцены. Этот слот не нужно определять в своём классе, он просто берётся из QGLWidget. Пример:
OpenGL на Qt 4. Это просто! (часть 1) (3 стр.)
/ / / OpenGL на Qt 4. Это просто! (часть 1) (3 стр.)
Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
OpenGL на Qt 4. Это просто! (часть 1) (3 стр.) / Статьи / Программирование игр / GameDev.ru Разработка игр
Комментариев нет:
Отправить комментарий