バッファやdescriptor setをGPUポインターとdescriptor heapで置き換える、Metal 4とVulkan 1.4向けの最小構成のC++20グラフィックスライブラリです。
regl-project/regl
共有GPU状態をなくし、描画呼び出しをコマンドとして記述して最適化済みJavaScriptにコンパイルできる、関数型のWebGLラッパー。
- スター
- 5,594
- フォーク
- 328
- 未解決の Issue
- 127
- 最終コミット
- 21 日前
これは何?
reglは、WebGL APIを2つの抽象化でラップするJavaScriptライブラリです。バッファ、テクスチャ、フレームバッファなどのGPUオブジェクトを参照するハンドルであるリソースと、描画呼び出しに必要なWebGLの状態をすべて記述するコマンドを提供します。開発者はコマンドの定義時に静的な値と動的な値を組み合わせられ、その記述からreglが最適化済みのJavaScriptコードを生成するため、生のWebGLで発生する呼び出しごとのオーバーヘッドの大部分を回避できます。
このライブラリは意図的に最小限の構成になっています。シーングラフ、ゲームエンジン、ベクトル演算ユーティリティは提供しませんが、複数のレンダーターゲットやインスタンシングなどの拡張を含め、あらゆるWebGL機能を利用できます。依存関係はなく、npmパッケージとともに単体で使えるスクリプト版を配布しています。また、開発モードでは検証チェックが有効になる、大規模なテストスイートも含まれています。
主な機能
- 01リソースとコマンドの抽象化でWebGLをラップし、共有状態を減らします。
- 02部分評価によってコマンド定義を最適化済みのJavaScriptにコンパイルします。
- 03ネストした配列をバッファ用の型付き配列に自動で展開します。
- 04ビューポート処理に対応したrequestAnimationFrame用のregl.frameを提供します。
- 05インスタンシングなどの拡張を含む、すべてのWebGL機能を利用できます。
- 06実行時の依存関係がなく、単体で使えるスクリプト版も提供します。
ユースケース
- ブラウザーで動作する、GPUアクセラレーション対応のカスタムデータ可視化を構築する。
- WebGLを直接制御する必要のある、シェーダーベースのグラフィックスやシミュレーションを作成する。
- 安定した低レベルのレンダリングAPIに依存する、長期間運用するWebアプリケーションを開発する。
クイックスタート
- 1
npmからプロジェクトにreglをインストールします
npm i -S regl - 2
reglをrequireしてインスタンスを作成し、regl.frameで描画します
使う前に知っておきたいこと
- --debugフラグを使わない限り、browserifyでバンドルすると開発モードのエラーチェックは削除されます。
収録されている特集
トピック
よくある質問
- regl とは?
- 共有GPU状態をなくし、描画呼び出しをコマンドとして記述して最適化済みJavaScriptにコンパイルできる、関数型のWebGLラッパー。 reglは、WebGL APIを2つの抽象化でラップするJavaScriptライブラリです。バッファ、テクスチャ、フレームバッファなどのGPUオブジェクトを参照するハンドルであるリソースと、描画呼び出しに必要なWebGLの状態をすべて記述するコマンドを提供します。開発者はコマンドの定義時に静的な値と動的な値を組み合わせられ、その記述からreglが最適化済みのJavaScriptコードを生成するため、生のWebGLで発生する呼び出しごとのオーバーヘッドの大部分を回避できます。
- regl は無料で使えますか?ライセンスは?
- regl は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- regl は今もメンテナンスされていますか?
- 活発にメンテナンス中。regl の最終コミットは 2026年10月17日 です。
- regl は何に使えますか?
- ブラウザーで動作する、GPUアクセラレーション対応のカスタムデータ可視化を構築する。 WebGLを直接制御する必要のある、シェーダーベースのグラフィックスやシミュレーションを作成する。 安定した低レベルのレンダリングAPIに依存する、長期間運用するWebアプリケーションを開発する。
- regl のインストール方法は?
- npmからプロジェクトにreglをインストールします: npm i -S regl reglをrequireしてインスタンスを作成し、regl.frameで描画します
- regl はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/regl-project/regl
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
WebGLとWebGPUを使ったブラウザー上の3Dシーンの作成・描画を容易にするJavaScript 3Dライブラリ。
three.jsのWebGLシーンにブルーム、SSAO、カラーグレーディングなどのフルスクリーン画像効果を連ねて適用するポストプロセッシングライブラリ。
Web、モバイル、Apple、Android、Rust、動画ツールで使える、コミュニティ作成の100種類以上のGLSL画像切り替えエフェクト集。
FFT波、砕波、泡、コースティクス、水中ビュー、浮遊物体に対応したthree.js(WebGL2)向けリアルタイム海洋レンダラー。
WebGL、WebGPU、WebXRに対応し、ブラウザー上で動作するJavaScript/TypeScript製の3Dゲーム・レンダリングエンジン。