Минималистичная графическая библиотека на C++20 для Metal 4 и Vulkan 1.4: вместо буферов и наборов дескрипторов используются GPU-указатели и кучи дескрипторов.
regl-project/regl
Функциональная обёртка над WebGL, которая устраняет общее состояние GPU и позволяет описывать вызовы отрисовки как команды, компилируемые в оптимизированный JavaScript.
- Звёзды
- 5,590
- Форки
- 328
- Открытые issues
- 127
- Последний коммит
- 21 день назад
Что это?
regl — это библиотека JavaScript, которая оборачивает WebGL API и предлагает две абстракции: ресурсы — ссылки на объекты GPU, например буферы, текстуры и фреймбуферы, — и команды, полностью описывающие состояние WebGL, необходимое для вызова отрисовки. При определении команды разработчики могут сочетать статические и динамические значения, а regl генерирует по этому описанию оптимизированный JavaScript, поэтому удаётся избежать большей части накладных расходов на каждый вызов, характерных для обычного WebGL.
Библиотека намеренно минималистична. В ней нет графа сцены, игрового движка или утилит для векторной математики; при этом доступны все возможности WebGL, в том числе расширения для нескольких render target и инстансинга. У библиотеки нет зависимостей, помимо npm-пакета поставляется отдельная сборка в виде скрипта, а также большой набор тестов с включёнными проверками в режиме разработки.
Ключевые возможности
- 01Оборачивает WebGL, предлагая абстракции ресурсов и команд для сокращения общего состояния.
- 02Компилирует описания команд в оптимизированный JavaScript с помощью частичного вычисления.
- 03Автоматически разворачивает вложенные массивы в типизированные массивы для буферов.
- 04Предоставляет regl.frame для работы с requestAnimationFrame и управления viewport.
- 05Открывает доступ ко всем возможностям WebGL, включая расширения, например инстансинг.
- 06Не имеет runtime-зависимостей и предлагает отдельную сборку в виде скрипта.
Сценарии использования
- Создание в браузере собственных визуализаций данных с ускорением на GPU.
- Разработка графики или симуляций на шейдерах, которым нужен прямой контроль над WebGL.
- Создание долгоживущих веб-приложений, которым нужен стабильный низкоуровневый API для отрисовки.
Быстрый старт
- 1
Установите regl из npm в свой проект
npm i -S regl - 2
Подключите regl с помощью require и создайте экземпляр, затем рисуйте с помощью regl.frame
Что важно знать
- При сборке с помощью browserify проверки ошибок в режиме разработки удаляются, если не использовать флаг --debug.
В подборках
Темы
Частые вопросы
- Что такое regl?
- Функциональная обёртка над WebGL, которая устраняет общее состояние GPU и позволяет описывать вызовы отрисовки как команды, компилируемые в оптимизированный JavaScript. regl — это библиотека JavaScript, которая оборачивает WebGL API и предлагает две абстракции: ресурсы — ссылки на объекты GPU, например буферы, текстуры и фреймбуферы, — и команды, полностью описывающие состояние WebGL, необходимое для вызова отрисовки. При определении команды разработчики могут сочетать статические и динамические значения, а regl генерирует по этому описанию оптимизированный JavaScript, поэтому удаётся избежать большей части накладных расходов на каждый вызов, характерных для обычного WebGL.
- regl можно использовать бесплатно? Какая у него лицензия?
- regl распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- regl всё ещё поддерживается?
- Активно поддерживается. Последний коммит в regl — 17 окт. 2026 г..
- Для чего можно использовать regl?
- Создание в браузере собственных визуализаций данных с ускорением на GPU. Разработка графики или симуляций на шейдерах, которым нужен прямой контроль над WebGL. Создание долгоживущих веб-приложений, которым нужен стабильный низкоуровневый API для отрисовки.
- Как установить regl?
- Установите regl из npm в свой проект: npm i -S regl Подключите regl с помощью require и создайте экземпляр, затем рисуйте с помощью regl.frame
- Где скачать regl?
- Исходный код и инструкции по установке — на GitHub: https://github.com/regl-project/regl
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
JavaScript-библиотека для создания и отображения 3D-сцен в браузере с помощью WebGL и WebGPU.
Библиотека постобработки для three.js, которая объединяет полноэкранные эффекты, такие как bloom, SSAO и цветокоррекция, для сцен WebGL.
Открытая коллекция из более чем 100 написанных сообществом GLSL-переходов между двумя изображениями для веба, мобильных устройств, Apple, Android, Rust и видеоредакторов.
Рендерер океана в реальном времени для three.js (WebGL2): FFT-волны, прибой у берега, пена, каустика, подводный режим и плавающие объекты.
3D-движок для игр и рендеринга на JavaScript/TypeScript, работающий в браузере с WebGL, WebGPU и WebXR.