デスクトップ DirectX アプリのロードマップ
DirectX と C++ を使用してゲームなどのグラフィックス集中型デスクトップ アプリを開発する際に役立つ重要なリソースを次に示します。 これは、すべての機能または使用可能なリソースの包括的な一覧ではありません。
作業開始
いくつかの重要なトピックを次に示します。 DirectX プロジェクトをセットアップし、Windows に慣れ、アプリケーションのサンプルを作成します。
トピック | 説明 |
---|---|
DirectX を使用して最初の Windows アプリを作成する | この基本的なチュートリアルを使用して DirectX アプリの開発を開始し、ロードマップを使用して DirectX の探索を続けます。 |
Windows 用 DirectX の概要 | DirectX と C++ を使用してゲームの開発を開始するために必要な手順を確認します。 |
DirectX フレームワークの完全なコード | 基本的な DirectX レンダリング フレームワークのコードを取得します。 |
Direct3D 11 の使用方法 | このセクションでは、Microsoft Direct3D 11 API を使用していくつかの一般的なタスクを実行する方法について説明します。 |
Direct3D 11 用プログラミング ガイド | プログラミング ガイドには、Microsoft Direct3D 11 プログラミング可能なパイプラインを使用して、デスクトップ アプリケーション用のリアルタイム 3D グラフィックスを作成する方法に関する情報が含まれています。 |
DirectX グラフィックス用ツール | DirectX 開発をサポートするために使用されるツールのドキュメント。 |
Direct3D 11 の新機能 | DirectX と Direct3D の最新バージョン (現在は 11.2) で追加されたすべての機能の内訳。 |
Visual Studio 2013 をダウンロードする | Windows ストア ゲームを作成するには、Visual Studio Express 2013 for Windows Desktopが必要です。 Visual Studio のツアーについては、「 Visual Studio 2012 を使用して Windows ストア アプリを開発する」を参照してください。 Visual Studio の新機能の詳細については、「Visual Studio 2013の製品のハイライト」を参照してください。 |
DirectX SDK の場所 | DirectX プロジェクトを Microsoft Visual Studio に取り込みたい開発者向けのガイダンスが含まれています。 |
サンプル アプリケーション
トピック | 説明 |
---|---|
Direct3D チュートリアル Win32 サンプル | 基本的なデスクトップ Direct3D チュートリアル サンプル。 |
DirectX ビデオ レンダリングのサンプル | Direct3D を使用したカスタム ビデオ レンダリングを示すサンプル。 |
Direct3D 11 の主要な概念を確認する
トピック | 説明 |
---|---|
グラフィックス パイプライン | 基本的な Direct3D 11 グラフィックス パイプラインについて説明します。 |
レンダリング | Direct3D レンダリング モデル、コンポーネント、シェーダー、API 呼び出しフローについて説明します。 |
リソース | バッファーやその他の GPU リソースの種類など、Direct3D の "リソース" について説明します。 |
エフェクト | Direct3D マルチシェーダーのインスタンス化と効果について説明します。 |
方法: スワップ チェーンを作成する | 画面の領域にピクセルを描画するために使用するスワップ チェーンを作成する方法。 |
方法: デバイスとイミディエイト コンテキストを作成する | Direct3D デバイスの抽象化と描画のための即時コンテキストを作成する方法。 |
方法: 頂点バッファーを作成する | GPU で処理するためのメッシュ頂点の単純なリストを作成する方法。 |
方法: インデックス バッファーを作成する | 頂点シェーダーがメッシュ内の頂点の順序をウォークできるようにするインデックス バッファーを作成する方法。 |
方法: 定数バッファーを作成する | レンダリング中に CPU と GPU の間で定数 (均一) データを渡す方法。 |
方法: テクスチャを作成する | GPU でサンプリングできるテクスチャまたはその他のバッファー リソースを作成する方法。 |
方法: ファイルからテクスチャを初期化する | ファイルからテクスチャを読み込み、シェーダー パイプラインで使用するために処理する方法。 |
方法: シェーダーをコンパイルする | グラフィックス アプリケーションで使用するためにシェーダーをコンパイルする方法。 |
グラフィックス API
トピック | 説明 |
---|---|
Direct3D 11 | GPU とそのリソースの仮想化、および統合シェーダー モデルを使用したグラフィックスの描画に関するコア API のドキュメント。 |
Direct3D HLSL | High-Level シェーダー言語のリファレンス ドキュメント。統合シェーダー モデルでグラフィックス パイプラインの一部として実行されるシェーダー プログラムを定義するために使用される構文とルール。 |
DirectX グラフィックス インターフェイス (DXGI) | GPU インターフェイスとシステム リソースの取得に使用される低レベル API のドキュメント。 |
Direct2D | 2D プリミティブの描画をサポートする Direct2D API のドキュメント。 通常、Direct2D は、カスタム ユーザー インターフェイス、画像処理とバッチ処理、単純なゲームに使用されます。 |
DirectWrite | カスタム フォントのレンダリングとスケーリングをサポートするDirectWrite API のドキュメント。 |
Windows Imaging Component (WIC) | さまざまなビットマップ イメージ形式の読み取りと管理に使用される WIC API のドキュメント。 |
テクスチャの DirectDraw サーフェス (DDS) | WIC API と組み合わせて 2D テクスチャの圧縮と圧縮解除に使用される DDS API のドキュメント。 |
DirectXMath | 3D リアルタイム グラフィックス開発に適した一連の種類と機能を備えた Direct3D をサポートする DirectXMath API のドキュメント。 (旧称 XNAMath.) |
DirectCompute | コンピューティングまたは汎用シェーダー機能に使用される DirectCompute API のドキュメント。 |
オーディオ、メディア、入力 API
トピック | 説明 |
---|---|
XAudio2 プログラミング ガイド | XAudio2 オーディオ API の概念ドキュメントの最上位ノード。 |
XAudio2 プログラミング リファレンス | XAudio2 オーディオ API リファレンス ドキュメントの最上位ノード。 |
XInput プログラミング ガイド | XInput コントローラー API の概念ドキュメントの最上位ノード。 |
XInput プログラミング リファレンス | XInput コントローラー API リファレンス ドキュメントの最上位ノード。 |
メディア ファンデーション | Media Foundation (MF) メディア (オーディオ/ビデオ) 再生 API ドキュメントの最上位ノード。 通常、MF はサウンドトラック再生用のゲームで使用されますが、XAudio2 は動的オーディオに使用されます。 |
DirectX 11 へのポート
トピック | 説明 |
---|---|
Direct3D 11 への移行 | DirectX 9 コードベースを DirectX 11 に移行するための基本的なガイダンス。 |
ゲーム用のデュアルユース コーディング手法 | 1 つのアプリケーションでの DirectX 9_* と DirectX 11_* の両方の機能レベルの開発に関する詳細なブログ投稿。 |
Direct3D 機能レベル 9 のシャドウ バッファーの実装 | DirectX 機能レベル 9_* でシャドウ マップを実装するためのガイダンス。 |
C++ を使用する
Windows プラットフォームで C++ を使用する古い手の場合は、少し違って見える場合があります。 ここでは、違いのハンドルを取得するのに役立つトピックへのポインターをいくつか示します。
注意
これらのトピックの一部は、C++/CX アプリケーションの保守に役立ちます。 ただし、新しいアプリケーションには C++/WinRT を使用することをお勧めします。 C++/WinRT は Windows ランタイム (WinRT) API の標準的な最新の C++17 言語プロジェクションで、ヘッダー ファイル ベースのライブラリとして実装され、最新の Windows API への最上位アクセス権を提供するように設計されています。
トピック | 説明 |
---|---|
Visual C++ 言語リファレンス (C++/CX) | C++ に関連するコンテンツにリンクする高レベルのページ。 |
クイック リファレンス (Windows ランタイムと Visual C++) | Visual C++ コンポーネント拡張機能 (C++/CX) の演算子とキーワードに関するクイック 情報を提供する表。 |
型システム (C++/CX) | C++/CX でサポートされている型の参照コンテンツ。 |
名前空間 (C++/CX) | Windows ストア アプリで使用できる C++固有の型を含む名前空間の参照コンテンツ。 |
トピック | 説明 |
---|---|
非同期プログラミング (DirectX と C++) | DirectX アプリとゲームの非同期およびマルチスレッド プログラミングについて説明します。 |
C++ での非同期プログラミング | タスク クラスを使用して非同期メソッドを使用する基本的な方法Windows ランタイム説明します。 |
task クラス (コンカレンシー ランタイム) | タスク クラスのリファレンス ドキュメント。 |
タスクの並列処理 (コンカレンシー ランタイム) | タスク クラスとその使用方法について詳しく説明します。 |
Windows C++ プログラミング用の追加の便利なライブラリ
トピック | 説明 |
---|---|
C++ 標準テンプレート ライブラリ | Windows ランタイム型は、標準テンプレート ライブラリの種類で適切に動作します。 ほとんどの C++ Windows ストア アプリでは、ABI 境界を除き、標準テンプレート ライブラリのコレクションとアルゴリズムが使用されます。 |
並列パターン ライブラリ | PPL には、CPU でのタスクの並列処理とデータ並列処理を簡略化するアルゴリズムと型が用意されています。 |
C++ Accelerated Massive Parallelism (C++ AMP) | C++ AMPは、DirectX 11 をサポートするビデオ カードの汎用データ並列処理のために GPU へのアクセスを提供します。 |
ブログとその他のリソース
トピック | 説明 |
---|---|
Windows および DirectX 用ゲームのブログ | 主要な DirectX 開発共同作成者からの定期的に更新されたブログと、DirectX 開発のためのすべての周りの優れたリソース。 |
Windows DirectX 開発者ブログ | Windows DirectX の公式ブログ。 |
Shawn Hargreave の DirectX ブログ) | よく知られた別の Windows DirectX 開発共同作成者からの開発ブログ。 |
DirectX ツール キット | DirectX Tool Kit (DxTK) には、メッシュの読み込み、サウンドの再生、およびその他の一般的な動作に役立つサポート API が多数含まれています。 |
DirectXTex テクスチャ処理ライブラリに関するページ | DirectX テクスチャ処理ライブラリ (DxTEX) 。テクスチャ処理と圧縮/圧縮解除のサポート API が含まれています。 |