2026年10月1日(現地時間)- Webブラウザ向けのオープンソース3Dエンジン「PlayCanvas Engine」が、バージョン2.23.0へとアップデートされました。
目次
主な新機能
今回はレンダラー内部の大規模な見直しが中心で、1フレームあたりのCPU処理時間がWebGPUで最大3.8倍、WebGL2で最大1.4倍高速化しています。あわせて、UIサンプルの全面刷新、Gaussian Splattingのストリーミング改善、CameraFrameのブルームしきい値、MiniStatsの再設計なども含まれています。
最大3.8倍高速化したレンダラー
レンダラーの深いレベルでの作り直しが行われました。公式は、1フレームあたりのCPU時間がWebGPUで最大3.8倍、WebGL2で最大1.4倍短縮されたとしています。
リリースノートを見ると、変更の多くは「描画のたびに繰り返していた準備処理を減らす」方向のものです。主な改善は次のとおりです。
- マテリアルのデータを専用バッファに集約: StandardMaterialの色や数値、テクスチャ変換などをマテリアル単位のユニフォームバッファに格納し、テクスチャもマテリアル専用のバインドグループで保持するようになりました。バインドは描画ごとではなく、マテリアルが切り替わったときだけ行われます。
- ライト情報をパスごとに1回だけ送信: ライトのユニフォームをビュー用のバッファに移し、レンダーパスごとに1回アップロードする方式に変更されています。
- WebGPUのパイプライン処理を省略: レンダーパイプラインを描画間で保持し、状態が変わったときだけ検索するようにしたほか、すでにバインド済みの頂点・インデックスバッファの再設定をスキップします。
- メッシュの行列を永続バッファに格納(WebGPU): メッシュインスタンスの行列を、ストレージバッファに保持し続けるようになりました。
- シャドウ処理の無駄を削減: 必要なカスケードだけをカリングする、描画されないシャドウパスではVSMのぼかしを省く、といった最適化が入っています。ディレクショナルシャドウは最大距離でフェードするようになりました。
なお、短縮されたのはCPU側の処理時間で、「最大」の数値です。オブジェクトやマテリアルの数が多く、CPU側の描画準備がボトルネックになっているシーンほど効果が出やすい種類の改善と見られます。GPU負荷が支配的なシーンでは、同じ比率でフレームレートが上がるとは限りません。
ゲームの一部として作り直されたUIサンプル
ユーザーインターフェースのサンプルが、すべて「実際のゲームの一部」として作り直されました。メニュー、設定画面、インベントリ、ドラッグ&ドロップ、リアルタイムの3Dポートレート、ワールド空間に置くパネルなどが含まれています。
個々の機能を示す最小限のサンプルではなく、ゲームで実際に必要になる画面の形で用意されているため、自分のプロジェクトのUIを組むときの出発点として参照しやすくなっています。




カメラに近い順に読み込むGaussian Splattingストリーミング
ストリーミング形式のGaussian Splattingシーンで、LODファイルをカメラに近いものから順に読み込むようになりました。見ている場所のディテールが先に表示されます。
LODの仕組みも見直され、距離のみで判定する方式になりました。表示するスプラット数は、目標値または上限値として予算を指定できます。
このほか、GPUソート方式のレンダラーでの確率的アルファ描画、GPUソート時のちらつきやNVIDIA GPUでのデプスピッキング時のハングの修正など、Gaussian Splatting関連の変更が多数含まれています。
CameraFrameのブルームしきい値
ポストエフェクトをまとめて扱うCameraFrameのブルームに、しきい値が追加されました。
これにより、一定以上の明るさを持つハイライトだけを光らせることができ、画面全体がぼんやり発光するのを抑えられます。

MiniStatsの再設計とPlayCanvas Inspector
パフォーマンス表示ツールのMiniStatsが再設計され、コンパクト表示とグループ表示、折りたためるセクション、GPUリソース数のリアルタイム表示が加わりました。
また、公式のサンプルブラウザが新しいデザインになり、シーンの中身を調べられる「PlayCanvas Inspector」が組み込まれています。


その他のアップデート
- jsdomなしでNode.js上でヘッドレス実行できるように
- StandardMaterialが8つすべてのUVセットに対応
- マルチレンダーターゲット向けに、アタッチメントごとのクリアカラーを設定可能に
- 頂点・インデックスバッファの部分アップロードに対応
- RigidBodyComponentに
gravityScaleを追加 - レイキャストでメッシュコライダーの裏面を除外する
hitBackFacesオプションを追加 - パーティクルシステムに
useFog/useTonemapを追加 - URLの拡張子にかかわらずオーディオアセットを読み込めるように
- ゲームパッドを毎フレーム、メモリ確保なしでポーリング
【既存ユーザー向け】削除・非推奨になった機能
内部構造の変更にともない、いくつかの機能が整理されています。アップデート前にリリースノートで確認しておくと安心です。
- シェーダーのダンプ/プリコンパイルのワークフローを削除
- 旧来のイミディエイトメッシュ描画を削除
- パーティクルの
noFog、シェーダーのuScreenSizeは非推奨に(それぞれuseFog、screen_sizeへ移行) supportsUniformBuffersをusesMeshBindGroupsに改名- 物理APIの公開範囲を整理
価格と動作環境
PlayCanvas Engineは、WebGL2とWebGPUに対応したWebグラフィックスエンジンです。MITライセンスのオープンソースとして公開されており、無料で利用できます。
| 価格 | 無料 |
|---|---|
| ライセンス | MIT(オープンソース) |
| グラフィックスAPI | WebGL2 / WebGPU |
| 導入方法 | npm install playcanvas |


