Приветствую Вас Гость | RSS
Главная страница | Регистрация | Вход
Начало » 2010 » Июнь » 26 » Текущая функциональность моего 2D-движка
Текущая функциональность моего 2D-движка
Т.к. все "казуальные" проекты разрабатываются мною на моем движке (Delphi + OpenGL), решил для справки (ну и для себя малость) - нарисовать текущую функциональность.

1. Графические возможности:
  1.1. Рендеринг в окне \ полноэкранном режиме, в любых разрешениях от 640х480, до 1280х1024. Любой цветовой режим. Добавлена поддержка широкоэкранных (wide-screen) мониторов!
  1.2. Набор базовых классов типа Widget - элементов GUI, таких как: button, checkbox, radiobutton, text, panel, listbox, scrollbox, window, scrollbar, progressbar, edit...  Все элементы оснащены надписями (caption) Все классы допускают "владение" друг другом с обработкой нажатий и событий. Многие элементы (такие как window) являются "составными" и могут отображаться в произвольной "комплектации". Также - имеется возможность назначения произвольных текстур произвольным элементам с указанием прямых текстурных координат.
  1.3. К обрабатываемым по элементам GUI событиям относятся: нажатие мышкой (OnClick), вхождение курсора мыши в визуальную зону элемента (onMouseOver), покидание курсором визуальной зоны элемента (onMouseOut), ввод с клавиатуры в элементах типа Edit (onKeyDown).
  1.4. Также дополнительными классами являются: animatedpanel (спрайт, допускающий покадровую анимацию, вращение вокруг произвольной точки экрана), animatedpanel list (список для построения связных систем анимированных спрайтов), animatedpanel system (простая система частиц на основе анимированных спрайтов), circle progressbar (круговой прогресс бар, с 5-ю режимами вывода - сплошной цвет, 2х цветный градиент, текстура на элемент вывода, текстура на весь диапазон, выводимая участками, и текстура с 2-х цветным градиентом).
  1.5. Еще дополнительные классы:
   - Меню - класс позволяющий построение меню по типу "классического Win-Пуск".
   - Эффекты - класс, инкапсулирующий более сложную систему частиц, с возможностью процедурной обработки каждой частицы системы и правил системы в целом.
   - Окно сообщений - класс создания, обработки и вывода окон с управляемым fading (гашением), таймерами показа, с текстовым полем (программно управляемый скроллинг текста в окне). 
  1.6. Любой текстовый элемент может иметь три типа выравнивания (левая\правая границы и центр)
  1.6. Загрузчик текстур + контейнер текстур - загрузка текстур в форматах JPG, BMP, TGA (со сжатием, без сжатия, 24\32 бита с альфа-каналом).
  1.7. Парсер стандартных DFM-файлов. Т.е. создание окон GUI можно выполнять либо прямо в Delphi-IDE, либо в обычном текстовом редакторе. Парсер грузит эти файлы (переименованные в .lot) и по ним строит заданный GUI. Для названия элементов используются стандартные имена классов Дельфи.
  1.8. Все текстовые строки выводятся посредством текстур шрифтов (растровые шрифты). Движок одновременно поддерживает до 255 шрифтов. Текстуры для шрифтов - TGA с альфа-каналом. Размерность - кратна двойке, текстра квадратная. Каждый шрифт назначаются хоть всему активному GUI разом, хоть - каждому отдельному элементу. Поддерживается изменение размера (масштабирование) шрифта числовым значением.

2. Используемые для оптимизации технологии:
  2.1. Все элементы, включая текстовые строки, выводятся через Vertex\Texture\Color arrays, что ускоряет вывод. Текстовые строки ВСЕ выводятся за одно отдельное переключение glEnableClientState(GL_VERTEX_ARRAY);
  2.2. Все текстуры требуется готовить в размерах кратных 2. Но размеры горизонтали и вертикали могут быть разными.
  2.3. Повороты объектов реализуются через кватернионы, с сохранением уникальных матриц преобразования каждого элемента, для последующего ускорения обработки.
  2.4. Минимизация числа вызовов функции bind, за один цикл отрисовки, путем отслеживания используемых текстур и видимости объектов до рендеринга.

3. Эффекты и анимация:
  3.1. Поддерживается анимация по смене текстурных координат (что позволяет bind'ить одну текстуру) в таких классах как animatedpanel,  animatedpanel system, класс сложной системы частиц.
  3.2. Произвольная смена текстуры ВСЕГО активного GUI в любой момент работы приложения
  3.3. Готовые процедуры обработки в классе процедурной системы частиц, позволяющие реализовать такие эффекты, как "дым", "огонь", "облака", "пыль", "искры", "салют". 
  Класс позволяет задать: форму частиц (текстурой), задать траектории движения частиц, воздействие и направление гравитации, скорости частиц, динамику таких аспектов как вращение, масштабирование, прозрачность, цвет, ускорения, анимацию, цикличность, сроки жизни частиц. 
  Для всей системы: динамику таких аспектов как вращение, масштабирование, прозрачность, цвет, ускорения, период и частоту генерации частиц.
  3.4. Движок умеет вести логи своей работы, а также предоставляет возможность вести событийные логи работы использующего его приложения.

4. Физика.
  4.1. Реализована физика пересечений "точка - прямоугольник", "точка-круг", "прямоугольник-прямоугольник", "прямоугольник-круг".

5. Аппаратная совместимость и совместимость на уровне драйверов
  Проверена совместимость с ОС: Win 2000 SP4, Win XP SP2-3, Windows Server 2003 EE. Проблем нет.
  Движок продемонстрировал несовместимость только с драйверами от MicroSoft (стандартные win-драйвера) для видеокарт: серии Intel integrated и GF 440 MX. Проблема решается установкой подходящих драйверов от Intel и nVidia соответственно. Также имеется неподтвержденное падение производительности в полноэкранном режиме под Windows 7. Возможно есть непроверенно ошибочная работа с двух-мониторными системами.

6. Совместимость с другими движками (под Дельфи) и библиотеками
   Движок проверялся и отлаживался на совместную работу с такими библиотеками как GLScene, audiere, squall, bass, fmod, DirectInput.
Категория: Программирование | Просмотров: 2201 | Добавил: homeship | Рейтинг: 0.0 |
[ Разделы новостей ]
Ракеты [24]
Любительское, экспериментальное ракетостроение.
Программирование [24]
Проекты, разработка, кодинг, прогресс.
"За жисть..." [20]
О политике и жизни.
Мое "нивовоцтво" ) [72]
О моей машине, о том как я стал автовладельцем и т.д.

[ Форма входа ]

[ Календарь новостей ]
«  Июнь 2010  »
ПнВтСрЧтПтСбВс
 123456
78910111213
14151617181920
21222324252627
282930

[ Статистика ]

Рейтинг@Mail.ru

Онлайн всего: 1
Гостей: 1
Пользователей: 0

[ Погода ]
 
 
Copyright Homeship Ind. © 2006 Сделать бесплатный сайт с uCoz