Repolode
patriciogonzalezvivo

patriciogonzalezvivo/lygia

Модульная библиотека шейдерных функций для GLSL, HLSL, Metal, WGSL, WebGL и CUDA: в каждом файле — одна функция для повторного использования.

Звёзды
3,480
Форки
226
Открытые issues
26
Последний коммит
13 дней назад

Что это?

LYGIA — библиотека шейдерных функций для математики, работы с цветом, преобразований пространства, шума, знаковых полей расстояний, рисования, фильтрации и освещения. В каждом файле находится одна функция, поэтому разработчики могут подключать только нужные шейдеру функции с помощью стандартной директивы #include.

Библиотека структурирована по языкам: для GLSL, HLSL, Metal, WGSL и CUDA предусмотрены отдельные файлы, а набор функций поддерживается одинаковым для всех языков. Некоторые функции можно настраивать во время компиляции с помощью параметров #define — например, переключить размытие по Гауссу на двумерное ядро или изменить функцию выборки.

LYGIA можно использовать локально, клонировав репозиторий или добавив его как git submodule, установить через npm либо подключать онлайн с помощью скрипта-резолвера для браузерных платформ, таких как CodePen. В репозитории также есть скрипт prune.py, который оставляет только нужные проекту языки.

Ключевые возможности

  • 01Модульная структура: одна функция в файле для нескольких языков шейдеров.
  • 02Разрешает зависимости #include локально или через размещённый в сети онлайн-резолвер.
  • 03Функции можно настраивать с помощью параметров #define перед подключением.
  • 04Поддерживает версионированные директивы include, чтобы закрепить зависимость за более ранним релизом LYGIA.
  • 05Включает скрипт prune.py, который оставляет только нужные языки.
  • 06Поставляется в виде npm-пакета для JavaScript-проектов.

Сценарии использования

  • Добавление шума, функций плавности или утилит для работы с цветом в проект WebGL или WebGPU без необходимости писать их с нуля.
  • Перенос шейдера с GLSL на HLSL, Metal или WGSL с повторным использованием тех же вспомогательных функций.
  • Создание генеративного искусства или скетчей для creative coding в p5.js, Three.js или Unity.
  • Публикация шейдерного кода в CodePen или Observable с автоматическим разрешением зависимостей.

Быстрый старт

  1. 1

    Клонируйте LYGIA в свой проект рядом с шейдером, который его подключает

    git clone https://github.com/patriciogonzalezvivo/lygia.git
  2. 2

    Или скачайте его без истории Git с помощью degit

    npx degit https://github.com/patriciogonzalezvivo/lygia.git lygia
  3. 3

    В шейдере подключите нужные функции с помощью #include, например "lygia/space/ratio.glsl"

Что важно знать

  • Это библиотека функций для шейдеров, а не самостоятельное приложение, поэтому её нужно интегрировать в собственный конвейер шейдеров.
  • Лицензия двойная и не является обычной лицензией с открытым исходным кодом, поэтому перед коммерческим использованием ознакомьтесь с её условиями.

Темы

Частые вопросы

Что такое lygia?
Модульная библиотека шейдерных функций для GLSL, HLSL, Metal, WGSL, WebGL и CUDA: в каждом файле — одна функция для повторного использования. LYGIA — библиотека шейдерных функций для математики, работы с цветом, преобразований пространства, шума, знаковых полей расстояний, рисования, фильтрации и освещения. В каждом файле находится одна функция, поэтому разработчики могут подключать только нужные шейдеру функции с помощью стандартной директивы #include.
lygia можно использовать бесплатно? Какая у него лицензия?
lygia распространяется с открытым исходным кодом под лицензией Other. Перед использованием в коммерческих продуктах проверьте условия лицензии.
lygia всё ещё поддерживается?
Активно поддерживается. Последний коммит в lygia — 24 окт. 2026 г..
Для чего можно использовать lygia?
Добавление шума, функций плавности или утилит для работы с цветом в проект WebGL или WebGPU без необходимости писать их с нуля. Перенос шейдера с GLSL на HLSL, Metal или WGSL с повторным использованием тех же вспомогательных функций. Создание генеративного искусства или скетчей для creative coding в p5.js, Three.js или Unity. Публикация шейдерного кода в CodePen или Observable с автоматическим разрешением зависимостей.
Как установить lygia?
Клонируйте LYGIA в свой проект рядом с шейдером, который его подключает: git clone https://github.com/patriciogonzalezvivo/lygia.git Или скачайте его без истории Git с помощью degit: npx degit https://github.com/patriciogonzalezvivo/lygia.git lygia В шейдере подключите нужные функции с помощью #include, например "lygia/space/ratio.glsl"
Где скачать lygia?
Исходный код и инструкции по установке — на GitHub: https://github.com/patriciogonzalezvivo/lygia

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Кроссплатформенная библиотека рендеринга на C++, которая абстрагирует Direct3D, Metal, OpenGL, Vulkan и WebGL, чтобы вы могли использовать собственный движок.

17,6 тыс.+15 за неделю2,2 тыс.C++BSD-2-ClauseАктивно поддерживаетсяОбновлён 24 часа назад

Открытая коллекция из более чем 100 написанных сообществом GLSL-переходов между двумя изображениями для веба, мобильных устройств, Apple, Android, Rust и видеоредакторов.

2,2 тыс.+13 за неделю331GLSLOtherОбновлён 20 часов назад

GPU.js преобразует простые функции JavaScript в шейдерный код, чтобы выполнять их на GPU в браузерах и Node.js, а при необходимости переключается на обычный JavaScript.

15,5 тыс.+5 за неделю667JavaScriptMITОбновлён 3 дня назад

Библиотека из 35 эффектов для canvas, которые можно скопировать в проект: жидкость, стекло, огонь и другие эффекты поверх живого HTML.

5,3 тыс.+158 за неделю273TypeScriptOtherАктивно поддерживаетсяОбновлён в прошлом месяце