メタンキット
使用しやすい最新の3DグラフィックスレンダリングAbstraction APIおよびクロスプラットフォームアプリケーションフレームワーク:
- 最新のネイティブ3DグラフィックスAPIの上に構築されています:DirectX 12 on Windows、LinuxのVulkan、MacosのMetal、iOS、TVOS。
- Apple Metalのシンプルさに触発されたオブジェクト指向の中レベルのグラフィックスAPIを使用して、最新のグラフィックプログラミングを簡素化します。 HLSL 6の一般的なシェーダーコードは、すべてのプラットフォームで使用されます。
- Cmakeビルドツールチェーン、プラットフォームに依存しないアプリケーションファンデーションクラス、およびWindows、Linux、およびMacOのネイティブGUIレイヤーを使用して、クロスプラットフォームアプリケーションフレームワークを提供します。
事前に構築されたサンプル、チュートリアル、テストを使用したリリースビルドをダウンロードして、それらを試してみてください。最新のビルドステータス、テスト、コードカバレッジ、分析結果を確認するか、GitHubアクションCIおよびソナークラウドからビルドアーティファクトを取得します。手動のビルド手順については、Build Instructionsトピックを参照して、Hello Triangleおよびその他のチュートリアルのドキュメントを使用して、メタングラフィックスRHI APIの学習を開始します。
| プラットフォーム | グラフィックスパイ | マスタービルド | ビルドを開発します |
|---|
ハードウェアインターフェイスのレンダリング(RHI)メタングラフィックスRHIモジュールは、プラットフォームとAPIの独立した方法で最新のグラフィックプログラミングを簡単かつ便利にする一連のパブリックオブジェクト指向インターフェイスを実装しています。 チュートリアルHello TriangleチュートリアルドキュメントでメタングラフィックスAPIの学習を開始し、他の人と続けます。 名前 /リンク | スクリーンショット | 説明 |
|---|
| 1。こんにちは三角形 |  | 100行のコードで色付けされた三角形のレンダリング。 | | 2。こんにちはキューブ |  | 頂点とインデックスバッファーを備えた200行のコードでの色付きキューブレンダリング。 | | 3。テクスチャー付きキューブ |  | テクスチャキューブは、バッファ、テクスチャ、サンプラーの使用をフォンシェーディングで導入します。 | | 4。シャドウキューブ |  | Shadow Cubeは、レンダリングパスでマルチパスレンダリングを導入します。 | | 5。タイポグラフィ |  | タイポグラフィは、メタンUIを使用した動的なフォントAtlasの更新を使用したアニメーションテキストレンダリングを示しています。 | | 6。キューブマップアレイ |  | キューブマップアレイテクスチャーとスカイボックスレンダリング。 | | 7。並列レンダリング |  | テクスチャ付きキューブインスタンスのシングルレンダリングパスへの並列レンダリング。 | | 8。コンソール計算 |  | ConwayのLife of Lifeは、Compute Shaderに実装され、純粋なコンソールアプリケーションで実行されます。 |
サンプルメタンサンプルは、上記のチュートリアルよりも複雑な実装を備えた高度な技術と使用シナリオを示しています。サンプルは、個別のリポジトリの形で配布されます。 名前 /リンク | スクリーンショット | 説明 |
|---|
| 小惑星 |  | 複数のスレッドで処理された多数の不均一な小惑星オブジェクトの単一レンダリングパスでエンコードする並列レンダリングコマンドを示すベンチマーク。 |
特徴- クロスプラットフォームアプリケーションと入力クラス:Windows、MacOS、Linuxがサポートされています
- 便利なアプリケーションビルド構成のためのcmakeモジュール、シェーダーと埋め込みリソースの追加
- すべてのグラフィックスAPIを提供するHLSL-6シェーダーネイティブシェーダー言語に変換され、Build-cross&directxCompilerでビルド時間にコンパイルされた
- C ++のHLSLのような構文と、さまざまなプラットフォームのベクターインストラクションの最適化を備えたHLSL ++数学ライブラリ
- 最新のグラフィックスAPI抽象化:DirectX 12、VulkanおよびMetal APIに基づく
- コンパクトな初期化の構文を使用して、状態とプログラムの構成をレンダリングします
- プログラムバインディングオブジェクトは、シェーダー引数のリソースへの効率的なバインディングを実装します
- 自動リソースのトランジション障壁のセットアップに使用される自動リソース状態追跡
- コマンドリスト状態で共有ポインターを使用して、GPUで使用中に破壊することからリソースが自動的に保持されます
- オプションのGPUタイムスタンプを使用したコマンドリスト実行状態追跡完了時にクエリ
- 単一のレンダリングパスでエンコードするマルチスレッドレンダリングコマンドの並列レンダリングコマンドリスト
- フェンスを使用した同期を伴うGPUでの複数のコマンドキューの実行
- アップロードコマンドリストと共有リソースを通じて非同期に更新されたプライベートGPUリソース
- レンダリング状態とグラフィックリソースの再利用を可能にする名前付きグラフィックオブジェクトのレジストリレンダラーオブジェクト間
- グラフィックスプリミティブとエクステンション:
- フレームごとのリソース管理とフレームバッファーを備えたグラフィックスアプリケーションベースクラスのサイズ変更効果的なトリプルバッファリングを有効
- カメラプリミティブでインタラクティブなアークボールカメラ
- クワッド、ボックス、球体、icosahedron、uber-meshの手続きメッシュ生成
- スクリーンクォードおよびスカイボックスレンダリングエクステンションクラス
- テクスチャローダー(現在STBで実装されており、OpenImageioに交換する予定)
- ユーザーインターフェイス:
- 統合されたHUD、ロゴバッジ、ヘルプ/パラメーターテキストパネルを備えたUIアプリケーションベースクラス
- フォントのロード、ダイナミックアトラスの更新、テキストレンダリング、レイアウト用のタイポグラフィライブラリ
- ウィジェットライブラリ(開発中)
- プラットフォームインフラストラクチャ:
- Windows、MacOS、Linuxのウィンドウ管理と入力処理を備えたベースアプリケーション
- コールバックインターフェイスを介してエミッターとレシーバーを接続するイベントメカニズム
- アニメーションサブシステム
- 組み込みリソースプロバイダー
- 統合されたデバッグおよびプロファイリング機能:
- トレースプロファイリングツールを使用したパフォーマンス分析のためのライブラリインストゥルメント
- すべてのGPUオブジェクトとグラフィックスのデバッグ領域のデバッグAPIのデバッグ領域は、フレームプロファイリングツールで使用する必要があります
- GitHubアクションでの自動化されたマルチプラットフォームビルド、ユニットテスト、ソナークラウド静的コード分析との継続的な統合
詳細な機能の説明と開発計画については、モジュールのドキュメントを参照してください。 サポートされている開発ツール開発環境
- Microsoft Visual Studio 2019
- ソリューションとプロジェクトのビルド(build/windows/build.batで生成)
- cmakeネイティブビルドサポート(cmakepresets.jsonで事前に構成)
- Apple Xcode
- Xcodeワークスペースとプロジェクト(build/unix/build.shで生成)
- Microsoft vs code and gitpod(cmakepresets.jsonと.vscode/settings.jsonで事前に構成されています)
- ジェットブレインクリオン(.ideaで事前に構成)
- Cmakeネイティブサポートを備えたQT作成者
メタンキットは、ジェットブレイン開発ツールをサポートして開発されています。オープンソースプロジェクト開発ライセンスは、メタンキットプロジェクトのすべての主要な貢献者に無料で提供されます。 静的コード分析メタンキットには、自動化されたCI「スキャン」ビルドの一部として実行される連続C ++静的コードとコードカバレッジ分析が付属しています。サポートされているすべてのプラットフォームに対してSonar Cloudで個別に公開された最新の結果が付いています。 | マスタースキャン結果 | Windows | macos | Linux |
|---|
| ビルドステータスをスキャンします | | | | | 質の高いゲート | | | | | 保守性 | | | | | 信頼性 | | | | | 安全 | | | | | 技術的な負債 | | | | | バグ | | | | | 脆弱性 | | | | | コードの匂い | | | | | 重複した行 | | | | | カバレッジをテストします | | | | | コード行 | | | |
トレースプロファイリングツールメタンキットには、次のツールを使用したTRACEコレクションを使用したパフォーマンス分析のためのすべてのライブラリの統合された計装が含まれています。 Trace Collection Instructionsと関連するビルドオプションの詳細については、メタンインストルメンテーションドキュメントを参照してください。 | トレーシーフレームプロファイラー | Intelグラフィックストレースアナライザー |
|---|
 |  |
フレームプロファイリングとデバッグツール- Intelグラフィックスフレームアナライザー
- Apple Xcode Metal Debugger
- renderdoc
- Microsoft Pix
- nvidia nsightグラフィックス
外部依存関係ライセンスメタンキットはApache 2.0ライセンスの下で配布されています。自由に使用でき、寄付のために開いています! Copyright 2019-2022©Evgeny Gorodetskiy
拡大する
|