Direct3D、Metal、OpenGL、Vulkan、WebGLを抽象化し、独自のエンジンと組み合わせて使えるクロスプラットフォームのC++レンダリングライブラリ。
patriciogonzalezvivo/lygia
GLSL、HLSL、Metal、WGSL、WebGL、CUDA向けの細分化されたシェーダー関数ライブラリ。各ファイルに再利用可能な関数を1つずつ収録しています。
- スター
- 3,480
- フォーク
- 226
- 未解決の Issue
- 26
- 最終コミット
- 13 日前
これは何?
LYGIAは、数学、色、空間変換、ノイズ、符号付き距離関数、描画、フィルタリング、ライティング向けの再利用可能な関数を集めたシェーダーライブラリです。各ファイルには関数が1つだけ含まれているため、標準の#includeディレクティブを使って、シェーダーに必要なものだけを読み込めます。
ライブラリは言語ごとに整理されており、GLSL、HLSL、Metal、WGSL、CUDA用のファイルがそれぞれ用意されています。同じ関数が各言語で保守されています。また、Gaussian blurを2Dカーネルに切り替えたり、サンプリング関数を変更したりするなど、一部の関数は#defineオプションでコンパイル時に調整できます。
LYGIAは、リポジトリをcloneするかgit submoduleとしてローカルで利用できるほか、npmからインストールしたり、CodePenなどのブラウザベースのプラットフォーム向けに、ホストされたresolver scriptを介してオンラインで利用したりできます。また、プロジェクトで必要な言語だけを残すprune.pyスクリプトも含まれています。
主な機能
- 01複数のシェーディング言語に対応し、1ファイルにつき関数を1つ収録する細分化された設計です。
- 02ローカル、またはホストされたオンラインresolverを通じて#includeの依存関係を解決します。
- 03読み込み前に#defineオプションで関数を設定できます。
- 04以前のLYGIAリリースに固定できる、バージョン指定付きのincludeに対応しています。
- 05必要な言語だけを残すprune.pyスクリプトが含まれています。
- 06JavaScriptプロジェクト向けのnpmパッケージを提供しています。
ユースケース
- WebGLやWebGPUのプロジェクトに、ノイズ、イージング、色関連のユーティリティを一から実装せずに追加する。
- 同じヘルパー関数を再利用しながら、シェーダーをGLSLからHLSL、Metal、WGSLへ移植する。
- p5.js、Three.js、Unityでジェネラティブアートやクリエイティブコーディングのスケッチを作る。
- 依存関係を自動解決しながら、CodePenやObservableでシェーダーコードを共有する。
クイックスタート
- 1
それを include するシェーダーの隣に、LYGIA をプロジェクトへクローンします
git clone https://github.com/patriciogonzalezvivo/lygia.git - 2
または、degit を使って Git の履歴なしでダウンロードします
npx degit https://github.com/patriciogonzalezvivo/lygia.git lygia - 3
シェーダー内で、"lygia/space/ratio.glsl" など、必要な関数を #include します
使う前に知っておきたいこと
- これはシェーダー関数ライブラリであり、単独で動作するアプリケーションではありません。独自のシェーダーパイプラインに組み込む必要があります。
- ライセンスはデュアルライセンスで、一般的なオープンソースライセンスではありません。商用利用の前にライセンス条項を確認してください。
トピック
よくある質問
- lygia とは?
- GLSL、HLSL、Metal、WGSL、WebGL、CUDA向けの細分化されたシェーダー関数ライブラリ。各ファイルに再利用可能な関数を1つずつ収録しています。 LYGIAは、数学、色、空間変換、ノイズ、符号付き距離関数、描画、フィルタリング、ライティング向けの再利用可能な関数を集めたシェーダーライブラリです。各ファイルには関数が1つだけ含まれているため、標準の#includeディレクティブを使って、シェーダーに必要なものだけを読み込めます。
- lygia は無料で使えますか?ライセンスは?
- lygia は Other ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- lygia は今もメンテナンスされていますか?
- 活発にメンテナンス中。lygia の最終コミットは 2026年10月24日 です。
- lygia は何に使えますか?
- WebGLやWebGPUのプロジェクトに、ノイズ、イージング、色関連のユーティリティを一から実装せずに追加する。 同じヘルパー関数を再利用しながら、シェーダーをGLSLからHLSL、Metal、WGSLへ移植する。 p5.js、Three.js、Unityでジェネラティブアートやクリエイティブコーディングのスケッチを作る。 依存関係を自動解決しながら、CodePenやObservableでシェーダーコードを共有する。
- lygia のインストール方法は?
- それを include するシェーダーの隣に、LYGIA をプロジェクトへクローンします: git clone https://github.com/patriciogonzalezvivo/lygia.git または、degit を使って Git の履歴なしでダウンロードします: npx degit https://github.com/patriciogonzalezvivo/lygia.git lygia シェーダー内で、"lygia/space/ratio.glsl" など、必要な関数を #include します
- lygia はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/patriciogonzalezvivo/lygia
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
Web、モバイル、Apple、Android、Rust、動画ツールで使える、コミュニティ作成の100種類以上のGLSL画像切り替えエフェクト集。
GPU.jsはシンプルなJavaScript関数をGPUシェーダーコードに変換し、ブラウザやNode.jsでGPU上で実行します。GPUが使えない場合は通常のJavaScriptにフォールバックします。
ライブHTMLコンテンツ上で動作する、液体・ガラス・炎など35種類のフレームワーク非依存なcanvas UIエフェクトをコピーして使えるライブラリ。
WebGLとWebGPUを使ったブラウザー上の3Dシーンの作成・描画を容易にするJavaScript 3Dライブラリ。
WebGLとWebGPUでグラフィック、スプライト、テキストを描画する高速なWeb向け2Dレンダリングライブラリ。