Biblioteca de renderização C++ multiplataforma que abstrai Direct3D, Metal, OpenGL, Vulkan e WebGL para você usar com seu próprio engine.
patriciogonzalezvivo/lygia
Uma biblioteca granular de funções de shader para GLSL, HLSL, Metal, WGSL, WebGL e CUDA, com uma função reutilizável em cada arquivo.
- Estrelas
- 3,480
- Forks
- 226
- Issues abertas
- 26
- Último commit
- há 13 dias
O que é?
LYGIA é uma biblioteca de funções reutilizáveis para shaders, que inclui matemática, cores, transformações de espaço, ruído, campos de distância com sinal, desenho, filtragem e iluminação. Cada arquivo contém uma única função, permitindo que desenvolvedores incluam apenas o que o shader precisa usando a diretiva padrão #include.
A biblioteca é organizada por linguagem, com arquivos separados para GLSL, HLSL, Metal, WGSL e CUDA, e as mesmas funções são mantidas em todas elas. Algumas funções podem ser ajustadas em tempo de compilação com opções #define, como mudar um desfoque gaussiano para um kernel 2D ou alterar sua função de amostragem.
LYGIA pode ser usada localmente clonando o repositório ou como um submódulo git, instalada pelo npm ou acessada online por meio de um script resolvedor hospedado, para plataformas baseadas em navegador, como o CodePen. O repositório também inclui um script prune.py para manter apenas as linguagens necessárias ao projeto.
Recursos principais
- 01Design granular, com uma função por arquivo em várias linguagens de shader.
- 02Resolve dependências de #include localmente ou por meio de um resolvedor online hospedado.
- 03As funções podem ser configuradas com opções #define antes da inclusão.
- 04Oferece suporte a includes com versão para fixar versões anteriores do LYGIA.
- 05Inclui um script prune.py para manter apenas as linguagens necessárias.
- 06Disponibiliza um pacote npm para projetos JavaScript.
Casos de uso
- Adicionar utilitários de ruído, easing ou cores a um projeto WebGL ou WebGPU sem precisar implementá-los do zero.
- Portar um shader de GLSL para HLSL, Metal ou WGSL reutilizando as mesmas funções auxiliares.
- Criar arte generativa ou projetos de creative coding com p5.js, Three.js ou Unity.
- Compartilhar código de shader online no CodePen ou Observable com resolução automática das dependências.
Início rápido
- 1
Clone o LYGIA no seu projeto, ao lado do shader que o inclui
git clone https://github.com/patriciogonzalezvivo/lygia.git - 2
Ou baixe-o sem o histórico do Git usando o degit
npx degit https://github.com/patriciogonzalezvivo/lygia.git lygia - 3
No seu shader, use #include para incluir as funções de que precisa, como "lygia/space/ratio.glsl"
Antes de usar
- É uma biblioteca de funções para shaders, não um aplicativo independente; portanto, você precisa integrá-la ao seu próprio pipeline de shaders.
- A licença é dupla e não é uma licença de código aberto convencional; confira os termos antes de usar comercialmente.
Tópicos
Perguntas frequentes
- O que é lygia?
- Uma biblioteca granular de funções de shader para GLSL, HLSL, Metal, WGSL, WebGL e CUDA, com uma função reutilizável em cada arquivo. LYGIA é uma biblioteca de funções reutilizáveis para shaders, que inclui matemática, cores, transformações de espaço, ruído, campos de distância com sinal, desenho, filtragem e iluminação. Cada arquivo contém uma única função, permitindo que desenvolvedores incluam apenas o que o shader precisa usando a diretiva padrão #include.
- lygia é gratuito? Qual é a licença?
- lygia é open source sob a licença Other. Confira os termos da licença antes de usá-lo em produtos comerciais.
- lygia ainda é mantido?
- Manutenção ativa. O último commit de lygia foi em 24 de out. de 2026.
- Para que posso usar lygia?
- Adicionar utilitários de ruído, easing ou cores a um projeto WebGL ou WebGPU sem precisar implementá-los do zero. Portar um shader de GLSL para HLSL, Metal ou WGSL reutilizando as mesmas funções auxiliares. Criar arte generativa ou projetos de creative coding com p5.js, Three.js ou Unity. Compartilhar código de shader online no CodePen ou Observable com resolução automática das dependências.
- Como instalar lygia?
- Clone o LYGIA no seu projeto, ao lado do shader que o inclui: git clone https://github.com/patriciogonzalezvivo/lygia.git Ou baixe-o sem o histórico do Git usando o degit: npx degit https://github.com/patriciogonzalezvivo/lygia.git lygia No seu shader, use #include para incluir as funções de que precisa, como "lygia/space/ratio.glsl"
- Onde consigo lygia?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/patriciogonzalezvivo/lygia
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Uma coleção aberta de mais de 100 transições GLSL criadas pela comunidade entre duas imagens, para web, dispositivos móveis, Apple, Android, Rust e ferramentas de vídeo.
GPU.js transpila funções JavaScript simples em código de shader para executá-las na GPU em navegadores e no Node.js, com fallback para JavaScript puro.
Biblioteca para copiar para o projeto, com 35 efeitos de UI em canvas independentes de framework, como líquido, vidro e fogo, que funcionam sobre conteúdo HTML ao vivo.
Uma biblioteca JavaScript 3D que facilita criar e renderizar cenas 3D no navegador com WebGL e WebGPU.
Uma biblioteca rápida de renderização 2D para a web que desenha gráficos, sprites e texto com WebGL e WebGPU.