
物理シミュレーションの革新:さらなるインタラクション
*David Ávilaの協力による。
当社の3DグラフィックスエンジンEvergineのユーティリティ開発を継続しています。本日は、私たちが非常に胸を躍らせているものをご紹介します。粒子の衝突から風洞内の静止した車に対する空気の影響まで、多様な動きのシミュレーションに役立つものです。
私たちが実現したこと
これまで、Webブラウザ上で物理エンジンのデモを探すと、機能が大幅に制限されているのが一般的でした。オブジェクトの数が少なく、インタラクションの方法も限られていました…。しかし、以下に示すように、私たちは高度な物理エンジン(Bullet Physics)の全機能をWebブラウザにもたらしました。これにより、より高度なリアルタイム物理シミュレーションの作成が可能になります。次の例では、ジョイントを使用したシミュレーションをご覧いただけます。ジョイントは、異なる物理オブジェクト同士(橋の様々なリンク)を相互接続し、シーン内の他のキューブと動的に反応します。
次期#Evergineリリースで#BulletPhysicをWebに対応させる作業を継続しています🙂
物理ジョイントを使用した小さなデモです。
しかし、どのように実現しているのでしょうか?
🧵スレッドはこちら👇#GameDev #dotnet #net6 #blazor pic.twitter.com/0U5Ye3EFC9— David Ávila (@davilovick) 2022年12月22日
このレベルの物理演算をWebブラウザで実現するのは容易ではありませんでした。次の動画では、さらに多くの要素があり、物理的な発射物が当たった際にそれらがどのように相互作用するかをご覧いただけます。
その結果、#Evergineがサポートする各プラットフォーム(次期リリースではWebも含みます😉)で同じ物理ライブラリを使用しています。
これにより、#WebXRサポートが実現したことで、ユーザーはWebアプリケーションのインタラクティブ性を高めることが可能になります。この技術スレッドを気に入っていただければ幸いです🙂 pic.twitter.com/6ExdmgoTH5
— David Ávila (@davilovick) 2022年12月22日
その用途
この革新は、さまざまな業界で活用できます。例えば、粒子衝突の表現は、研究所や大学、その他の教育機関でも利用されています。また、車両、航空機、橋梁の空気抵抗をテストする仮想風洞としても使用できます。さらに、今後はWebアプリケーション内で大気現象を再現する際に、雷を数学的に「発生させる」ことも可能になります。加えて、リアルな物理シミュレーションを実現することで、高度な機械学習環境の設計も可能になります。
WebXRも、物理シミュレーションのWebサポートを活用できます。例えば、WebXR対応のWebアプリケーションを携帯電話で起動し、画面上のAR(拡張現実)を通じて、現実世界に仮想的に配置された物理オブジェクトとインタラクションすることが可能になります。
実現方法
Evergineでは、メインの物理エンジンとしてBullet Physic(または単にBullet)というオープンソースのグラフィックスエンジンを使用しています。最近、私たちはBulletをWebブラウザ用のバイナリコード形式であるWASMにコンパイルすることに成功しました。
私たちが知る限り、すべてのグラフィックスエンジンは外部の物理エンジンを使用し、JavaScriptやS.jsにコンパイルされますが、WASMにコンパイルできたものはごくわずかです。これを実現できたのは、C++コードからWASMを生成するEmscriptenと、MicrosoftによるBlazorコンパイラの最新開発のおかげです。これにより、Bullet Physicsライブラリをリンクし、Evergineエンジンで使用できるようになりました。これらはすべて、Microsoftがアプリケーション開発用の別のフレームワークであるBlazor.NET6でリリースした最新の開発成果によって可能になりました。
要するに、この革新は、Webブラウザにおけるグラフィックスエンジンと3D画像生成の最前線に私たちを位置づけるものです。Blazorと.NET6の進歩によるEvergineの最新情報についてもっと知りたい場合は、喜んでサポートいたします。
