プログラミング実践 ~第2回~

Posted by kawatani Wed, 08 Aug 2007 03:19:00 GMT

私の担当では、引き続き、ゲームプログラミングを通じてプログラムを学習しようという回で、その2回目になります。今回も、主に、DirectXを用いたグラフィックス処理の部分について書いていくことにします。

前回の予告にもあった通り、今回は、開発環境の準備とDirectXGraphicsの基本的な仕組みについてです。基本的な仕組みについては、次回と2回くらいに分ける予定です。

DirectX SDKの入手・インストール

DirectXを利用するプログラムの作成には、DirectX SDKという、ライブラリなどがひとまとまりになった開発キットをインストールしなければなりません。これは、Microsoft社のDirectX開発者向けWebサイト(こちら)などからフリーでダウンロードすることが可能です。そして、画面の支持に従い、インストール作業を進め、完了させます。

プロジェクト作成、コンパイル

次に、DirectX SDKに含まれるインクルードファイルとライブラリファイルが格納されているディレクトリをVisual C++.NETへ登録します。これは、メニューから、[ツール]→[オプション]を選択し、左ウィンドウの[プロジェクト]→[VC++ディレクトリ]を選択します。そして、[ディレクトリを表示するプロジェクト]から[インクルードファイル]を選んで、リストにインクルードファイルが格納されているディレクトリ名を記述します。ライブラリファイルも同様にします。

そしてプロジェクトの作成を行います。今回はテキスト通り、Win32プロジェクトを選択することにします。プロジェクトの設定ですが、まずは、左のリストの[全般]の[プロジェクトの既定値]-[構成の種類]を[アプリケーション]にします。そして、次の7つのライブラリファイルをリンクするように、左のリストの[リンカ]-[入力]を選び、[追加の依存ファイル]にそれを加えます。

  • dsound.lib
  • dinput8.lib
  • dxerr9.lib
  • d3dx9.lib
  • d3d9.lib
  • d3dxof.lib
  • dxguid.lib

そして、テキストのサンプルプログラムをコンパイルしようとしたところ、以下の類のエラーが数箇所から出ました。

1>c:\documents and settings\hirokazu\my documents\visual studio 2005\projects\directx_test\directx_test\window.cpp(57) : error C2440: '初期化中' : 'char [17]' から 'LPCWSTR' に変換できません。
1>        指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。

これは、ソリューションのプロパティにおける文字セットの設定が関係していて、文字セットを設定なし、あるいは、マルチバイト文字セットを使用するに変更することによって、正常にコンパイルできます。

DirectXGraphicsの基本的な仕組み①

今回では、大まかな仕組みだけを述べて、次回以降にさらに踏み込んで書いていくことにします。

Windows用アプリケーションでは、Windowsは、そのアプリケーションを、ウィンドウという単位で管理しています。これはフルスクリーンモードにおいても同様で、必ずウィンドウの生成処理が伴います。DirectXGraphicsプログラムでは、次の図のような構成になるのが一般的です。

composition_of_dxg
図:DirectXGraphicsを使うプログラムの構成

ただし、使用しているテキストでは、以下のようなクラスによって実装しているので、次回以降では、これらのクラスが行う処理について、詳しく述べていきたいと思います。

Windows.cpp

  • ウィンドウ生成
  • メッセージループ

Renderクラス

  • DirectXGraphicsの初期化
  • シーン描画の前処理/後処理

Sceneクラス

  • 3次元シーンの構築
  • シーンの描画

次回予告

次回は、先ほど述べたように、上記したクラスの処理の詳細について書いていきます。

Posted in  | Tags ,