金属(API)

金属
開発者アップル社
初回リリース2014年6月; 11年前 (2014年6月
安定版リリース
2025年6月4日; 5か月前 (2025-06
書かれたMetal シェーディング言語 ( Metal 1~3 ではC++14ベース、 Metal 4 ではC++17ベース)、ランタイム/API: Objective-CSwiftC++ (Metal-cpp 経由のバインディング)
オペレーティング·システムiOSiPadOSmacOStvOSwatchOSvisionOS
タイプ3DグラフィックスとコンピューティングAPI
ライセンス独自の
Webサイトdeveloper.apple.com/metal/

Metalは、 Appleが開発し、 iOS 8で初めて搭載された、低レベルかつ低オーバーヘッドのハードウェアアクセラレーション対応 3Dグラフィックおよびコンピュートシェーダー APIです。Metalは、 OpenGLOpenCLに類似した機能を1つのAPIに統合しています。iOS iPadOSmacOStvOSwatchOSvisionOS上のアプリにGPUハードウェアへの低レベルアクセスを提供することで、パフォーマンスを向上させることを目的としています。VulkanDirectX 12といった他のプラットフォームの低レベルAPIに類似しています

Metalは、 SwiftObjective-CC++17 [2]などのプログラミング言語で呼び出すことができるオブジェクト指向APIです。本格的なGPU実行はMetalシェーディング言語によって制御されます。Appleのプロモーション資料によると、「MSL [Metalシェーディング言語]は、グラフィックスプログラムとコンピューティングプログラムの緊密な統合を可能にする単一の統合言語です。MSLはC++ベースなので、使い慣れていて簡単に使用できるでしょう。」[3]

特徴

Metalは、GPUへの低オーバーヘッドアクセスを提供することを目指しています。コマンドは事前にエンコードされ、GPUに送られて非同期実行されます。アプリケーションは実行完了の待機タイミングを制御するため、アプリケーション開発者は、コマンドがGPU上で実行されている間に他のコマンドをエンコードすることでスループットを向上させたり、GPUの実行完了を明示的に待機することで電力を節約したりできます。さらに、コマンドのエンコードはCPUに依存しないため、アプリケーションは各CPUスレッドに独立してコマンドをエンコードできます。最後に、レンダリング状態は事前に計算されるため、GPUドライバーはコマンド実行前にレンダリングパイプラインをどのように構成および最適化するかを事前に把握できます。[4]

Metalはコンピュートシェーダを用いることでGPGPUプログラミングの能力を向上させます。MetalはC++14をベースにした専用のシェーディング言語を使用し、ClangLLVMを用いて実装されています。[5]

Metalを使用すると、アプリケーション開発者はバッファやテクスチャなどのMetalリソースを作成できます。リソースはCPU、GPU、またはその両方に割り当てることができ、割り当てられたリソースを更新および同期する機能も提供します。また、Metalはコマンドエンコーダの有効期間中、リソースの状態を強制することもできます。[6] [7]

macOSでは、Metalはアプリケーション開発者にどのGPUを実行するかを指定する裁量を与えています。アプリケーション開発者は、CPUの低消費電力統合GPU、ディスクリートGPU(一部のMacBookおよびMac)、またはThunderbolt経由で接続された外付けGPUの中から選択できます。また、アプリケーション開発者は、GPUコマンドをどのGPUで実行するかを選択でき、特定のコマンドをどのGPUで実行するのが最も効率的であるかを提案します(シーンをレンダリングするコマンドはディスクリートGPUで実行し、ポストプロセスと表示は統合GPUで処理するなど)。[8]

Metal パフォーマンス シェーダー

Metalパフォーマンスシェーダーは、アプリケーション開発者が優れたパフォーマンスを実現すると同時に、GPUファミリ固有の機能の保守にかかる作業を軽減するのに役立つ、高度に最適化されたグラフィックス機能のライブラリです。[9]以下の機能を提供します。

  • 画像フィルタリングアルゴリズム
  • ニューラルネットワーク処理
  • 高度な数学演算
  • レイトレーシング

歴史

Metalは、2014年6月2日からApple A7以降を搭載したiOSデバイスで利用可能になりました。[10]また、2015年6月8日からはOS X El Capitanを搭載したMac(2012年モデル以降)でも利用可能になりました[11]

2017年6月5日、 AppleはWWDCにおいて、 macOS High SierraiOS 11tvOS 11でサポートされるMetalのバージョン2を発表しました。Metal 2はMetalとは別のAPIではなく、同じハードウェアでサポートされます。Metal 2は、 Xcodeでのプロファイリングデバッグの効率化、機械学習の高速化、 CPU負荷の低減macOSにおけるバーチャルリアリティのサポート、そして特にApple A11 GPUの特異性を実現します。 [12]

2020年のWWDC、AppleはMacをApple Siliconに移行することを発表しました。Apple Siliconを搭載したMacは、macOSとiOSでこれまで利用可能だった機能を組み合わせたApple GPUを搭載し、 Apple GPUのタイルベースの遅延レンダリング(TBDR)アーキテクチャに合わせた機能を利用できるようになります。 [13]

2022年のWWDCで、AppleはMetalの第3バージョン(Metal 3)を発表しました。これはmacOS VenturaiOS 16iPadOS 16のリリースと同時にデビューする予定です。Metal 3では、高性能なアップスケーリングとアンチエイリアシング、メッシュシェーダーのサポートにより、複雑なシーンをフレームごとに短時間でレンダリングするMetalFXアップスケーリングフレームワークが導入されています。[14]また、Metal APIにC / C++を使用する可能性も発表されました。[15]

2023年のWWDCにおいて、AppleはWindows 10/11ベースのゲームを移植するための新しいツールキット「Game Porting Toolkit」を発表しました。このツールキットには、バイナリテスト環境、HLSLからMSLへの変換レイヤー、Metal-cppバインディングが含まれています。ジェレミー・サンドメルはmacOS Sonoma向けの新しいゲームモードを発表し、小島秀夫はmacOS App Store向けに『デス・ストランディング』を発表しました。 [16]

2024年のWWDCで、AppleはGame Porting Toolkit 2を発表し、 Control: Ultimate EditionFrostpunk 2Assassin's Creed Shadowsなどの新しいゲームをmacOS向けにリリースしました[17]

2025年のWWDC、Appleは統合コマンドエンコーダシステム、ニューラルレンダリングのサポート、MetalFXフレーム補間やレイトレーシングデノイザーなどの新技術を搭載したAPIの新バージョンであるMetal 4を発表しました。[18]

サポートされているGPU

Metalの最初のバージョンは、以下のハードウェアとソフトウェアをサポートしています。[19]

Metal の 2 番目のバージョンは、次のハードウェアとソフトウェアをサポートします。

Metalの第3バージョンは、以下のハードウェアとソフトウェアをサポートしています。[20]

Metal の第 4 バージョンは、次のハードウェアとソフトウェアをサポートします。

採択

Appleによれば、 2017年6月時点で148,000以上のアプリケーションがMetalを直接使用しており、170万が高レベルフレームワークを通じてMetalを使用している。 [22]レンダリングにMetalを使用しているmacOSゲームは以下のとおりである。

タイトル開発者(macOS版)ゲームエンジンMacOS リリース日 (OpenGL/DirectX)金属ベースの発売日金属サポートノート
アーク:サバイバルエボルブドスタジオワイルドカードアンリアルエンジン42017年8月29日
アサシン クリード シャドウズユービーアイソフト ケベックユービーアイソフト アンビル2025年3月20日
アルマ3バーチャルプログラミングリアルなバーチャル2015年8月31日Metalのサポートは2017年9月17日からベータ版で開始されています[引用が必要]
バルダーズ・ゲートIIIラリアンスタジオディビニティエンジン4.02023年9月22日2020年10月6日から早期アクセス中のMetalサポート[要出典]
弾道オーバーキルアクイリスゲームスタジオユニティエンジン52017年3月28日
バットマン:アーカム・シティフェラルインタラクティブアンリアルエンジン32013年10月18日2019年2月21日からMetalをサポート(v1.2)[要出典]
バットマン:ザ・エネミー・ウィズインテルテールゲームズテルテールツール2017年8月8日
バトルテック無謀な計画ユニティエンジン52018年4月24日
バイオショック リマスターフェラルインタラクティブアンリアルエンジン2.52017年8月22日
バイオショック2 リマスターフェラルインタラクティブアンリアルエンジン2.52020年10月22日
サイバーパンク2077CDプロジェクトREDエンジン42025年7月17日Metal 4のサポート
シティーズ:スカイラインパラドックス・インタラクティブユニティエンジン52015年3月10日2017年5月18日以降の金属サポート[要出典]
シヴィライゼーション VIアスパイアメディア伝承2016年10月24日2019年4月5日以降の金属サポート[要出典]
カンパニー・オブ・ヒーローズ2フェラルインタラクティブエッセンスエンジン32015年1月21日2018年10月19日以降の金属サポート[要出典]
コントロール:アルティメットエディションレメディ・エンターテインメントノースライトエンジン2025年3月26日
デッドアイランド2ダムバスタースタジオアンリアルエンジン42025年7月24日
デウスエクス:マンカインド・ディバイデッドフェラルインタラクティブドーンエンジン2017年12月12日
ダートラリーフェラルインタラクティブEGOエンジン2.52017年11月16日
ディヴィニティ:オリジナル・シン IIラリアンスタジオディヴィニティエンジン22019年1月31日
ドータ2バルブソース22013年7月18日MoltenVKは2018年2月26日に発表されました[23]これを使用するオプションは2018年5月31日に利用可能になりました。[24]
エルダー・スクロールズ・オンラインゼニマックスオンラインスタジオ該当なし2014年4月4日2018年10月22日パッチ 4.2.5 で、OpenGL レンダラーが MoltenVK ラッパー (Vulkan API 呼び出しを Metal に変換) を介して Vulkan に置き換えられました。
エンパイア:トータルウォーフェラルインタラクティブTWエンジン32009年3月4日2019年12月16日以降の金属サポート[要出典]
EVEオンラインCCPゲーム該当なし2007年11月6日2021年10月14日2007年11月から2009年2月まで、DirectX 9.0経由でmacOSで利用可能でした。Metalを使用したネイティブmacOSバージョンは2021年11月14日にリリースされました[引用が必要]
エバースペースメバルアンリアルエンジン42017年5月26日
F1 2016フェラルインタラクティブEGOエンジン4.02017年4月6日
F1 2017フェラルインタラクティブEGOエンジン4.02017年8月25日
フォートナイトエピックゲームズアンリアルエンジン42017年7月25日
フロストパンク11ビットスタジオ液体エンジン2021年2月24日
フロストパンク211ビットスタジオアンリアルエンジン52024年9月20日
砂利バーチャルプログラミングアンリアルエンジン42019年1月20日
ガーディアンズ・オブ・ギャラクシー:テルテールシリーズテルテールゲームズテルテールツール2017年4月18日
ヘッドランダーダブルファインプロダクションズ仏陀エンジン2016年11月18日
嵐の英雄たちブリザード・エンターテインメントSC2エンジン2015年6月2日Metalのサポートは2017年1月24日からベータ版で開始されている2017年11月29日に一時的に削除された[25]。その後削除された。)[引用が必要]
ヒットマンフェラルインタラクティブ氷河22017年6月20日
ライフ イズ ストレンジ: ビフォア ザ ストームフェラルインタラクティブユニティエンジン2018年9月13日
ライフ イズ ストレンジ 2フェラルインタラクティブアンリアルエンジン42019
マフィアIIIアスパイアメディアイリュージョンエンジン2017年5月11日
メディーバルII:トータルウォーフェラルインタラクティブTWエンジン22015年12月17日2018年10月25日以降の金属サポート[要出典]
マイクロマシンワールドシリーズバーチャルプログラミングユニティエンジン52017年6月30日
マインクラフト:ストーリーモード - シーズン2テルテールゲームズテルテールツール2017年7月11日
MXGP3バーチャルプログラミングアンリアルエンジン42018年11月23日
ナポレオン:トータルウォーフェラルインタラクティブTWエンジン32013年7月2日2019年10月25日からv1.2でMetalをサポート[引用が必要]
誘拐シアンワールドアンリアルエンジン42017年3月29日
オブザーバーブルーバーチームアンリアルエンジン42017年10月24日
クエイクIIidソフトウェアQuake IIエンジン2019年2月9日MoltenVKを使用した移植版がvkQuake2としてリリースされた。[26]
返金ドミニク・グリースホーファーアンリアルエンジン42016年9月5日
バイオハザード2カプコンREエンジン2024年12月10日
バイオハザード3カプコンREエンジン2025年3月18日
バイオハザード4カプコンREエンジン2023年12月20日
バイオハザード ヴィレッジカプコンREエンジン2022年10月28日MetalFX 対応の最初の macOS ゲーム
トゥームレイダーの台頭フェラルインタラクティブ基礎エンジン2018年4月12日
シャドウ オブ ザ トゥームレイダーフェラルインタラクティブ基礎エンジン2019
シド・マイヤーの鉄道!フェラルインタラクティブゲームブリオ2012年11月1日2018年12月18日以降の金属サポート[要出典]
ザ・シムズ3マクシスレッドウッド ショアーズシムズ3エンジン2009年6月2日2020年10月28日
シムズ4マキシススマートシム2015年2月17日金属サポートは2019年11月12日に追加されました[引用が必要]
Sky 星を紡ぐ子どもたちそのゲームカンパニー該当なし2019年7月18日2017年11月のプレグローバルライブ以降にネイティブメタルのサポートが追加されました
スタークラフトブリザード・エンターテインメント改造されたWarcraft IIエンジン2001年11月20日2020年7月2日からv1.23.5でMetalをサポート[引用が必要]
スタークラフトIIブリザード・エンターテインメントSC2エンジン2010年7月27日Metalのサポートは2017年1月24日からベータ版で開始されています[引用が必要]
トゥームレイダーフェラルインタラクティブ基礎エンジン2014年1月17日2019年7月にバージョン1.2でMetalをサポート[引用が必要]
トータルウォー:ローマ リマスターフェラルインタラクティブTWエンジン22021年4月29日
トータルウォー:ショーグン2フェラルインタラクティブTWエンジン32014年7月31日2019年10月4日以降の金属サポート[要出典]
トータルウォー:ショーグン2:サムライの没落フェラルインタラクティブTWエンジン32014年12月18日2019年10月4日以降の金属サポート[要出典]
トータルウォー:三国志フェラルインタラクティブTWエンジン32019年5月23日
トータルウォー:ウォーハンマーフェラルインタラクティブTWエンジン32017年4月19日
トータルウォー:ウォーハンマーIIフェラルインタラクティブTWエンジン32018年11月20日
トータルウォーサーガ:ブリタニアの玉座フェラルインタラクティブTWエンジン32018年5月24日
トータルウォーサーガ:トロイフェラルインタラクティブTWエンジン32020年8月13日
ユニバースサンドボックス巨大軍隊ユニティエンジン5未定Metalのサポートは2017年6月からベータ版です[引用が必要]
アンリアルトーナメントエピックゲームズアンリアルエンジン4キャンセル2017年1月以降の金属サポート[要出典]
ウォーサンダーガイジン・エンターテインメントダゴールエンジン42012年11月1日金属サポートは2017年5月24日に追加されました(2018年に削除され、2020年8月27日に再導入されました)[引用が必要]
ウォーハンマー 40,000: ドーン・オブ・ウォー IIIフェラルインタラクティブエッセンスエンジン42017年6月9日
証人テクラ株式会社テクラエンジン2017年3月8日
ワールド・オブ・ウォークラフトブリザード・エンターテインメントWoWエンジン2004年11月23日2016年8月以降の金属サポート[要出典]
X-Plane 11ラミナーリサーチ該当なし2017年5月30日2020年4月2日からベータ版のMetalサポート[27]

参照

  • Direct3DDirectX 12では低レベル API が導入されています。
  • Mantle – AMDによる低レベルAPI
  • Vulkan – OpenGLの低オーバーヘッドの後継
  • MoltenVK - Metal API 上で Vulkan ソフトウェアを実行するためのソフトウェア互換性ライブラリ
  • ウェブGPU
  • OpenGL - クロスプラットフォーム グラフィックス API

参考文献

  1. ^ McWhertor, Michael (2014年9月9日). 「これはAppleがiPhone 6を披露するために使ったゲームだ」. Polygon . Vox Media . 2014年9月11日時点のオリジナルよりアーカイブ。 2014年9月9日閲覧
  2. ^ 「Metal-CPP を使い始める - Metal」。
  3. ^ Apple Inc.「Metal シェーディング言語仕様」(PDF)
  4. ^ 「コマンド構造の設定」Apple Inc.
  5. ^ 「Metal Shading Language Guide」. 2014年9月8日. 2014年9月10日閲覧
  6. ^ Apple Inc.「リソース保存モードの設定」。
  7. ^ 「管理対象リソースの同期」Apple Inc.
  8. ^ 「macOS での GPU の選択」Apple Inc.
  9. ^ 「Metal パフォーマンス シェーダー」。
  10. ^ Machkovech, Same (2014年6月2日). 「Apple、ゲーム事業に注力、Metal開発プラットフォームを発表」Ars Technica . Condé Nast .
  11. ^ スミス、コリン、メザ、スターレイン(2015年6月8日)。「Apple、洗練されたエクスペリエンスと向上したパフォーマンスを備えたOS X El Capitanを発表」。ニュースルームサンフランシスコApple
  12. ^ “Metal 2”. Apple Developer . Apple . 2017年11月20日. オリジナルより2017年11月20日時点のアーカイブ – Wayback Machine経由.
  13. ^ 「MetalアプリをApple Silicon Macに導入しよう」developer.apple.com . 2020年7月13日閲覧
  14. ^ “Discover Metal 3”. developer.apple.com . 2022年6月24日閲覧
  15. ^ 「metal-cppを使ってC++でMetalをプログラムする」developer.apple.com . 2022年9月10日閲覧
  16. ^ 「WWDC 2023 - ゲーム移植ツールキットとMetalのアップデート」YouTube 2023年6月5日. 2025年7月25日閲覧
  17. ^ 「WWDC 2024 - Game Porting Toolkit 2など」YouTube 2024年6月10日2025年7月25日閲覧
  18. ^ 「WWDC 2025 - Metal 4 発表」YouTube 2025年6月9日. 2025年7月25日閲覧
  19. ^ Chiappetta, Marco (2018年12月11日). 「Apple、macOS Mojaveで顧客とNVIDIAに背を向ける」. Forbes .
  20. ^ 「Metal 機能セット表」(PDF) . Apple .
  21. ^ “Metal機能セット表(2022年)” (PDF) . Apple . 2022年10月14日時点のオリジナルよりアーカイブ。 2025年6月12日閲覧{{cite web}}: CS1 maint: bot: 元のURLステータス不明(リンク
  22. ^ Apple Inc.「WWDC 2017 プラットフォームの現状」。
  23. ^ 「VulkanアプリケーションがAppleプラットフォームで利用可能に」クロノス・グループプレスリリース。 2021年2月24日閲覧
  24. ^ Larabel, Michael (2018年6月1日). 「macOSでDota 2を使用した際のVulkanの初期パフォーマンスは非常に良好」. Phoronix . 2018年6月5日閲覧
  25. ^ 「HEROES OF THE STORM バランスパッチノート — 2017年11月29日」。news.blizzard.com . 2017年11月29日。
  26. ^ Kondrak, Krzysztof [@k_kondrak] (2019年2月9日). 「vkQuake2がMacOSに対応」(ツイート) . 2019年2月9日閲覧– Twitter経由.
  27. ^ 「X-Plane 11.50 パブリックベータ1:VulkanとMetalが登場」X-Plane開発者. 2020年4月2日. 2020年4月2日閲覧
  • 開発者向けMetal
  • Metal プログラミング ガイド (暫定版)
  • WWDC14 デモ; 拡張版
  • Mac Pro (Mid 2010) および Mac Pro (Mid 2012) に macOS 10.14 Mojave をインストールする - Mac OS 10.14 (Mojave) オペレーティングシステムで Apple の Metal API と互換性のある GPU について説明した Apple の記事
「https://en.wikipedia.org/w/index.php?title=Metal_(API)&oldid=1319927957」より取得