Дипломная работа: Автоматизированное редактирование частиц в компьютерной графике
4) значения разброса частиц;
5) стартовая задержка и длительность генерации;
б) для частицы:
1) текстура;
2) время жизни;
3) скорость по осям;
4) гравитация по осям;
5) значения начальных и конечных растяжений;
6) значения начального и конечного цветов по каналам;
Для реализации интерфейсной части были использованы графические объекты вышеописанного межплатформенного движка wxWidgets.
Корневым элементом интерфейсной части является основной фрейм. Основной фрейм служит для расположения фрейма ввода данных, фрейма управления очередью эмиттеров, фрейма вывода. Также основному фрейму принадлежат системное меню, панели инструментов и статуса.
Фрейм ввода данных предназначен для ввода вышеозначенных параметров текущего эмиттера. В редакторе всегда имеется текущий эмиттер, если их число больше нуля. Если же оно равно нулю, инструменты фрейма ввода блокируются. При изменении текущего эмиттера происходит соответствующее обновление данных инструментов фрейма ввода.
Фрейм управления очередью эмиттеров представляет собой панель со схематическим отображением отдельных эмиттеров в виде пиктограмм. К функциям фрейма относятся добавление и удаление эмиттеров, копирование эмиттера со всеми его параметрами, изменение текущего эмиттера, а также порядка прорисовки эмиттеров. Для копирования и удаления эмиттеров при активном фрейме управления очередью можно использовать горячие клавиши (Ctrl+V, Ctrl+X, соответственно).
Фрейм вывода объединяет в себе всю функциональность вывода графических данных приложения. Для максимально быстрого вывода используется низкоуровневая работа с аппаратным обеспечением видеосистемы, осуществляемая посредством драйвера OpenGL. Доступ к платформенно-независимому конвейеру OpenGL осуществляется, в свою очередь, через интерфейс wxWidgets. Именно на уровне фрейма вывода осуществлено связывание оконной системы и функциональности рисования очереди эмиттеров, не зависящей от конкретного окна и работающая с буферами OpenGL. Средства wxWidgets используют для этого те или иные системные библиотеки, в зависимости от целевой платформы. Для Windows это WGL, для MacOSX – AGL, а также стандартные Carbon(для С++) и Cocoa(ObjectiveС).
Дополнительно фрейм вывода позволяет при помощи мыши перемещать эмиттеры, изменять их размеры. Также поддерживается перенос рабочей (текущей отображаемой) области рисования. Для этого необходимо, во-первых, активировать режим переноса, использовав клавишу Space. Затем, используя мышь, осуществить перенос области в нужном направлении и на необходимое расстояние. Для выхода из режима переноса рабочей области необходимо повторно нажать клавишу Space. Необходимо отметить, что в режиме переноса рабочей области возможности переноса эмиттеров и изменения их размеров отключаются.
Системное меню имеет следующую структуру:
- меню “Файл”, отвечающее за общий сброс, сохранение и загрузку, выход из приложения;
- меню “Очередь”, отвечающее за установку режима отображения эмиттеров (Playback, Loopplayback, Static), добавление и удаление текущего эмиттера, копирование эмиттера и набора его параметров, сброс всех эмиттеров;
- меню “Информация”, позволяющее получить информацию о способах использования редактора, а также о разработчике;
Панель инструментов содержит следующие компоненты:
а) функции установки режима отображения эмиттеров:
1) Playback;
2) Loopplayback;
2) Static;
б) функции сохранения и загрузки:
1) Save;
2) Load;
в) функции настройки отображения:
1) Back color;