Обновления в движке MGE
[
![]() ![]() |

Для начала расскажу о сокращении: MGE - Make-Games.ru Engine. Практично, квадратно, хорошо =)
Движок переписываю во второй раз, но не смотря на это темп наращивается. На многих ошибках уже научился, перечитал достаточное количество статей по множеству функций ОпенГЛ и по оптимизации Делфи кода. На данный момент движок весит 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 - полноэкранное сглаживание.
Планы озвучивать не буду =).
Возможно буду начинать параллельно делать уроки по использованию движка.
Движок переписываю во второй раз, но не смотря на это темп наращивается. На многих ошибках уже научился, перечитал достаточное количество статей по множеству функций ОпенГЛ и по оптимизации Делфи кода. На данный момент движок весит 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 - полноэкранное сглаживание.
Планы озвучивать не буду =).
Возможно буду начинать параллельно делать уроки по использованию движка.
![]() ![]() ![]() ![]() ![]() |
HTML ссылка на материал: BB ссылка на материал: |
Всего комментариев: 3 | |
| |