のリリースに伴い、macOS ソノマ, Apple は、Windows で使用できる Metal 開発者ツールの現在のバージョンも更新しました。入手方法と使用方法は次のとおりです。
Metal は Apple のグラフィックス フレームワークです。macOS。 Metal を使用すると、すべての Apple デバイス向けに最適化された Apple のグラフィックス エンジンを使用して、リッチでパフォーマンスの高い 2D および 3D グラフィックスを作成できます。
Metal は Apple デバイス上で実行されますが、Metal で使用するアセット、イメージ、シェーダー、テクスチャを作成するためのプラットフォームとして Microsoft Windows を使用することもできます。
Apple の開発者ツール サイトには、Metal Developer Tools 4.0 for Windows と Metal Shader Converter for Windows という 2 つの Metal for Windows のダウンロードがあります。オンラインで Apple 開発者アカウントにログインすると、両方をダウンロードできます。
Windows 用 Metal Developer Tools をダウンロードするには、Apple 開発者アカウントにログインし、ダウンロードページWeb ブラウザで下にスクロールして、Windows 用 Metal 開発者ツール:
Windows 4 用の Metal 開発者ツールをダウンロードします。
をクリックします。詳細を表示矢印をクリックし、Metal 開発者ツール 4.0 Windows.pdfそしてMetal 開発者ツール 4.0 Windows.exeをクリックして、コンピュータのストレージにダウンロードします。
次に、少し下にスクロールして、Windows 用メタル シェーダ コンバータそして、詳細を表示矢印をクリックし、Windows 用メタル シェーダー コンバーター.pdfそしてWindows 用メタル シェーダー コンバーター.exeコンピュータのストレージにダウンロードするには:
Windows 用メタル シェーダー コンバーターをダウンロードします。
インストール
ダウンロードしたすべてのアイテムを新しいフォルダーに移動します。これで 4 つの項目が得られるはずです。インストールする前に、両方の PDF ファイルに目を通すことをお勧めします。
ダウンロードした Windows ツール。
次に、ファイルをマック、Windows 互換の USB サム ドライブまたはその他のディスクを接続し、4 つの項目をそこにコピーします。サム ドライブを使用して、ファイルを Windows 10 または 11 マシンにコピーします。
コピーが完了したら、USB ドライブを Windows コンピュータに接続し、4 つのファイルをコピーします。両方の .exe インストーラー ファイルを実行して、Windows マシンにツールをインストールします。
Metal Developer Tools for Windows PDF には次のように記載されています。
「デフォルトでは、パッケージは次の場所にインストールされます%PROGRAMFILES%\Metal Developer Tools
。インストールすると、次のものが表示されます。
bin
TextureConverter ツールが含まれています。
include
AppleTextureConverter ライブラリのヘッダーが含まれています。
lib
AppleTextureConverter ライブラリが含まれています。
metal\ios
ターゲティング時に使用するツールのセットが含まれていますiOSそしてテレビOS。metal\macos
macOS を対象とする場合に使用するツールのセットが含まれています。
Metal Developer Tools は、リリースのターゲットとして計画している OS SDK のバージョンと一致する必要があります。」
また、GUI インストールのほかに、インストーラーは次のようなコマンドライン インストールもサポートできるとも述べています。
"Metal Developer Tools-Windows.exe" /S /D=C:\Users\My Name\Sandbox\Tools
インストールしたら、ツールを使用して、Windows コンピュータ上のシェーダとアセットを Metal が使用する形式に変換できます。
最初のツールは、TextureConverter
Windows で作成されたテクスチャを、Metal が受け入れる GPU 圧縮テクスチャ形式に変換します。詳細を確認し、オプションを実行するにはTextureConverter
、 タイプ:
TextureConverter.exe --h
Windows のコマンド プロンプトに入力して、 を押します。戻るまたは入力。
開発者ノートが示しているように、組み込むにはTextureConverter
独自の Windows テクスチャ ツールに挿入し、提供されている AppleTextureConverter ライブラリを使用して、AppleTextureConverter.h
詳細については、ヘッダー ファイルを参照してください。
また、Apple Metal Shading Language を使用してグラフィックスをコンパイルし、Windows から Metal Library オブジェクトにシェーダを計算するためのツールも含まれています。
Windows ツールにはこれを行う方法に関するメモが提供されていないため、読む必要があります。ソースファイルのプリコンパイルによるシェーダライブラリの構築でシェーダーライブラリのセクションドキュメント -> メタルApple のオンライン Metal ドキュメントのエリア。
実際には、このツールを使用して、Windows DXIL 形式から中間の .air 形式に移行し、次にロードできる .metalar および .metallib ファイルに移行することになります。Xcode実行時にアプリから実行します。ドキュメントから:
「metal コンパイラ ツールは、各シェーダ ソース ファイルを中間表現ファイルに変換します。その後、metallib ツールと metal-ar ツールは、中間表現ファイルをそれぞれライブラリとバイナリ アーカイブにコンパイルします。」
ドキュメントに記載されているように、Windows 用の Metal コマンドライン ツールは、macOS の対応するツールと同じオプションと引数を使用します。
インストールされる Windows 用のもう 1 つのツールは、Windows 用 Metal Shader Converter です。
このツールは、LLVM IR バイトコード形式の中間表現を Metal へのロードに適したバイトコードに変換します。
LLVM は、プロジェクトのコンパイル中に Xcode によって使用されるオープンソースのコンパイラ インフラストラクチャです。
LLVM の詳細については、次の URL を参照してください。llvm.orgおよびそのサイトのビットコード ページのバイトコード形式 (LLVM では「ビットコード」と呼びます)。
バイトコード形式についても本書で説明されていますLLVM クックブックパックト出版より。
Metal Shader Converter は、スタンドアロン ツールと、必要に応じて独自のツールに組み込めるライブラリの両方として提供されます。
提供されているヘッダー ファイルも参照してください。metal_irconverter_runtime.h
。
Metal Shader Converter for Windows には、Microsoft Windows 10 以降と Microsoft Visual Studio 2019 以降が必要です。
Metal Shader Converter for Windows を使用して構築されたライブラリは、macOS 14 Sonoma でのみ動作します。iOS17。以前の OS バージョン用に構築されている場合、一部の機能が利用できない可能性があります。
Windows 用 Metal Shader Converter の最初の最も簡単な使用法は、Windows DirectX DXIL (DirectX Intermediate Language) シェーダを Metal シェーダ ライブラリに変換することです。これは、metal-shaderconverter
コマンドラインツール。
例えば:
metal-shaderconverter shader.dxil -o ./shader.metallib
さらに詳しい情報を得ることができますmetal-shaderconverter
Windows で実行してmetal-shaderconverter --help
コマンドプロンプトで。
もあります。libmetalirconverter
C、C++、Objective-C で動作するダイナミック コード ライブラリ (dylib) が提供されています。迅速提供されているを使用して DXIL を Metal に変換できるプロジェクトIRCompiler
クラス。
このような変換コードは非常に簡単で、1 ページ未満のサンプル コードが Metal Shader Converter PDF で提供されています。
基本的に、提供されているものを使用するにはIRCompiler
クラスを使用するには、最初にオブジェクトのインスタンスを作成し、エントリ ポイント名を設定し、IRObject
クラスを使用して Metal にコンパイルします。IRCompilerAllocCompileAndLink()
関数を実行し、出力を検査します。
提供される
かなり長い 30 ページの Metal Shader Compiler for Windows PDF には、頂点属性、サンプラー状態オブジェクト、引数バッファ、レイ トレーシングなど、Windows から Apple Metal への変換に使用できるその他のオプションが多数含まれています。
最適な Metal パフォーマンスを達成するためのヒントや、ジオメトリやテッセレーションを含む複雑なシェーダー パイプラインを処理するためのヒントもあります。
PDF では、Apple の Metal サンプル コード プロジェクト「Learn Metal with C++」を参照することも推奨しています。金属のサンプルコードページ。
追加のリソース
C++ を知らない場合は、まず C に関する簡単な古典的な本 (決定版 C ブックなど) から始めることをお勧めします。C プログラミング言語ブライアン・カーニハンと故デニス・リッチーによるもので、両名とも 1970 年代に UNIX オペレーティング システムを作成するためにベル研究所で C 言語を作成しました。
Bjarne Stroustrup によって作成された C++ は C をベースにしていますが、クラス、オブジェクト、標準テンプレート ライブラリ (STL) およびその他の最新機能などのオブジェクト指向 (OOP) 機能を提供します。ストルストラップのテキストC++ プログラミング言語 第 4 版は必読です。
ストルストラップには、Webサイトでその他、役立つ C++ の書籍やチュートリアルもいくつかあります。
年次 C++ カンファレンス、CppConは毎年 10 月に開催されます。今年は 10 月 1 日から 6 日までコロラド州オーロラで開催されます。CppCon にはYouTube チャンネル非常に多くの優れた C++ チュートリアルが含まれています。
C++ は、C などの手続き型言語の限界が明らかになった 1994 年に普及しました。 C には、C99、C11、C14、C17、C22 などのいくつかの標準があります。 APRESS には、それぞれの規格に関する優れた書籍がいくつかありました。
Xcode コンパイラーがこれらの標準のどれを使用するかを Xcode のビルド設定ペインで設定できます。
1989 年に NeXT Computer で NeXT チームは、目的-Cこれは、C ベースの同様の OOP 言語ですが、動的リンクやオブジェクト イントロスペクションなどの追加の利点があります。
Apple が 1997 年に NeXT を買収したとき、Objective-C を含むすべての NeXT テクノロジーも買収しました。 Objective-C に関する優れた決定版の本は、Big Nerd Ranch の書籍です。Objective-C プログラミング: Big Nerd Ranch ガイド。
一部のサードパーティ 3D 標準にもいくつかの要件があり、その多くは Windows DirectX/Direct3D DXIL 標準に基づいていることにも注意してください。
たとえば、Steam には、満たさなければならない特定の DirectX 要件があるため、Steam プラットフォームと Apple プラットフォームに同時に公開する場合は、これらの要件を認識しておく必要があります。スチームにはページ要件の詳細を示します。
Microsoft は DirectXShaderCompiler をホストしていますリポジトリとWikiGitHub で。
Microsoft には、GitHub の DirectX-Specs および DirectXTK12 リポジトリに DirectX-Specs ページと DirectX Shader Model 6 もあります。
Windows DXIL のデバッグとチューニングピクスツールも利用可能です。
Microsoft には DirectX 開発者ブログもあります。
最後に、NVIDIA には、と呼ばれる Windows ベースの DirectX デバッグ ツールがあります。Nsightグラフィックス、非常に複雑な問題に果敢に挑戦するつもりならドキュメント。
Apple が macOS Sonoma に Windows Metal ツールを追加したことは、既存のゲーム グラフィックス パイプラインを Metal に移植することがはるかに簡単になり、Apple プラットフォーム上で最適に実行できるようになることを意味します。時間が経つにつれて、Apple が Metal ツールを改善し、クロスプラットフォームのゲーム開発の負担が大幅に軽減されることが期待できます。