SpartanEngineのGPU駆動レンダラーを読む
このプロジェクトは「A game engine with a fully bindless, GPU-driven renderer featuring real-time path-traced global illumination, hardware ray tracing, and a physics simulation running at 200Hz, built over 10+ years of R&D.」を基盤として、実践的に使えるオープンソース実装を提供し、再利用可能なツールチェーンと統合手段を備えています。
ひと目でわかる
- これは何?
- リアルタイムパストレーシング、200Hzの車両シミュレーション、単一著者のコードベースを備えた個人研究開発エンジン。
- 誰に向いている?
- SpartanEngineのGPU駆動レンダラーを読むは、READMEに書かれた対象と運用条件が一致する読者向けです。採用前に、本文で挙げた固有の版、コマンド、保存先、入力データを検証環境で確認し、未記載の性能や互換性を推測せずに用途を決めてください。
- 商用利用できる?
- できます。MIT は寛容なライセンスで、著作権表示とライセンス表示を残せば、使用・改変・販売が可能です。
- 今もメンテナンスされている?
- されています。最後のコミットは 2 日前です。
- 何の言語で書かれている?
- 主に C++ です(GitHub の言語統計による)。
回答はプロジェクトの GitHub データ(最終同期:2026年9月14日)と当サイトの分析に基づくもので、法的助言ではありません。
オープンソース詳細解説
SpartanEngine:長い歴史を持つ個人エンジン
Spartanは大学のプロジェクトとして始まり、READMEによれば、それ以来、一人のエンジニアによる10年以上の夜と週末の作業によって成長してきました。同じREADMEは、そのレンダリング技術がGodot EngineとS.T.A.L.K.E.R. Anomalyに統合され、出版されたプログラミング本に登場し、600人以上のエンジニアからなるDiscordコミュニティを支えていると述べています。エンジンは個人の研究開発努力であり、明らかに商用製品ではなく、ロードマップの約束もサポートキューもないと説明されています。表明された哲学は、ベイクドよりもリアルタイムを、静的よりも動的を、安全よりも現代的を優先するというものです。
SpartanEngine:デフォルトワールド
エンジンは、物理対応のいくつかの環境を含むワールド選択画面で起動します。フォレストワールドは最も要求が厳しく、64.1 km²に広がる2億5600万本のプロシージャル生成された草の葉と、数千の木や岩があります。他の内蔵ワールドには、Sponza 4K、Basic、Liminal Space、Showroom、そしてThe Planと呼ばれるワールドがあり、これはネオンに濡れた都市で、エンジンを60fpsのリアルタイムパストレーシングドライビングに押し上げることを意図していると説明されています。READMEは最後のものを計画としてラベル付けしており、完成した機能ではありません。
SpartanEngine:レンダリングアーキテクチャ
レンダラーは、GPUがすべてのデータを所有するという考えに基づいて構築されています。ジオメトリ、マテリアル、テクスチャ、ライト、トランスフォーム、AABBなどのリソースは、永続的なグローバルバッファに存在します。ゼロバインディング描画パスがあり、プッシュ定数は単一のバインドレスストレージバッファへのインデックスのみを運びます。単一のグローバル頂点およびインデックスバッファがすべてのジオメトリを保持し、入力アセンブラをバイパスする頂点プルを使用します。GPU駆動の間接描画は、メッシュレットごとのフラスタム、Hi-Zオクルージョン、背面コーンカリングを使用します。CPUはパスごとに1つのDrawIndexedIndirectCountを発行します。メッシュレットはmeshoptimizerで生成され、ユニバーサルHLSLはVulkan SPIR-VとDirectX 12の両方にコンパイルされます。ミップ生成とテクスチャ圧縮はロード時にGPUで行われます。
SpartanEngine:ライティングとグローバルイルミネーション
ライティングには、リアルタイムのマルチバウンスグローバルイルミネーションのための時空間リザーバリサンプリングを備えたReSTIRパストレーシングを使用します。クラスタ化ディファードシェーディングは、GPU上に対数Zグリッドを構築し、スポットライトに対してコーン対AABBカリングを行います。ハードウェアレイトレーシングによる反射と影は、レイクエリを通じて実現されます。大気には、散乱、ベント法線を用いたイメージベースドライティング、Nubisスタイルと説明されるボリュメトリッククラウド、時間的再投影を備えたボリュメトリックフォグ、TessendorfスペクトルとマルチカスケードIFFTを備えたFFTオーシャンが含まれます。また、Days Goneに触発されたスクリーンスペースシャドウ、XeGTAOアンビエントオクルージョン、半影推定を備えたシャドウマップアトラスもリストされています。
SpartanEngine:パフォーマンス、アップスケーリング、ポストプロセッシング
レンダラーは、可変レートシェーディング、動的解像度スケーリング、および組み込みアップサンプリングを備えた時間的アンチエイリアシング(TAAU)をサポートし、Haltonジッター履歴再投影と分散クリッピングを使用します。Intel XeSS 3アップスケーリングとFXAAも利用できます。デバッグ用に、カスタムブレッドクラムがGPUクラッシュトレーシングを提供します。物理ベースのカメラは、自動露出と物理光単位(ルーメンとケルビン)を使用します。トーンマッパーにはACES、AgX、グランツーリスモ7が含まれ、後者がデフォルトです。HDR10出力、ブルーム、モーションブラー、被写界深度、色収差、フィルムグレイン、CASシャープニングをサポートしています。
SpartanEngine:車両シミュレーションとエンジンシステム
完全な車両ダイナミクスシミュレーションは、PhysX固定タイムステップループ内で200Hzで実行されます。READMEには、Pacejka MF 5.2によるタイヤモデリング、凸包スイープ接触とアンチロールバーを備えたサスペンション、重量移動、7速ギアボックスを備えたドライブトレイン、熱フェードを備えたブレーキ、空力、ステアリング、ABSやトラクションコントロールなどのアシストがリストされています。車両以外にも、エンジンにはGPU駆動パーティクル、2ボーンIKを備えたスケルタルアニメーション、PhysX物理、Sol2を介したLua 5.4スクリプティング、SDL3による3Dオーディオ、コンポーネントベースのエンティティシステム、プロシージャル道路、カメラカットシーケンサー、ハードウェア対応スレッドプール、OpenXR VR(WIPとマーク)、タイムラインを持つプロファイラー、ImGuiベースのエディターが含まれます。アセットインポートは40以上のモデル形式、30以上の画像形式、10以上のフォント形式をサポートしています。
SpartanEngine:はじめ方、コミュニティ、ライセンス
READMEは、ワンクリックプロジェクト生成のビルドガイドをwikiに案内し、デフォルトワールドの読み込みを理解するためのエントリポイントとしてGame.cppを指しています。Luaスクリプティングガイドもwikiにあります。貢献者は貢献ガイドに案内され、スポンサーシップはワンクリックセットアップのためのDropboxホスティングをカバーしています。READMEには、SpartanのTAAを統合したGodot Engine、Spartanのソースからのレンダリングアドオンを使用するS.T.A.L.K.E.R. Anomaly、そしてJesse Guerreroによるプログラミング本がリストされています。リポジトリはMITライセンスであり、ライセンス抜粋は、著作権表示が含まれることを条件に、使用、コピー、変更、マージ、公開、配布、サブライセンス、販売の許可を与えると述べています。ライセンスはまた、ソフトウェアが「現状のまま」提供され、保証がないと述べています。
SpartanEngineを商用エンジンの代替品としてではなく、GPU駆動レンダリングと車両物理を読む研究用コードベースとして評価するのが適切です。READMEはワンクリックのプロジェクト生成をWikiへ案内し、起動後の入口として `Game.cpp` を示しています。VulkanのSPIR-VとDirectX 12へコンパイルするUniversal HLSL、ロード時のミップ生成、PhysX固定ループの200Hzを個別に確認してください。READMEにハードウェア要件と性能ベンチマークはないため、ReSTIR、ハードウェアレイトレーシング、OpenXRのWIP表記を含む機能を同じGPU構成で測定し、MITライセンスの免責も踏まえて用途を決めます。
編集部の結論
SpartanEngineのGPU駆動レンダラーを読むは、READMEに書かれた対象と運用条件が一致する読者向けです。採用前に、本文で挙げた固有の版、コマンド、保存先、入力データを検証環境で確認し、未記載の性能や互換性を推測せずに用途を決めてください。
コミュニティノート