EffectEdit サンプル

EffectEdit サンプル

説明

EffectEdit サンプルは、エフェクトを使った簡単な実験ができるツールを実装する。Effects は、オブジェクトをレンダリングする複数のテクニック、つまりレンダリング ステート、頂点シェーダ、ピクセル シェーダ、複数パスなどをパッケージ化するのに便利な方法である。EffectEdit を使うと、エフェクト ファイルをロードして編集し、エフェクトを使ってレンダリングしたオブジェクトを表示できる。エフェクトに対する変更は、レンダリングしたオブジェクトに直ちに反映される。

すべてのエフェクト ファイルに対して EffectEdit が有効に機能するとは限らないので注意すること。アプリケーションで多数のパラメータを設定しなければならないエフェクトに対しては、有効に機能しない可能性が高い。EffectEdit は、次に示す限られた数のパラメータのみを設定する。

  • WORLD セマンティクスを使うパラメータにはワールド行列を入れる。
  • VIEW セマンティクスを使うパラメータにはビュー行列を入れる。
  • PROJECTION セマンティクスを使うパラメータには射影行列を入れる。
  • WORLDVIEW セマンティクスを使うパラメータにはワールドビュー行列を入れる。
  • VIEWPROJECTION セマンティクスを使うパラメータにはビュー*射影行列を入れる。
  • WORLDVIEWPROJECTION セマンティクスを使うパラメータにはワールド*ビュー*射影行列を入れる。
  • NAME アノテーション付きのパラメータでは、指定した名前のテクスチャをロードする。
  • FUNCTION アノテーション付きのパラメータでは、指定した名前の手続き型テクスチャをロードし、それを使ってテクスチャを初期化する。
  • TARGET アノテーション付きのパラメータでは、指定した命令セットが手続き型テクスチャに使われる (デフォルトは "tx_1_0")。
  • WIDTH アノテーション付きのパラメータでは、テクスチャが指定した幅になる。
  • HEIGHT アノテーション付きのパラメータでは、テクスチャが指定した高さになる。
  • BCLR という整数のパラメータは、シーンのバックグラウンド カラーを定義するために使う。
  • BIMG という文字列のパラメータは、シーンのバックグラウンド イメージを定義するために使う。
  • XFile という文字列のパラメータは、レンダリングするオブジェクトが格納された .x ファイルをロードするために使う。

パス

ソース ファイル : (SDK ルート)\Samples\C++\Direct3D\EffectEdit

実行可能ファイル : (SDK ルート)\Samples\C++\Direct3D\Bin

ユーザーズ ガイド

ユーザー インターフェイスのウィンドウは 4 つのペインに分割されている。Ctrl+Tab を押して、これらのペインの間でキーボード フォーカスを変更できる。

[Effect file source code] は、現在のエフェクトのソース コードを表示するペインで、テキスト編集ができる。

[Effect compilation results] ペインには、現在のエフェクトのコンパイル結果が表示される。エラーをダブルクリックすると、ソース コード ペインのエラーがある行にジャンプできる。エラーがない場合は結果ペインに "Compilation successful!" と表示され、レンダリングしたオブジェクトが表示される。

[Rendered scene] ペインには、現在のエフェクトを使ってレンダリングしたオブジェクトが表示される。マウスの左ボタンを押してドラッグすると、オブジェクトを回転できる。右ボタンでドラッグするとオブジェクトを移動できる。ホイール ボタンをクリックするとオブジェクトをズームできる。

[Rendering options] ペインでは、オブジェクトのレンダリング方法に関するさまざまな設定を変更できる。[Reset Camera] ボタンは、カメラをデフォルトの位置と向きに戻るまで動かす。

プログラミング上の注意

EffectEdit は、Single Document モデルを使う Microsoft Foundation Classes (MFC) アプリケーションである。CEffectDoc はドキュメントを表すクラスであり、通常はエフェクトの内容のテキストが主である。CMainFrame は、このドキュメント上で使う 4 つの異なるビューの表示と、ビューを含むペインを制御するスプリッタ ウィンドウの表示を管理する。CTextView はテキスト エディタであり、CErrorsView はコンパイル結果である。COptionsView はレンダリング オプションであり、CRenderView はレンダリングした出力である。実際に Microsoft® Direct3D® および Direct3D コードを使っているのは CRenderView クラスのみである。CRenderView は CFormView および CD3DApplication の両方から派生しているため、FrameMove や InitDeviceObjects などの使い慣れたメソッドが使える。

このサンプルは、Microsoft DirectX® ソフトウェア開発キット (SDK) の他のサンプルと共有するサンプル フレームワーク コードを使う。すべての共通ヘッダーおよびソース コードは、(SDK ルート)\Samples\C++\Common にある。