ads

オープンソースのウェブグラフィックスエンジン Babylon.js 8.0 がリリース!IBLシャドウ、新しい軽量ビューア、ノードレンダーグラフなどなど

CGソフト

2025年3月27日(現地時間)- Microsoft は、オープンソースでウェブベースのゲームおよびレンダリングエンジン Babylon.js 8.0 のリリースを発表しました。

新機能ハイライト

Babylon.js 8.0 には、より魅力的でインタラクティブなウェブ体験をこれまで以上に速く作成することを支援することを目的とした、新機能、最適化、パフォーマンスの改善が数多く盛り込まれています。

Introducing Babylon.js 8.0

Babylon.jsは、Microsoftが開発を主導するオープンソースプロジェクトですが、今回の新機能の複数を Adobeの開発者が貢献しているようです。

Babylon.js 8.0の新機能ハイライトは以下の通りです。

IBL シャドウ

イメージベースドライティング(IBL)は、ソース画像に基づいて環境照明を近似するコンピュータグラフィックスの照明技術です。コンピュータで生成されたエフェクトを現実の写真とブレンドする方法として、視覚効果の世界で生まれ、今日では広く普及しています。Babylon.js でも、8年以上前にIBLのサポートが導入されました。

今回のアップデートでは、Adobeの開発者の貢献によりシーン全体の環境の明るさと影の両方を、一枚の画像から推測して表現できるようになりました。

8.0 IBL Shadows

ライティング機能の強化

他にも以下のようなライティング機能の強化が行われています。

エリアライト

ユーザーから要望が多かった機能であるエリアライトが導入され、主に四角形の形状を指定して光を放射するライトを作成できるようになりました。

また、今のところこのライトは影を落としませんが、将来的には落とすようになる予定とのことです。

8.0 Area Lights

環境光の改善

Babylon.js 8.0 では、Adobe の開発者の貢献により、環境照明がよりリアルになり、リアルタイムレイトレーシングの結果にさらに近づきました。

8.0 Environment Improvements

IES ライトのサポート

IES ライティングは、照明器具から放射される光の形状を記述する技術です。Babylon.js 8.0 では IES ファイルのサポートが追加されました。

8.0 IES Light Support

ノードレンダーグラフ (アルファ

Babylon.js 8.0 の目玉新機能の 1 つは、「ノードレンダーグラフ(Node Render Graph)」と呼ばれるものです。

これまで、Babylonの特定のレンダリングパイプラインはブラックボックスで、Babylon に何をレンダリングするかを指示すると、Babylon がそれを実行してくれました。レンダリング完了後に結果を操作することはできましたが、レンダリングプロセス自体は不透明でした。

Babylon.js 8.0 では、レンダリングパイプライン全体を完全に制御できるようになりました。つまり、フレームがGPU上でレンダリングされるプロセスのあらゆる部分を完全にカスタマイズ、コントロールできるようになりました。

それに加えて、複雑なレンダリングプロセスコードを書かずに、独自のレンダリングパイプラインをカスタマイズできる、新しいノードグラフツールも利用できるようになりました。

8.0 Render Graph

ノードレンダーグラフはテストのためにアルファ版として提供されており、変更される可能性があるため、まだ本番環境での使用は推奨されていませんのでご注意ください。

新しい軽量ビューア

Adobe からの貢献もあり、完全に新しい Babylon.js Lightweight Viewer が追加されました。

この新しいビューアは、フルエンジンの持つ美しいレンダリングとパワフルな性能を受け継ぎながら、ファイルサイズを小さく抑え、読み込むモデルに必要な機能(例えば、オーディオやアニメーション)だけを必要な時にダウンロードして使用するように設計されています。数行の HTML を追加するだけで、あらゆるウェブページに追加でき、完全に拡張可能です。

また、この新しい軽量ビューアには非常に使いやすいコンフィギュレーターが搭載されています。これは、希望通りの正確な仕様に合わせてカスタマイズし、ウェブサイトで同じように見えるように設定するためのシンプルな .html プロパティを提供するシンプルなツールとなっています。

8.0 Lightweight Viewer

WGSLコアエンジンシェーダー

Babylon.js は初期の頃から、新しいウェブグラフィックス技術である WebGPU をサポートしていました。WebGPU は WGSL という独自の新しいシェーディング言語を使用しますが、Babylon.js のコアエンジンシェーダーは GLSL(WebGL シェーディング言語)で記述されていました。

これまで、Babylon で WebGPU を使用したい人は、利用可能な変換ライブラリを使用して Babylon シェーダーを WebGPU が使用できるものに変換していました。しかし、この方法には変換ライブラリが 3MB を超え、ユーザーが標準的な Babylon.js プロジェクトのダウンロードサイズの 2 倍になるという欠点があります。

Babylon 8.0 では、この問題が解消され、Babylon.js のすべてのコアエンジンシェーダーが、GLSL と WGSL の両方で利用できるようになりました。

変換レイヤーなしで WebGPU を直接サポートしたことにより、WebGPU をターゲットにする場合、プロジェクトのサイズを以前よりも実質的に 2 倍小さくすることができるとのことです。

8.0 WGSL Core Engine Shaders

右上から WebGL2 と WebGPU を切り替えてみてください

NME -> WGSL サポート

Babylon.js 8.0 では、コアエンジンシェーダーに加えて、ノードマテリアルエディター(Node Material Editor)を使用してカスタムの WGSL シェーダーを作成する機能が新たに利用できるようになりました。

8.0 NME WGSL Shaders

オーディオエンジンの全面的な刷新

Babylon.js 8.0 では、長らく見直しが求められていたオーディオエンジンが全面的に刷新され、まったく新しいオーディオエンジンが搭載されました。

この新しいエンジンは、Web Audio の全機能を活用し、モダンな設計と使いやすさを追求しており、経験レベルに関わらず、あらゆるユーザーが高度なオーディオ機能を活用できます。特に、オーディオとビジュアルの融合による魅力的な表現に関心のある開発者にとって最適なツールとなっています。

8.0 Audio

ガウススプラットのアップデート

Babylon.js 8.0 では、既存のガウススプラットのサポートをさらに強化し、SPZ および圧縮 PLY 形式のサポート、球面調和関数の追加、そしてメモリフットプリントと CPU/GPU 使用率に関するランタイム最適化といった、新しいアップデートが追加されました。

8.0 Gaussian Splat Updates

SPZ形式は、Niantic Labs がガウススプラットのJPGを目指してオープンソース化したフォーマットです。SPZを使用することでファイルサイズを大幅に節約できます。

Havok キャラクターコントローラー

Babylon.js 8.0 では、Havok チームの協力により、Havokのフル機能のキャラクターコントローラーが Babylon.js に導入されました。

これにより、最先端のキャラクターコントローラーを活用して、ほんの数行のコードで独自キャラクターが登場するゲームを作り始めることができるようになりました。

8.0 Havok Character Controller

スマートフィルター

Babylon.js 8.0 では、スマートフィルターとスマートフィルターエディターの導入により、豊富なノードベースの作成ツールライブラリがさらに拡張されました。

これらの新しいツールにより、ビデオフィルター、テクスチャ処理、ポストプロセスなど、様々な2D視覚効果の作成が可能です。

他の GPU ベースツールと同様に内部ではシェーダーを利用しており、ウェブエクスペリエンスにおける高度な2D視覚効果の作成に特化しています。

8.0 Smart Filters

ノードジオメトリエディターのアップデート

昨年のアップデートでは、Babylon.js にノードジオメトリエディターを通じて、コードを記述することなくプロシージャルにジオメトリを生成する機能が導入されました。

Babylon.js 8.0 では、ラティスデフォーマー (Lattice Deformer)、ポイントリスト (Point List)、クリーンジオメトリ (Clean Geometry)、インターセプター (Interceptor)、アグリゲーター (Aggregator)、そして細分割機能 (Subdivision) など、多数の新機能を含む大幅なアップデートにより、ノードジオメトリが大きく進化しました。

8.0 NGE Improvements

他にも LatticeInterceptorSubdivisionAggregator の例が公開されています。

ノードマテリアルエディター デバッグノード

Babylon のノードマテリアルエディターは、コードを記述することなく複雑なビジュアルシェーダーを容易に作成できるツールです。アーティストにも使いやすいこのツールは、GPU シェーダー構築の複雑さと、アーティストの思考プロセスや作業方法とのギャップを埋めることを目的としています。

Babylon.js 8.0 では、ユーザーインターフェースの改善に加え、新しい「ビジュアルデバッグノード (Visual Debug Node)」が導入されました。このノードを使用することで、ノードツリー内の任意の位置でビジュアル出力を確認できます。

これにより、出力ノードを移動したり、接続先を変更したりする手間を省くことができ、計算処理全体を通してシェーダーがどのように変化するかを視覚的に把握できます。

8.0 NME Debug Node

ブーリアンの改善

人気のある Manifold.js ライブラリがサポートされ、より一貫性のある幾何学的ブーリアンで新しい形状を作成できるようになりました。

Manifold.jsでは、より複雑な形状に対して、より安定した結果を高速に結果を得ることができます。

8.0 CSG2

フォーマットサポートの強化

8.0 gltf Diffuse Transmission

glTF サポートの更新 — KHR_materials_diffuse_transmission

glTF フォーマットの拡張機能への長年の継続的なサポートの一環として、新たに KHR_materials_diffuse_transmission がサポートされました。

8.0 glTF Serializer

glTF エクスポーターの改善

最新の拡張機能と機能をサポートにより、既存の glTF エクスポート機能(シリアライザー)に多くの新しい改善が加えられました。

※デモで glTF としてエクスポートして、お気に入りの 3D ツールで開いてみてください


8.0 glTF Loader Options

glTF ローダーのオプションの追加

.glTF オブジェクトのロードに関する新しいオプションが追加され、特定の LOD (詳細レベル) でのロードなど、事前に定義した仕様に基づいてプログラムからアセットをロードできるようになりました

8.0 usdz Support

USDZ エクスポート

.usdz ファイルをエクスポートできるようになり、これまで以上に簡単に iOS デバイス向けの AR エクスペリエンスを構築可能となりました。


8.0 EXR Support

EXR テクスチャのサポート

EXR ファイルのサポートが追加されました。この高機能な画像フォーマットにより、負のピクセル値を利用した複雑な視覚化データをテクスチャとして保存したり、Babylon.js で読み込むことができるようになりました。

パフォーマンスの向上

GPU メッシュピッキング

シーン内のメッシュのピッキング処理は、従来、CPU がすべてのジオメトリを解析し、ピッキング位置から照射されたレイと最も近い三角形を特定する必要があるため、パフォーマンス上の負荷が高い処理となる場合がありました。

Babylon.js 8.0 では、GPU を活用して直接メッシュをピッキングする機能が導入されました。これにより、複雑なシーンにおいてピッキング処理を GPU にオフロードすることで、パフォーマンスの向上が期待できます。

8.0 GPU Mesh Picking

GPU バウンディングボックス

バウンディングボックスの計算は、特に多数の頂点を持つアニメーションメッシュが存在する場合など、CPU に負荷がかかることがあります。

Babylon.js 8.0 では、バウンディングボックスの計算を GPU で行う機能が追加され、CPU の処理負荷を軽減し、シーン全体のパフォーマンスを向上させることができるようになりました。

8.0 GPU Bounding Boxes

WebXR デプスセンシング

WebXR の新機能である「デプスセンシング(Depth Sensing)」のサポートが追加されました。

この機能を利用すると、デバイスから取得した深度情報に基づいて、コンピュータで生成された画像を現実世界の映像に重ね合わせることで、よりリアルな複合現実(AR)体験を開発できます。

8.0 WebXR Depth Sensing

最新の Android デバイスまたは Oculus Quest 3

今後の展望

以上、Babylon.js 8.0の新機能でした。かなり盛沢山でプラットフォーム史上最大規模のリリースとのことですが、さらに、現在も活発に開発中の機能があります。今後追加される予定の機能は以下の通りです。

  • glTF インタラクティビティサポート: glTF ファイル形式の進化に伴い、インタラクティビティに関する新しいワークフローが注目されています。Babylon.js チームは、アセットの動作をアセットファイル自体に含めることを可能にする、この新しい拡張機能のサポートに積極的に取り組んでいます。これにより、インタラクティビティが特定のオーサリングツールやエンジンに縛られなくなります。
  • OpenPBR サポート:OpenPBR は、物理ベースレンダリングされたマテリアルのレンダリング時の外観に関するオープンスタンダードです。Babylon.js では、この OpenPBR をサポート予定です。
  • すべての人にツールを Babylon.js プラットフォームを利用するユーザーは、ソフトウェアエンジニアからコンピュータグラフィックスを始めたばかりの学生やアーティストまで、様々なバックグラウンドと経験レベルを持っています。Babylon.js を活用したいすべての人が、そのための適切なツールとワークフローを利用できるよう、チームは尽力しており、この件に関して、今年後半に更なる情報が提供される予定とのことです。

利用について

Babylon.js は主にウェブブラウザ上で動作するため、特別なシステム要件はほとんどありません。対応ブラウザと WebGL (1.0, 2.0) または WebGPU をサポートしている環境であれば利用可能です。

詳細はこちらから

Babylon.js は、Apache License 2.0 のオープンソースライセンスの下で提供されており、個人利用、商用利用問わず、無償で自由に使用、改変、配布することができます。

詳細は、Babylon.js の公式サイトドキュメント をご確認ください。


Announcing Babylon.js 8.0

コメント

Translate »
タイトルとURLをコピーしました