HUOXIU

Orillusion Engineが正式にオープンソース化!AIGC時代のWebGPU向け軽量3Dレンダリングエンジン!

オープンソース・エコシステムの発展はコミュニティに根ざしています。開発者はコミュニティ内で共有し、共創し、共に勝利を掴むことで、無限の創造性を刺激します。これこそがオープンソースの最大の魅力です。

私たちがオープンソースを選んだのは、「一人でやれば早いが、みんなでやれば遠い」という強い信念に基づいています。

1
オリリュージョンエンジン
6年間の開発期間を経て、WebGPUは2023年4月6日にChromeチームによってようやくリリースされました。5月2日には、Chromeバージョン113でWebGPUがデフォルトで有効化されました。 この時点から、Web上でAAAレベルのレンダリング3Dアプリケーションが期待できます。
Orillusionチームは3年前からWebGPU開発に注力してきました。2年以上にわたる研究開発、フレームワークの複数回のリファクタリング、そしてパフォーマンスの最適化を経て、 本日、Olilusionエンジンがオープンソースとして正式にリリースされました。
私たちは、ブラウザでデスクトップレベルのレンダリング効果を実現し、超大規模で複雑なシーンの 3D プレゼンテーションをサポートし、3D シーンの爆発的な成長の時代に対応する基盤となるエンジンの基本ツールを提供することに注力しています。

Githubアドレス:

https://github.com/Orillusion/orillusion

WebGPU は、Web ブラウザーに基づく新しい最新のグラフィック API であり、Web ページが GPU を直接呼び出してコンピューティング タスクを実行し、複雑な画像を描画できるようになります。
Orillusionは、 WebGPUグラフィックスAPIをベースとしたWeb3Dレンダリングエンジンで、PCベースのグラフィックスAPIに匹敵するレンダリング性能を備えています。Orillusionエンジンは、柔軟なGPUバッファ、強力なシェーダ(WebGPU Shader/WGSL)、そして待望のコンピュートシェーダコアなど、GPU対応の様々な機能を活用し、ラスタライズ以外の段階でGPUの並列処理能力を最大限に活用します。

ECSコンポーネントシステム

Orillusionは、 エンジン全体の設計にECS(Entity-Components-System)コンポーネントベースアーキテクチャを採用しています。これにより、継承チェーンの複雑さや、継承パターンに固有の機能の絡み合いが排除されます。分離、カプセル化、モジュール設計により、開発者はより柔軟に機能を組み合わせたり拡張したりすることができます。 エンティティをコンポーネントにアタッチすると、複雑な継承関係を必要とせずに、そのコンポーネントのすべての機能を取得できます。システムで定義されたライフサイクルと組み合わせることで、開発者はより柔軟な呼び出しを実装できます。

コンポーネントシステム

組み込みコンポーネント

基本性能

a. 連続メモリGPUデータ送信メカニズム

従来の3Dエンジンでは、レンダリングパイプラインにおけるCPUとGPU間の待機時間が、パフォーマンス低下の主な原因の一つとなっています。この待機時間の一部は、各フレームのレンダリング前、CPU自身のデータ準備中、およびCPUからGPUへのデータ転送プロセス中に発生します。また、GPUの状態切り替えが過度に行われることで、CPUのアイドル待機時間が長くなることも待機時間の要因となります。Olilusionエンジンは、CPUからGPUへのデータ書き込み頻度とGPUレンダリング状態切り替え頻度を低減することで、パフォーマンスを向上させます。
パフォーマンスの向上は、GPUキャッシュ(GPUBuffer)の活用に大きく依存します。 データ量が多いシナリオでは、StorageGPUBufferを使用してByteStreamにデータを書き込んだ後、GPUBufferに一度コミットすることができます。データ量が少なく、頻繁にインタラクションが発生するシナリオでは、データを小さなメモリブロック(UniformGPUBuffer)に書き込んだ後、GPUBufferに一度コミットする方が一般的です。StorageGPUBufferのデータは読み取り、書き込み、コピーが可能ですが、UniformGPUBufferのデータは書き込みのみをサポートしていることに注意してください。

GPUバッファ

b. グローバル連続メモリマトリックスメカニズム

Orillusionエンジンは、 パフォーマンス向上のため、 グローバル連続メモリマトリックス(StorageGPUBuffer + BindGroup)も提供しています。このマトリックスは、レンダリングで使用されるすべてのマトリックスを統合し、レンダリング前に均一に送信します。これにより、 レンダリング結果に影響を与えることなく、データ送信頻度、CPUとGPUへのデータ書き込み時間、GPUの状態切り替え頻度が削減され、レンダリングパフォーマンスが大幅に向上します。

グローバル連続マトリックスパフォーマンス最適化

レンダリング

a. クラスター照明の除去

シーンのレンダリングは豊富なライティングに依存するため、エンジンはクラスターライティングを使用して光量の制限の問題を解決、レンダリングの遅延によって発生する多くの欠点を回避します。

不十分なライティングによる最も一般的な欠点の一つは、従来のフォワードレンダリングにおけるレジスタとパフォーマンスの限界です。その結果、ピクセルごとに計算できる光源の数が非常に少なくなり、GPUパフォーマンスが大幅に浪費されます。このエンジンは、 Cluster Lightingを用いて現在の画像ブロック内のピクセルにおける光源の使用状況を事前に計算し、各ピクセルブロックへの光源の影響を正確に計算することで、各ピクセルブロックに計算リソースを合理的に割り当てることで、パフォーマンスを向上させます。さらに、HDR LightingとLighting IES機能を組み合わせることで、より豊かで鮮やかな視覚効果をレンダリングできます。

同じ画面に128以上のダイナミック光源

b. PBRレンダリング

Orillusion エンジンは物理ベースレンダリング (PBR) を提供し、金属、皮革、ゴムなど、さまざまな物理的特性を持つマテリアルのレンダリングをサポートし、オブジェクトに豊富なディテールと強力なテクスチャ表現を与えます。

左側:金属レンダリング、右側:革レンダリング

c. 後処理

ポストプロセスエフェクトには、グロー、ブラー、被写界深度といった一般的なエフェクトをはじめ、様々な種類があります。使いやすさを考慮して、Orillusionは現在、ブルーム、GTAO、SSRといったポストプロセスエフェクトを提供しています。

d.ブルーム

ブルームとは、ハイライトされたオブジェクトに生じる光の効果です。適切に使用すると、平坦なシーンに映画のような視覚効果を与えることができます。エンジンの物理ライティングでは、オブジェクトの表面の明るさ(反射、屈折、自己発光を含む)がユーザー定義のしきい値を超えると、ライトオーバーフロー効果が発生します。

左側:ハイダイナミックレンジ照明下での光のオーバーフロー。右側:窓からの光のオーバーフロー。

e.GTAO

アンビエントオクルージョン(AO)は、画像全体にリアルに近い影の効果を表現するための重要な手段です。OlilusionのGTAO(Ground-Truth Ambient Occlusion)は、一定半径内のオクルージョン関係を検出し、マスクされた影の表示を実際のシーンにより近づけることができます。

SSAO/GTAOの比較

f.SSR

日常生活において、反射は至る所で見られます。そして、反射のリアルさはレンダリング結果の品質を左右する重要な要素です。Olilusionは、スクリーン空間反射(SSR)機能を提供することでこの問題に対処し、リアルで自然な反射効果を実現します。

左側: 水面の SSR 反射、右側: シーン内の反射。

g. パーティクルシステム

現実世界の多くの現象やコンテンツは、炎、煙、霧、雨、雪など、メッシュモデルでは表現が難しいため、これらのシーンは通常、パーティクルシステムを用いて実装されます。Olilusionエンジンでは、コンピュートシェーダーの強力な演算能力により、高いパフォーマンスを確保しながら、精巧なパーティクルエフェクトを追求することが可能です。シーン探索とGPUパーティクルとのリアルタイムインタラクションを組み合わせることで、視覚効果の上限と品質を向上させることも可能です。

パーティクルエミッター

アニメーションモデルに基づくパーティクルエフェクト

計算シェーダー

WebGPUの最も注目すべき機能の一つは計算能力であり、次世代のグラフィックスAPI標準における大きな飛躍を表しています。Orillusionエンジンは、ネイティブのコンピュートシェーダーを計算カーネルとしてカプセル化することで、エンジン固有の様々なタイプのGPUバッファの接続を可能にし、GPUの計算能力を最大限に活用します。エンジンはコンピュートシェーダーを用いてGPU計算カーネルを呼び出し、計算タスクや画像処理タスクを各カーネルに分散させて並列計算を行い、非常に短時間で結果を返します。

GPUコンピューティングカーネル

Compute Shader を使用すると、レンダリングされるモデル メッシュと頂点の属性バッファーをリアルタイムで変更して、物理シミュレーション機能を実現できます。

流体シミュレーション

ソフトボディシミュレーション


前述のようにGPUキャッシュ(GPUBuffer)を使用して基本パフォーマンスを向上させることに加え、エンジンは異なるユーザーシナリオ向けに3つのパフォーマンス最適化スキームを比較しました。以下の比較では、55,000個のボックスのレンダリングを例に、異なるレンダリングスキームのパフォーマンス消費量を比較しています。

Orillusionエンジンは、構造化され効率的なECSコンポーネントシステムをベースとしており、WebGPUのオープンな機能、特に強力なGPUキャッシュとコンピューティングカーネルを活用しています。従来のWebエンジンと比較して、パフォーマンス、視覚効果、そして使いやすさにおいて飛躍的な進歩を遂げています。

  • パフォーマンス: 複数の GPU キャッシュとグローバル連続メモリ メカニズムの使用によるメリット。
  • 効果: 合理的な照明システム、豊富な後処理効果、パーティクル システムなどの柔軟な連携により、3D シーンをよりリアルに表現し、複雑なビジネスの表示ニーズを効果的に満たすことができます。
  • 使いやすさ: ECS コンポーネント システムが改善されただけでなく、多くのカプセル化された API によってより便利な使用方法ももたらされ、開発者の学習の難易度とメンテナンス コストが軽減されます。


2
オープンソースエコシステムの構築

オープンソースは無料であることと同義ではなく、単にコードを公開するだけでもありません。私たちは、オープンソースを、物理的な境界を越え、効率的で機敏なコミュニケーションとコラボレーションを通じて技術革新を可能にする、オープンで共有された協働的なイノベーションモデルと捉えています。技術者は車輪の再発明を避け、創造的な仕事に集中できるようになります。さらに、ソフトウェア業界のサプライチェーン全体の観点から見ると、オープンソースは将来の情報技術の主戦場となっています。

最近、ChatGPT関連のコンテンツが溢れかえっています。OpenAIは最新の学習モデルをオープンソース化していないため、技術的およびアルゴリズム的な観点から、中国企業が同様の製品を開発するには少なくとも1~2年かかるでしょう。しかし、大規模モデルの学習は単なるアルゴリズムの問​​題ではなく、計算能力とデータサポートも必要となるため、中国では大規模モデルの開発と反復作業にさらに長い時間がかかる可能性があります。

  • コンピューティングパワーとはGPUチップを指します。 大規模モデルの学習には、より効率的で高度なチッププロセスが必要です。技術的な障壁により、現在、14nm未満のプロセスの国内生産においてブレークスルーを達成することは困難です。

  • ここで言うデータとは、価値の高い高品質なデータを指します。 多くの国内企業はプラットフォームコンテンツを私有財産とみなし、自社アプリ内に保存し、一般公開を制限しています。一方、海外では主要なインターネットコンテンツの多くがウェブ版で提供されており、検索エンジンによるデータ分析が容易になっています。高品質なデータのラベリングを促進するには、膨大な量の生データが不可欠です。

したがって、私たちはオープン Web エコシステムの将来が非常に明るいとさらに確信しています。

Orillusionは創業以来、オープンソースを揺るぎなく支持し、オープン性、包括性、そして協働的創造をその中核原則としてきました。オープンソースは、コミュニティが技術をより深く理解し、その影響力を活用して技術を広め、より多くの開発者の参加を呼びかけることに役立ちます。技術コミュニティからの積極的かつ迅速なフィードバックは、様々なユーザーシナリオからより多くのインプットを集めることにも役立ち、技術の反復とアップデートを促進します。私たちは、どんなに優れたソフトウェアであっても、堅牢なエコシステムと開発者やパートナーの協力的な努力なしには、大幅な成長と長期的な成功を達成することは難しいと確信しています。オープンソース製品にとって、真に他製品との差別化要因となるのは、コミュニティの文化と協働的な創造性です。コミュニティ内で共有、共創し、Win-Winの結果を達成することで、無限の創造性が解き放たれます。これこそがオープンソースの最大の魅力です。

中国ではオープンソース開発の開始が比較的遅れており、国内のオープンソース・インフラ・ソフトウェアの開発にはより多くの時間が必要です。技術者、オープンソース企業、投資家など、参加を希望するすべての人は、より一層の忍耐が必要です。

画像出典: O3DF

現在、OlilusionエンジンはLinux FoundationのO3DFに認定されており、まもなくLinux Open Source Foundationファミリーに正式に加わる予定です。今後、国際的なオープンソース財団の力を活用し、独自のオープンソースプロジェクトを成長・強化し、中国のオープンソースエコシステムに貢献していきたいと考えています。


3
AI時代の機会と課題

ChatGPTが2022年11月にリリースされて以来、私たちはほぼ毎日、変化のスピードに驚嘆し、AIに対する強い不安さえ感じています。最先端技術への対応を1日でも遅らせると、最新のAI技術やアプリケーションを見逃してしまうのではないかと懸念しているのです。現在、 全く新しいAI時代が展開期に入ったことは間違いありません。今後、次なるAIアプリケーションが数多く登場することは間違いありません。

まず、ChatGPTの歴史を簡単に振り返ってみましょう。

全体として、OpenAI は最初からデコーダーとして Transformer を選択し、事前トレーニングのターゲット関数として標準言語モデルを継続的に使用したため、ChatGPT 誕生への道が開かれました。

2018年に登場したGPT1は、NLPタスクにおける事前学習+微調整パラダイムの先駆者となりました。それから1年も経たないうちに、GPT2はGPT1を基盤として、より大規模なデータセットを用いてより大規模なモデルを学習し、モデルの一般化能力を実証し、ゼロショット学習の可能性を解き放ちました。2020年、GPT3は究極のゼロショット性能の達成から人間の学習手法への考慮へと焦点を移しました。少数ショット学習(コンテキスト内学習)とスパースアテンションモデルアーキテクチャにより、GPT2と比較して学習データ(45TB)とモデル(1750億パラメータ)を100倍に増加させ、驚くべき結果を達成し、人間がニュース記事を判別することを困難にしました。もちろん、これは人間の好みに合わないモデルの「バイアス」にもつながりました。

2021年から2022年にかけて、GPT3をベースとしたInstructGPTは、教師ありファインチューニング(SFT)と人間のフィードバックに基づく強化学習(RLHF)を用いることでモデルの「バイアス」問題に対処し、モデルの回答と人間の意図の整合性を実現しました。一方、OpenAIはコードを学習データとして用い、異なる経路でGPT3の中間バージョンを学習させ、Codexモデルの第一世代をリリースしました。

2022 年 4 月から 7 月にかけて、InstructGPT とその後の第 1 世代 Codex モデルの反復に基づいて、さらなるコード トレーニングと微調整を経て、最初の GPT3.5 ファミリ モデルである code-davinci-002 (Codex とも呼ばれます) が作成されました。

2022年5月〜6月にかけて、code-davinci-002をベースに教師あり命令チューニングを行いtext-davinci-002を取得しました。

2022年11月、RLHFを通じてtext-davinci-002をベースにした2つの異なるモデルバリアント、text-davinci-003とChatGPTが取得されました。前者は、text-davinci-002で犠牲になったコンテキスト学習機能の一部を復元し、ゼロショット機能を向上させました。一方、ChatGPTは、対話履歴をモデル化する機能と引き換えに、コンテキスト学習機能を犠牲にしました。

2023年3月にはGPT4が導入されました。画像コンテンツを理解できるようになり、強力な「マルチモーダル」特性を発揮します。また、記憶能力も強化され、トークン数はGPT3.5の4Kから32Kに増加しました。さらに、言語理解能力と推論能力も強化され、各種試験における成績も大幅に向上しました。

GPT開発の歴史

オリリュージョンチームは2021年からGPT3の技術と機能に注目していました。当時、大規模モデルはすでに優れたコラボレーションと概念理解能力を示していましたが、マルチターン対話はまだ実現していませんでした。ChatGPTはこのギャップを埋め、他のすべての面で大幅に改善しました。 この革新的な製品は私たちに大きなチャンスを示しました。エンジン製品にとって、大規模言語モデルの機能を組み合わせてエンジンが人間の意図を理解し、「よりスマート」になることは、避けられない挑戦的な道です。ChatGPTの登場により、私たちは半年以上にわたり、思考、試行錯誤、エンジニアリングの最適化に真剣に取り組み、大規模モデルと3Dエンジンの架け橋を見つけることを目指してきました。

驚異的なアプリケーションChatGPTの登場により、LLMのマルチモーダル機能はテキストと画像の生成において驚異的な効果を発揮し、生産性を大幅に向上させ、人々のライフスタイルさえも変革しました。LLMが次にカバーするシナリオは、間違いなく3Dコンテンツ生成となるでしょう。さらに、これは3Dコンテンツ制作への参入障壁を下げる究極のソリューションです。AIGCの3D業界におけるブレークスルーは、生成的アプローチと呼び出し的アプローチという2つの形で現れていると私たちは考えています。

生成的

例えば、ChatGPT、Jasper、Imagen、Dall·E 2、Stable Diffusion、Midjourney などは、テキストや画像のシナリオで、すべてゼロからコンテンツを直接作成します。3D アセットの場合、最終的には AI が同様にゼロからの直接作成を実現できるようになります。現在の 3D コンテンツ制作ワークフローの互換性の観点から、3D アセットをレンダリング パイプラインに適用する必要があることを考慮すると、3D アセットの表現はメッシュが最も一般的なもので、NeRF、ボクセル、ポイント クラウド、SDF などもあります。 現在、AI モデルは 3D データセットに基づいて直接トレーニングされ、3D メッシュ アセット (GET3D) の作成を実現しており、2D 画像情報に基づいて 3D アセットのさまざまな表現 (Point·E、Magic3D、Dreamfusion、Phorhum) を生成することができます。3D アセットの生成はまだ比較的初期段階にあり、成熟した商用利用に至るまでには少なくとも 6 か月から 1 年、あるいはそれ以上かかる可能性がありますが、これらのさまざまな表現は最終的に AI によってゼロからの直接作成を実現するでしょう。

発信者

3Dアプリケーションにおいて、 LLMは様々なDCCソフトウェア(チュートリアル、サンプル、コードなどを通じて)を学習し、これらの基本ソフトウェアプログラムを直接制御し、「呼び出す」ことで3Dコンテンツを作成できるでしょうか?例えば、将来的にはLLMにUnityエンジンや3ds Maxツールの使い方を教え、プロンプトコマンドを入力するだけで必要な3Dシーンやモデルを生成できるようになるでしょうか?LLMはテキストコンテンツの理解に優れており、多くの成熟したツールは複雑で面倒な専門タスクを処理できます。将来的には、これらのツール操作をAIに委任し、手動による介入をなくすことができるでしょうか?これは、私たちの脳が思考するだけで、 手足を操作してタスクを完了するのと似ています。この呼び出しベースのロジックは、ChatGPTの現在のプラグインメカニズムに似ています。飛行機のチケットを購入したい場合、ChatGPTにその意図を伝えるだけで、プラグインは成熟したチケット購入サービスを呼び出します。

エンジン製品におけるAIGCの現状

これら 2 つのアプローチのうち、テキストや画像の AIGC と同様に、生成的アプローチは不可欠であると考えており、現在、多くの研究がこの分野に集中しています。この方法を使用すると、独立した 3D アセットを迅速に取得できるため、3D モデリングの効率が向上し、面倒な専門的な 3D モデリング段階を省略することさえできます。ただし、3D シーンの適用には、テキスト、画像、ビデオの作成よりもはるかに複雑なワークフローが含まれ、3D アセットの生成はこの複雑なワークフローの 1 つのステップにすぎません。たとえば、3D アプリケーションでは、プランナーが設計を提供し、次にコンセプト アート、モデリング、さらに 3D/ゲーム エンジンでより複雑なシーンを構築し、インタラクション ロジックを記述し、最後にアプリケーションをリリースする必要があります。生成的アプローチによって 3D アセットをゼロから作成できると仮定すると、AI は 3D アプリケーションのシナリオにおいて従来のワークフローをどのように加速できるでしょうか。 3D アプリケーション シナリオでフルチェーンの AI 変革を真に実現したいのであれば、このアプローチでカバーされている DCC ツール、特に複雑なシーンを構築しロジックを記述できる 3D エンジン ツールを活用することで、非常に革新的な機会が生まれると考えています。

さらに、3Dエンジン企業にとって、AI機能を統合することで、この革新的な機会をよりスムーズに実現できるようになります。これは、AI機能を垂直産業に適用することが本質であるため、チームが3Dエンジンのフレームワーク、その機能、そして豊富なノウハウ経験を有していることが求められるためです。そのため、AIが3Dシーンを理解し、3Dエンジンツールの機能を迅速に学習し、3Dシーンの構築と3Dアプリケーションの開発を完了できるようにすることが非常に重要になります。

ロブロックス

スプライン

ChatGPTの登場以来、多くの3Dエンジン企業がAIGCへの認知を表明し、Roblox、Unity、Unreal Engine、Splineなど、数多くの公式デモやサードパーティデモが公開されています。このプロセスは比較的長く、大きな課題を伴うこともありますが、AIGCは3Dアプリケーションシナリオの作成を加速させる上で、業界全体のコンセンサスとなっています。

OrillusionエンジンにおけるAIGCの応用

AIGCは、オリリュージョンチームにとって常に重要な焦点でした。エンジン設計の初期段階から、AIとエンジンの互換性について検討を重ねてきました。ChatGPTの登場以来、LLMのマルチモーダル性能、言語コンテンツの理解、そして文脈に基づいた論理的推論能力は飛躍的な進歩を遂げ、私たちは大きな喜びを感じています。残された課題は、 LLMに3Dシーンを理解させ、オリリュージョンエンジンの機能を学習させ、最終的には3Dアプリケーションを作成させることです。これこそが私たちの得意分野であり、私たちが取り組むべき課題です。

この問題の核心には 3 つの側面があります。

  • WebGPU標準規格に基づくOlilusionエンジンは、当社の主要なコアテクノロジーの一つです。 3年前からチームはWebGPUの開発に注力し始め、2年以上の研究開発を経て、本日正式にオープンソースとして公開いたします。今後、多くの開発者の皆様と協力し、中国で開発されるWeb3Dエンジンのための堅牢なエコシステムを構築していくことを楽しみにしています。

  • 大規模言語モデルに3Dシーンを理解しさせ、Olilusionエンジンを使って3Dシーンアプリケーションを構築する方法を学習させるにはどうすればよいでしょうか? これは、標準化され構造化されたエンジン関数のカプセル化によって、大規模言語モデルの学習速度と精度を加速させることです。データフィードバックメカニズムに基づいて、大規模モデルはさらに微調整され、3Dシーンとエンジン関数の理解精度をさらに高めます。

  • 3DシーンでAI機能をどのように拡張できるでしょうか?ChatGPTは言語モデルであり、 その機能を拡張するにはプラグインが必要であることは周知の事実です。このプラグインアプローチに着想を得て、Orillusionエンジンをベースに、垂直3Dシーンに3D空間機能を構築するためのプラグインベースの拡張メソッドも実装しました。開発者はプラグインを使用することで、3Dアプリケーション開発能力を拡張し、より複雑なアプリケーションに対応できるようになります。

プラグインの拡張性により、開発者の参加が増え、より専門的なプラグイン機能の開発が可能になり、より幅広いユーザーニーズに対応できるようになります。ユーザーが増えればデータフィードバックも増え、AIモデルの最適化の機会も広がります。最終的には、このポジティブなフィードバックループは、開発者と私たち自身の共同の努力にかかっています。だからこそ、私たちはオープンソースを支持し、エコシステムを大切にしています。

WebGPU標準をベースとするWebLLMプロジェクトは、WebGPUの可能性を深く探求し、最近大きな注目を集めています。これは、「学習はクラウドで、推論はエッジで」という将来のAIフレームワークの実現可能性がさらに高まったことを意味するのでしょうか?

開発者コミュニティのディスカッショングループへようこそ!(ヒント:すでにグループ 1、2、または 3 に参加している場合は、再度参加しないでください。すべての情報はすべてのグループ間で同期されます。)

QRコードでのグループ参加人数制限に達した場合は、WeChat(画像右側)でXiao Ouを追加していただければ、グループに招待いたします。