Repolode
regl-project

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. 1

    npmからプロジェクトにreglをインストールします

    npm i -S regl
  2. 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 の数値は毎日更新されます。

関連プロジェクト