TGStat
TGStat
Qidiruv uchun matnni kiriting
Ilg‘or kanal qidiruvi
  • flag Uzbek
    Sayt tili
    flag Russian flag English flag Uzbek
  • Saytga kirish
  • Katalog
    Kanal va guruhlar katalogi Hududiy to‘plamlar Tematik to‘plamlar Платные каналы Kanallar qidiruvi
    Kanal/guruh qo‘shish
  • Reytinglar
    Kanallar reytingi Guruhlar reytingi Postlar reytingi
    Brendlar va shaxslar reytingi
  • Analitika
  • Postlarda qidiruv
  • Telegram'ni kuzatish
  • Targ‘ibot
    Yandex Business orqali reklama TGStat Agency orqali kanallarda reklama TGStat.ru saytida reklama
Flutter Pulse

9 Sep, 18:05

Telegram'da ochish Ulashish Shikoyat qilish

Свет в конце пайплайна: 3D-движок на чистом Dart (+gpu)

flutter3d — это полноценный 3D-движок, написанный на чистом Dart. Никакого FFI, никаких нативных библиотек для физики или звука. Всё работает через новый API Flutter GPU, который дает прямой доступ к Metal и Vulkan. Проект уже включает физику, коллизии, аудио-микшер и три играбельные игры, доступные прямо в браузере.

Архитектура построена вокруг слоя аппаратной абстракции (HAL). Это позволяет использовать три взаимозаменяемых бэкенда: Impeller (основной, через Flutter GPU), WebGL2 (для веба) и CPU-растеризатор (чистый Dart без GPU). Последний бэкенд служит эталоном: он позволяет запускать попиксельные тесты в CI без видеокарты, что выявило ошибку в WebGL-бэкенде, где 19% пикселей расходились с эталоном.

⚠️ Flutter GPU накладывает жесткие ограничения. Нет рантайм-компиляции шейдеров — все материалы должны быть известны на этапе сборки. Нельзя сэмплировать depth-текстуры, поэтому карты теней записываются в цветовые буферы. Также есть проблема «stale bindings»: при смене пайплайна старые привязки могут вызывать визуальные артефакты, что решается принудительной очисткой состояния.

💡 Инженерные решения здесь впечатляют. Вместо dirty-флагов используется версионирование трансформаций, что исключает ошибки при обновлении матриц. Горячий цикл кадра оптимизирован под сборщик мусора Dart: нет обхода дерева сцены, списки отрисовки переиспользуются, а ключи сортировки хранятся в типизированных массивах.

⚡️ Производительность на высоте. Десктопный шутер с шестью источниками света, PBR-материалами и эффектом bloom держит 120 FPS даже в debug-сборке на ноутбуке. Реализованы каскадные карты теней, HDR-конвейер с bloom и детерминированная симуляция с фиксированным шагом.

🎮 Практическое применение уже доказано. Игра Coin Climb написана всего на ~600 строк кода, из которых 36 строк — это описание уровня в JSON. Жанровая механика (двойной прыжок, coyote time) вынесена в отдельные пакеты, что позволяет создавать игры без изменения ядра движка.

Проект находится на версии 0.4.0 и активно ищет вкладчиков. Приоритетны новые жанровые пакеты и тестирование на разных GPU. Если вы хотите писать 3D-игры на Dart без выхода за пределы экосистемы Flutter — это стоит попробовать.

🔗 Полезные ссылки
flutter3d на pub.dev
Исходный код на GitHub
Документация и пакеты

🔗 Полезные ссылки
📦 flutter3d
💻 coin_climb
💻 flutter3d
📚 pleion.dev

📰 Читать оригинал на Habr

FlutterPulse — канал о мире Flutter!

#flutter #dart #flutterpulse #flutterpulsehabr

386 0 4 1 2
Katalog
Kanal va guruhlar katalogi Kanallar to‘plamlari Kanallar qidiruvi Kanal/guruh qo‘shish
Reytinglar
Telegram-kanallar reytingi Telegram-guruhlar reytingi Postlar reytingi Brendlar va shaxslar reytingi
API
Statistika API'si Postlar qidiruvi API'si API Callback
Kanallarimiz
@TGStat @TGStat_Chat @telepulse @TGStatAPI
O‘qish
Академия TGStat Telegram tadqiqoti 2019 Telegram tadqiqoti 2021 Telegram tadqiqoti 2023
Kontaktlar
Справочный центр Qo‘llab-quvvatlash Email Vakansiyalar
Har xil narsalar
Foydalanuvchi shartnomasi Maxfiylik siyosati Ommaviy oferta
Botlarimiz
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot