2024年10月24日

実験的なWebGPUネイティブサポート

Evergineの最新バージョンでは、WebGPUの実験的な統合を発表できることを嬉しく思います。この画期的なAPIは、前身であるWebGLよりも高いパフォーマンスと高度な機能を提供するように設計されています。

WebGPUとは?

WebGPUは、GPUへの低レベルアクセスを開発者に提供する最新のグラフィックスAPIであり、高度なレンダリング技術と計算能力を可能にします。

WebGLはOpenGL(現在はVulkanやMetalといったより効率的な代替手段に取って代わられたAPI)をベースにしていますが、WebGPUは従来のAPIの制限に対処し、グラフィックスプログラミングのためのより合理化された効率的なインターフェースを提供します。

WebGLに対するWebGPUの主な利点の一つは、コンピュートシェーダーのサポートです。この機能は、グラフィックスを多用するアプリケーションのパフォーマンスを向上させ、複雑な視覚効果やシミュレーションを作成する新たな可能性を開きます。WebGPUは最新のプログラミングパラダイムを念頭に設計されており、開発者はパフォーマンスが高く保守性の高いコードを記述できます。

WebGLに対するWebGPUの利点

WebGPUにはいくつかの顕著な利点があり、グラフィックスプログラミングにおける大きな前進となっています。

  • GPUへの低レベルアクセス:WebGPUはGPUリソースをより細かく制御できるため、より効率的なレンダリングと計算タスクが可能になります。
  • コンピュートシェーダーのサポート:WebGLとは異なり、WebGPUはコンピュートシェーダーをサポートし、GPU上で直接より複雑な計算とエフェクトを可能にします。
  • パフォーマンスの向上:より効率的なアーキテクチャにより、WebGPUは最新のハードウェア機能を活用でき、レンダリングと処理が高速化されます。

WebGPU Nativeとは?

WebGPU Nativeは、デスクトップおよびモバイルプラットフォーム向けアプリケーションを構築するために設計されたWebGPU APIのバージョンです。この統合は、Evergineのグラフィックス機能を強化するための重要なステップです。デスクトップのサポートから開始することで、将来的なWebへの拡張の基盤を築いています。

この統合は、将来的にWebへのサポートを拡大するための第一歩です。デスクトップで開発することで、より直接的なデバッグ環境と、管理された設定でWebGPUの機能を探求する能力を開発者に提供します。

Evergineとの統合

WebGPU.NET、WebGPU向けC#バインディング

WebGPU.NETは、WebGPUをEvergineに統合するために特別に開発された当社のC#バインディングです。このバインディングは公開されており、開発者はWebGPUのパワーを容易に活用できます。

Nagaを用いたHLSLからWGSLへのシェーダー変換

シェーダー開発の一貫性を維持するため、Nagaを使用してHLSLからWGSLへの変換レイヤーを実装しています。このライブラリはSPIR-Vを入力として利用し、シェーダーをWGSL(WebGPU用に特別に設計された新しい言語)にコンパイルします。このアプローチにより、HLSLがEvergine内でのシェーダー開発の主要言語であり続け、変換はユーザーに対して透過的に行われます。

現在の実験段階

現段階では、当社の統合はまだ実験モードです。しかし、標準メッシュとマテリアルレンダリング、スキニング、モーフィング、基本的なコンピュートタスクなどの必須機能をすでにサポートしています。これらの機能により、開発者は最新のGPUの能力を最大限に活用する、動的で視覚的に魅力的なアプリケーションを作成できます。

WebGPU実験テンプレートの利用開始

実験的なWebGPU統合を開始するには、Evergineで新しいバニラプロジェクトを作成し、通常どおりWebGPUプロファイルを追加します。

結論:WebGPU統合の未来

今後は、WASMとEmscriptenを使用してWebGPUをWeb環境に完全に統合し、Evergineアプリケーションのリーチを拡大することを目指しています。将来の開発には、コンピュートシェーダーのより良い統合、ポストプロセッシング、パーティクルシステム、全体的な安定性の向上など、既存のエンジン機能へのさらなるサポートが含まれます。

 

当社は革新と提供内容の強化を続ける中で、開発者の皆様がこのエキサイティングな新しい統合を探求し、その経験についてフィードバックを提供されることをお待ちしています。

中期的な方針として、ブラウザや市場においてWebGPUの標準化が進むのに伴い、EvergineのOpenGL/WebGL統合を廃止する予定です。

David avila
著者
David Ávila
Plain Concepts Research