Обновления в движке MGE
[ Спасибо! ]
[ Поделиться ]
|
15:27
Движок переписываю во второй раз, но не смотря на это темп наращивается. На многих ошибках уже научился, перечитал достаточное количество статей по множеству функций ОпенГЛ и по оптимизации Делфи кода. На данный момент движок весит 130 КБ и присутствует следующая функциональность:
1. Для загрузки текстур используется простой менеджер текстур. Спрайты могут состоять из кадров и из одной текстуры со смещением координат. У спрайтов присутствует анимация.
2. При запуске движок собирает исчерпывающую информацию по доступным расширениям и кратко и железе. Из них реализовано в движке:
- VSunc - Ожидание вертикальной развертки экрана. Стабилизирует ФПС, в основном на значении 60(зависит от настроек видеокарты).
- VA, VBO, VAO - Для отображения больших массивов вершин используются технологии специально адаптированные для этого. VA для старых машин, VBO с VAO для более новых.
- MultiTextures - Движок может использовать до 3 мультитекстур одновременно. Данное расширение позволяет рендерить 3 текстуры за 1 проход.
- ARBShaders - Шейдеры низкого уровня, асм подобные. Для совместимости со старыми машинами. Присутствует встроенный парсер, который позволяет использовать новые виды комментария. При загрузке шейдера парсер оптимизирует код. Т.к. было замечено, что шейдеры с комментарием и строками содержащими пустоту не идут на старых интегрированных Интел графических карточках.
- GLSL - Шейдеры высокого уровня. Используются на более новых машинах. Будут присутствовать стандартные шейдеры : Бумп, Параллакс, Освещение. Возможно их компоновка вместе.
- Anisotropy - Анизотропная фильтрация текстур.
3. Присутствует возможность собрать доскональную информацию о компьютере. В том числе и о расширениях CPU : MMX, SSE и т.д.
4. Простое управление игровым окном, вне зависимости куда происходит рендер : окно движка, пользовательское, или элемент на форме.
5. Управление устройствами ввода : мышка, клавиатура, геймпад.
6. Присутствует большое количество незаменимых команд, таких как преобразование чисел, вывод диалоговых окон, работа с потоками, памятью, строками, файлами.
7. Мощная система рендера спрайтов позволяет за 1 проход рендерить до 3 текстур на объект с применением шейдеров. Производится авторасчет координат положения и нормалей для шейдеров. Есть возможность задать цвета и прозрачность для всех 4-х точек спрайта, замостить текстуру или трансформировать ее.
8. Использование шрифтов для отображения текста: векторных, графических. Присутствует анализатор перевода каретки на следующую строчку.
9. Для отображения сцен в 2Д и 3Д используются соответствующие объекты камер. Число ViewPort неограничено.
10. Присутствует система для проигрывания звуков, для фоновых более слабая, для Wav-ов более мощная, способная задавть звуку положение в 2д и 3Д пространстве.
11. Для замены Канваса используется свой канвас, который в сотни раз быстрее GDI.
12. Для вычисления математики используются соответствующие объекты, которые имеют процедуры и функции оптимизированные на Басме (Borland Assembler).
13. Для управления состояниями ОпенГл используется соответствующий объект простой в использовании.
14. Присутствует 2-а вида таймеров, системный и степовый(отчет ведется по степам рендера).
15. Для работы с шейдерами и массивами вершин присутствуют простые в освоении объекты. В объекте с работой массивом вершин присутствует анализатор повторяющихся вершин.
16. Каждый объект может создать свой идентичный дубликат, который не будет связан ссылками в памяти с первым. Что позволяет создавать шаблоны для объектов.
17. Огромное количество функций для определения столкновений следующих примитивов: точка, линия, треугольник, квадрат, сфера, тетрагон между собой по одиночке и массивов.
18. Можно создавать пустые текстуры и рендерить в них сцену.
19. Присутствует система изменений фильтрации текстур, в том чиле и анизотропной.
Вывод 2Д графики использует аппаратное ускорение. Поэтому производительность на высоте. При работе с математикой в основном используется оптимизированный код ассемблера.
Умеет грузить следующие форматы:
- изображения : JPG, JPEG, BMP, GIF(статика), TGA
- звуки : mid, midi, mp3, wma, wav
На данный момент в разработке:
- возможность проигрывания видео. Avi будет поддерживаться не зависимо от кодеков. Остальные форматы буду поддерживаться если в ОС стоят кодеки для открытия этого файла.
- прямо сейчас параллельно пишу объект для работы с тайлами. Присутствует возможность простого рендера и рендера через массив вершин. Если использовать массив вершин с анализатором повторения поликов, то число вершин в массиве падает в 7 раз при рендере 301 тайла в ряд. Оптимизируется лишних 1202 полика из 1806.
- VBO - более быстрый рендер в текстуру.
- Shadows - тени
- AntiAliasing - полноэкранное сглаживание.
Планы озвучивать не буду =).
Возможно буду начинать параллельно делать уроки по использованию движка.
Категория: Новости разработчиков |
Просмотров: 2301 |
Добавил: Конструктор
| Рейтинг: 5.0/2
Теги: |
HTML ссылка на материал: BB ссылка на материал: |
Похожие материалы :
|
Возможно вам будет интересно:
Обзор игры Эра 13 (4)
Microlab FC-730 (0) Геймплей GTA V (4) Во что следует поиграть : LIMBO (7) Добавил шейдеры: ARB Assembler (2) Mortal Kombat 10 (4) Первое ЗБТ. (2) Игра Небеса (1) Разработка Evelle (0) Во что следует поиграть : Bad Piggies (5) Во что следует поиграть : Underground Tour (2) Nintendo прекращает производство Wii (3) Мой браузер (8) Во что следует поиграть : GUN (2) Gta V едет в Россию (0) |
Всего комментариев: 3 | |
| |