Repolode
patriciogonzalezvivo

patriciogonzalezvivo/lygia

面向 GLSL、HLSL、Metal、WGSL、WebGL 和 CUDA 的细粒度着色器函数库,每个文件只包含一个可复用函数。

Star
3,480
Fork
226
未关闭 Issue
26
最近提交
14天前

这是什么?

LYGIA 是一个着色器函数库,提供数学、颜色、空间变换、噪声、符号距离场、绘图、滤镜和光照等可复用函数。每个文件只包含一个函数,开发者可以通过标准的 #include 指令只引入着色器需要的部分。

函数库按语言组织,分别提供 GLSL、HLSL、Metal、WGSL 和 CUDA 版本,并保持各语言实现的同步。部分函数支持在引入前用 #define 调整行为,例如将高斯模糊切换为二维卷积核或更换采样函数。

使用方式包括克隆仓库或作为 git 子模块引入、通过 npm 安装,也可以在 CodePen 等在线平台中使用托管的解析脚本自动解析依赖。仓库还提供 prune.py 脚本,可只保留项目所需的语言版本。

核心功能

  • 01每个文件只包含一个函数,覆盖 GLSL、HLSL、Metal、WGSL、CUDA 等多种着色语言。
  • 02可在本地或通过托管的在线解析服务解析 #include 依赖。
  • 03函数可在引入前通过 #define 调整行为。
  • 04支持带版本号的引用路径,便于固定到早期版本。
  • 05提供 prune.py 脚本,只保留所需语言的文件。
  • 06提供 npm 包,方便 JavaScript 项目使用。

适用场景

  • 在 WebGL 或 WebGPU 项目中直接使用噪声、缓动和颜色工具函数,无需从零实现。
  • 将着色器从 GLSL 移植到 HLSL、Metal 或 WGSL 时复用相同的辅助函数。
  • 在 p5.js、Three.js 或 Unity 中制作生成艺术和创意编程作品。
  • 在 CodePen 或 Observable 上分享着色器代码,并自动解析依赖。

快速上手

  1. 1

    将 LYGIA 克隆到使用它的着色器旁边的项目中

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

    或者使用 degit 下载且不含 git 历史记录

    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 最近一次提交是在 2026年10月24日。
lygia 适合用来做什么?
在 WebGL 或 WebGPU 项目中直接使用噪声、缓动和颜色工具函数,无需从零实现。 将着色器从 GLSL 移植到 HLSL、Metal 或 WGSL 时复用相同的辅助函数。 在 p5.js、Three.js 或 Unity 中制作生成艺术和创意编程作品。 在 CodePen 或 Observable 上分享着色器代码,并自动解析依赖。
lygia 怎么安装和运行?
将 LYGIA 克隆到使用它的着色器旁边的项目中: git clone https://github.com/patriciogonzalezvivo/lygia.git 或者使用 degit 下载且不含 git 历史记录: npx degit https://github.com/patriciogonzalezvivo/lygia.git lygia 在着色器中使用 #include 引入所需函数,例如 "lygia/space/ratio.glsl"
在哪里获取 lygia?
源代码和安装说明在 GitHub 上:https://github.com/patriciogonzalezvivo/lygia

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目