一个跨平台 C++ 渲染库,统一封装 Direct3D、Metal、OpenGL、Vulkan 等图形 API,可接入自有引擎或框架。
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
将 LYGIA 克隆到使用它的着色器旁边的项目中
git clone https://github.com/patriciogonzalezvivo/lygia.git - 2
或者使用 degit 下载且不含 git 历史记录
npx degit https://github.com/patriciogonzalezvivo/lygia.git lygia - 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 数据每日更新。
相关项目
社区编写的 100 多种 GLSL 图像转场效果集合,可用于网页、移动端、视频工具等多种平台。
GPU.js 可将简单的 JavaScript 函数转译为 GPU 着色器代码,在浏览器和 Node.js 中加速计算,无 GPU 时回退到普通 JavaScript。
一套可复制到项目中的画布 UI 特效组件库,共 35 个,覆盖液体、玻璃、火焰等效果,框架无关。
一个用于在浏览器中构建和渲染 3D 场景的 JavaScript 库,基于 WebGL 与 WebGPU。
面向网页的高性能 2D 渲染库,基于 WebGL 和 WebGPU 绘制图形、精灵与文本。