Grandeluka
20 subscribers
78 photos
1 video
9 links
ТГ: @mr_lukov
ТГК: @grandeluka
Сайт: lukovdev.ru
ГитХаб: github.com/LukovDev
Почта: kukovdev@gmail.com
Download Telegram
Я написал пакетную отрисовку для своего нового фреймворка, и сделал сравнение в производительности с прошлым фреймворком.

Я сделал графики, на которых наглядно видна разница.

В среднем, производительность выросла в ~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 ⭐️
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍2
🔥 Я оптимизировал работу буферов, и теперь если буфер уже был привязан ранее, и восстановлен через другой буфер, то повторной привязки не происходит (потому что он уже привязан). Это уменьшает количество используемого апи опенгл, что хорошо для производительности. (улучшены буферы: EBO, FBO, VAO, VBO, ShaderProgram)

OpenGL не любит лишние и частые апи вызовы.

Сейчас работаю над кодом для отрисовки примитивов для дебага. Скоро увидите результат!

@grandeluka ⭐️
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍2🤔2
⭐️ А вот и примитивы! Всего их получилось 14 штук.

Теперь наверное стоит попробовать реализовать систему частиц, а потом базовую работу со звуком наверное 🤔

@grandeluka ⭐️
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍2🎉2
Вот наглядный пример использование МипМапов (карт детализации текстуры)

@grandeluka ⭐️
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 ⭐️
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 ⭐️
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥53😨2
Я тут выложил свои утилиты для установки сертификата и метаданных программы для Windows.

Может кому-то пригодится. Инструкции есть там же.
Можно свой неофициальный или официальный сертификат установить, ну либо отредактировать иконку и описание файла.

Типа чтобы ваша программа выглядела как профессиональная со всеми приколами, по типу сертификата и подробного описания.

https://github.com/LukovDev/SetProgramMetadata

https://github.com/LukovDev/SignTheProgram

@grandeluka
5🔥3👍2😱1
💡Сделал поддержку 2D освещения. Работает возможно слишком low-level, но зато гибко.

Доп.гифки можно посмотреть в комментариях👇👇👇

Складывание цветов источников света и их наложение на объекты сцены работают правильно.

Источники света я сделал яркими чтобы показать что освещение может взаимодействовать друг с другом.

Теперь наверное стоит добавить поддержку системы частиц 2D.

@grandeluka ⭐️
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥4👍4🔥31😨1
This media is not supported in your browser
VIEW IN TELEGRAM
Экспериментирую на текущих возможностях фреймворка👀

@grandeluka ⭐️
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
This media is not supported in your browser
VIEW IN TELEGRAM
Добавил заставку при запуске игры. Как будто прикольно получилось да?

@grandeluka ⭐️
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥3💅3❤‍🔥1
Во время разработки поддержки отрисовки текста, мне стало скучно, и я сделал простенький генератор планеты на коленках. Тут 2048 на 2048 сегментов (полигонов) сферы.

Также я всё это время исправлял некоторые мелкие недочеты и ошибки в работе графики и рендерере. Ну и ещё сделал дебаг-вывод сообщений 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