Direct3D の概要
Direct3D は、レンダリング パイプラインを使用してプリミティブを描画したり、計算シェーダーで並列操作を実行したりするための低レベル API です。
Direct3D とは
Direct3D は、フレームごとに三角形、線、またはポイントを描画したり、GPU で非常に並列な操作を開始したりするために使用できる低レベルの API です。
Direct3d:
- 一貫性のある抽象化の背後にあるさまざまな GPU 実装を非表示にします。 しかし、あなたはまだ3Dグラフィックスを描画する方法を知る必要があります。
- 個別のグラフィックス固有のプロセッサを駆動するように設計されています。 新しい GPU には、数百または数千の並列プロセッサがあります。
- 並列処理を強調します。 多数のレンダリングまたはコンピューティング状態を設定し、操作を開始します。 操作からの即時のフィードバックを待つ必要はありません。 CPU 操作と GPU 操作を混在させる必要はありません。
どの Direct3D API を使用できますか?
選択する Direct3D API は、作成するアプリのスタイルによって異なります。
- UWP アプリを作成する場合は、Direct3D 11、DXGI、HLSL API のサブセットを使用します。 これらの API の一覧については、「 UWP アプリの Win32 API と COM API」を参照してください。 Direct3D 11 Windows ストア アプリを作成する方法については、「 DirectX を使用して 3D グラフィックスを作成する」を参照してください。
- デスクトップ アプリを作成する場合は、Direct3D 11、DXGI、HLSL API の完全なセットを使用できます。
- Windows 8以降、デスクトップ アプリ用の XNA フレームワークは積極的にサポートされなくなりました。 ただし、Windows ストア アプリ、UWP アプリ、デスクトップ アプリでは、 XAudio2 API と DirectXMath API の完全なセットを使用できます。 デスクトップ アプリでは XInput API の完全なセットを使用できますが、Windows ストア アプリと UWP アプリではほとんどの XInput API を使用できます。詳細については、「 XInput バージョン」を参照してください。
どの Direct3D バージョンですか?
選択する Direct3D API のバージョンは、ターゲットとするオペレーティング システムとハードウェア レベルによって異なります。
- Windows 8以降をターゲットにする場合は、Direct3D 11 API を使用します。
- Windows XP 以降で Direct3D 9 API を使用します。 すべてのハードウェアは、Direct3D 9 API、さらに新しい Direct3D 11 レベルのハードウェアをサポートしています。
- Windows Vista 以降で Direct3D 10 API を使用します。 Direct3D 10 レベル以降のハードウェアのみが Direct3D 10 API をサポートします。
- Windows 7 以降では、Direct3D 10.1 および Direct3D 11 API を使用します。 また、Windows Vista Service Pack 2 (SP2) で Direct3D 10.1 および Direct3D 11 API を使用することもできます。
Direct3D レンダリング パイプライン
Direct3D レンダリング パイプラインでは、川の支流など、複数のソースからデータが流れます。
- フローの一部はプログラム可能です。
- 一部のパーツにはノブとダイヤルが付いています。
- データのソースは、パケットのシリアル ストリーム (頂点) またはインデックス可能な配列 (シェーダー リソース) のいずれかです。
- 頂点とシェーダー リソースはプリミティブに流れ込み、増幅できます。
- プリミティブとシェーダー リソースはピクセル操作に流れます。
Direct3D コンピューティング シェーダー
Direct3D コンピューティング シェーダーを使用すると、すべての GPU プロセッサが並列で実行されます。 そのため、コンピューティング シェーダーは川よりも池のように動作します。