Я написал пакетную отрисовку для своего нового фреймворка, и сделал сравнение в производительности с прошлым фреймворком.
Я сделал графики, на которых наглядно видна разница.
В среднем, производительность выросла в ~15+ раз по сравнению со старым фреймворком!
Есть 3 основных теста: Без вращения, Статическое вращение, Динамическое вращение.
Дело в том что вращение спрайтов создаёт дополнительную нагрузку на вычисления, по этому их тоже надо учитывать.
Без вращения - Спрайты не вращаются вообще.
Статическое вращение - Все спрайты всегда в одном положении (возможно кэширование, производительность в среднем почти как при "без вращения").
Динамическое вращение - Каждый спрайт вращается на каждом кадре.
С первой картинки по третью - сравнения между языками и фреймворками соответственно.
С четвертой по пятую картинки - локальное сравнение.
Тестирование производилось на оборудовании:
RTX 4060 8gb
Ryzen 5 5500
DDR4 32gb
@grandeluka⭐️
Я сделал графики, на которых наглядно видна разница.
В среднем, производительность выросла в ~15+ раз по сравнению со старым фреймворком!
Есть 3 основных теста: Без вращения, Статическое вращение, Динамическое вращение.
Дело в том что вращение спрайтов создаёт дополнительную нагрузку на вычисления, по этому их тоже надо учитывать.
Без вращения - Спрайты не вращаются вообще.
Статическое вращение - Все спрайты всегда в одном положении (возможно кэширование, производительность в среднем почти как при "без вращения").
Динамическое вращение - Каждый спрайт вращается на каждом кадре.
С первой картинки по третью - сравнения между языками и фреймворками соответственно.
С четвертой по пятую картинки - локальное сравнение.
Тестирование производилось на оборудовании:
RTX 4060 8gb
Ryzen 5 5500
DDR4 32gb
@grandeluka
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5😨4👍3
Ещё немного оптимизировал код и разработал шаблон программы на этом фреймворке для ознакомления.
Теперь пакетная отрисовка спрайтов рисует 1 048 576 статических спрайтов в ~45 фпс на видеокарте rtx4060 (упор в видеокарту). Считаю это успехом.
Опять же есть куда расти и как оптимизировать отрисовку, но этих результатов пока выше крыши.
Теперь думаю можно сделать простую 2D систему частиц, а потом минимальный код для работы со звуком
Ещё я написал шаблон программы для своего фреймворка, где всё понятно расписано.
@grandeluka⭐️
Теперь пакетная отрисовка спрайтов рисует 1 048 576 статических спрайтов в ~45 фпс на видеокарте rtx4060 (упор в видеокарту). Считаю это успехом.
Опять же есть куда расти и как оптимизировать отрисовку, но этих результатов пока выше крыши.
Теперь думаю можно сделать простую 2D систему частиц, а потом минимальный код для работы со звуком
Ещё я написал шаблон программы для своего фреймворка, где всё понятно расписано.
@grandeluka
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍2
🔥 Я оптимизировал работу буферов, и теперь если буфер уже был привязан ранее, и восстановлен через другой буфер, то повторной привязки не происходит (потому что он уже привязан). Это уменьшает количество используемого апи опенгл, что хорошо для производительности. (улучшены буферы: EBO, FBO, VAO, VBO, ShaderProgram)
OpenGL не любит лишние и частые апи вызовы.
Сейчас работаю над кодом для отрисовки примитивов для дебага. Скоро увидите результат!
@grandeluka⭐️
OpenGL не любит лишние и частые апи вызовы.
Сейчас работаю над кодом для отрисовки примитивов для дебага. Скоро увидите результат!
@grandeluka
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍2🤔2
⭐️ А вот и примитивы! Всего их получилось 14 штук.
Теперь наверное стоит попробовать реализовать систему частиц, а потом базовую работу со звуком наверное 🤔
@grandeluka⭐️
Теперь наверное стоит попробовать реализовать систему частиц, а потом базовую работу со звуком наверное 🤔
@grandeluka
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍2🎉2
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍2🤔2
This media is not supported in your browser
VIEW IN TELEGRAM
Код для простой покадровой 2д анимации готов.
FrameAnimator2D
Теперь надо внедрить поддержку сцен. В целом тоже не особо сложно будет.
@grandeluka⭐️
FrameAnimator2D
Теперь надо внедрить поддержку сцен. В целом тоже не особо сложно будет.
@grandeluka
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥3🎉2
This media is not supported in your browser
VIEW IN TELEGRAM
На часах пол пятого утра, а я только закончил добавлять поддержку сцен. Вернее я их добавил ещё в два часа ночи, но возник один сложный баг который я час пытался поймать, и всё же смог решить его.
Теперь можно создавать много разных сцен в игре и переключаться между ними.
@grandeluka⭐️
Теперь можно создавать много разных сцен в игре и переключаться между ними.
@grandeluka
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5⚡3😨2
Я тут выложил свои утилиты для установки сертификата и метаданных программы для Windows.
Может кому-то пригодится. Инструкции есть там же.
Можно свой неофициальный или официальный сертификат установить, ну либо отредактировать иконку и описание файла.
Типа чтобы ваша программа выглядела как профессиональная со всеми приколами, по типу сертификата и подробного описания.
https://github.com/LukovDev/SetProgramMetadata
https://github.com/LukovDev/SignTheProgram
@grandeluka
Может кому-то пригодится. Инструкции есть там же.
Можно свой неофициальный или официальный сертификат установить, ну либо отредактировать иконку и описание файла.
Типа чтобы ваша программа выглядела как профессиональная со всеми приколами, по типу сертификата и подробного описания.
https://github.com/LukovDev/SetProgramMetadata
https://github.com/LukovDev/SignTheProgram
@grandeluka
❤5🔥3👍2😱1
Доп.гифки можно посмотреть в комментариях👇👇👇
Складывание цветов источников света и их наложение на объекты сцены работают правильно.
Источники света я сделал яркими чтобы показать что освещение может взаимодействовать друг с другом.
Теперь наверное стоит добавить поддержку системы частиц 2D.
@grandeluka
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥4👍4🔥3❤1😨1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥2❤🔥1💅1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥2😁2❤🔥1💅1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥3💅3❤🔥1
Во время разработки поддержки отрисовки текста, мне стало скучно, и я сделал простенький генератор планеты на коленках. Тут 2048 на 2048 сегментов (полигонов) сферы.
Также я всё это время исправлял некоторые мелкие недочеты и ошибки в работе графики и рендерере. Ну и ещё сделал дебаг-вывод сообщений opengl для отладки. Будет полезно в будущем. Немного почистил и улучшил код в целом
@grandeluka⭐️
Также я всё это время исправлял некоторые мелкие недочеты и ошибки в работе графики и рендерере. Ну и ещё сделал дебаг-вывод сообщений opengl для отладки. Будет полезно в будущем. Немного почистил и улучшил код в целом
@grandeluka
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥3👍3🔥2💅1