Thunder Engine Development
44 subscribers
25 photos
1 video
17 links
Записки разработчика игрового движка. Чат канала @thunderengine_chat
Download Telegram
⚙️ Глубоко в настройках: рефакторинг под Metal и работа с Uniform-буферами

Продолжаю тему настройки рендера под Metal. Основная проблема на текущий момент — ошибки валидации при работе с uniform-буферами.

📖 Что такое uniform-буферы?
Если коротко — это специальные буферы для передачи параметров из кода в шейдер. Через них можно отправить:

- Цвет, размер, положение объектов

- Любые другие данные для работы шейдера или материала

🎯 Особенности в Metal
В Metal действуют строгие правила выравнивания данных. Возьмём для примера такую структуру:
glsl

layout(set = 1, binding = GLOBAL) uniform Global {
mat4 view;
mat4 projection;
vec4 cameraWorldToScreen;
vec4 cameraAndParams;
} g;


Правильное выравнивание этой структуры критически важно для работы Metal. Если данные на CPU не упакованы согласно этим требованиям — система просто откажется их принимать.

🛠 Что было сделано
Провёл масштабный рефакторинг структур данных, направленный на:

- Единообразие размера передаваемых данных

- Автоматическое соблюдение правил выравнивания Metal

- Устранение ошибок валидации на этапе компиляции

Работа кропотливая, но необходимая для стабильной работы движка на macOS и iOS. Впереди ещё много интересных оптимизаций! 🚀

#ThunderEngine #Metal #Graphics #Shader #GameDev #Optimization
🔥4
🔧 Репортаж с полей разработки: сражения с платформами, прогресс с Metal и важные открытия

Эх, видимо, придётся где-то раздобыть мини-PC, чтобы поставить Linux и полноценно тестировать движок на этой платформе. Только что закончил двухнедельный «марафон» по ремонту поддержки всей линейки устройств Apple — и понимаю, что без автоматизации дальше будет тяжело.

Либо надо серьёзно расширять автотесты… а на них, как всегда, вечно не хватает времени, а ещё — экспертизы и просто терпения. Знакомое чувство? 😅

🍎 Прогресс с Metal
Из приятного: теперь Metal — нативный API для всей яблочной линейки (macOS, iOS, tvOS). Пока остаются мелкие проблемы с освещением, которые надеюсь починить к следующему релизу. Ну или сразу после — главное, чтобы работало стабильно.

🎮 Нежданное открытие с геймпадами
Тут я, кажется, слегка приукрасил в своём докладе. Думал, что геймпады работают везде — ан нет: поддержка есть только под Windows и Linux. На iOS через GLFM геймпады, увы, не работают. Видимо, придётся писать свои обёртки или искать обходные пути.

Работа продолжается — не без сложностей, но с движением вперёд! Если есть идеи по тестированию под Linux или опыт с геймпадами на iOS — welcome в комментарии 👇

#ThunderEngine #GameDev #Metal #Linux #iOS #Геймпады #Разработка
🔥5