リアルタイム シェーダ ウィザードでエフェクト ファイルを作成する

 
 
 

| 情報 | パラメータ | エントリ ファンクション | マトリクス

さまざまなサードパーティ製のプログラムを使用してエフェクト ファイルを作成できますが、Shader Code Editor から RTShaderWizard を使用すれば、Softimage 内で直接 .cgfx および .fx ファイルを簡単にコード化し、試用することができます。

このウィザードでは、そのまますぐに使用できるコードは生成されないため、頂点やフラグメント ファンクションと、エフェクトの描画手法を実行する必要があります。なお、シェーダ コード構成の大部分は、リアルタイム シェーダ ウィザードを使用するとすばやく配置することができます。

リアルタイムシェーダウィザードを表示するには(To display the realtime shader wizard):

  1. メイン メニューから[表示](View) [レンダリング/テクスチャ](Rendering/Texturing) [Shader Code Editor]を選択します。

  2. [新規シェーダ...](New Shader...)ボタンをクリックします。

  3. リアルタイム シェーダ ウィザードが開き、エフェクト ファイルのパラメータを設定することができます。

情報

シェーダ

名前(Name)

シェーダ名を指定します。

これは、エフェクト ファイルを Preset Manager およびノード メニューのシェーダ名や Render Tree のデフォルトのシェーダ ノード名としてディスク上に保存するための名前です。

Render Tree 内の実際のシェーダ ノードで名前を変更できますが、これを変更してもシステムに登録されたシェーダ名は変更されません。

カテゴリ

Preset Manager および[ノード]メニューに表示されるシェーダのカテゴリまたはサブカテゴリを指定します。テキストをスラッシュ記号(/)で区切って入力することにより、独自のカテゴリまたはサブカテゴリを定義できます。

Realtime@200/CgFX および Realtime@200/HLSL は、Softimage 提供のすべての CgFX および HLSL シェーダのデフォルト カテゴリおよびサブカテゴリです。必要に応じて、カスタム シェーダをデフォルト カテゴリに表示することを選択できます。

カテゴリを指定しない場合は、エフェクト シェーダが Preset Manager のデフォルトのリアルタイム カテゴリに表示されます。詳細については、「Preset Manager のエフェクト シェーダを分類する」を参照してください。

プラグイン

作成者(Author)

適切な名前を入力します。この文字列は、リアルタイム シェーダ ウィザードで作成した各エフェクト ファイルの開始で生成される定型コメントに追加されます。

// MyCgFXToon
// Initial code generated by Softimage Realtime Shader Wizard
// Executed Tue Dec 1 01:32:47 EST 2009 by baynej

コーディング言語(Coding Language)

生成する CgFX を選択し、*.cgfx ファイルを保存するか、生成する HLSL を選択して *.fx ファイルを保存します。

出力ディレクトリ(Ouput Directory)

指定した出力ディレクトリにエフェクト ファイルを保存します。エフェクト ファイルは、Application/cgfx または Application/hlsl フォルダ下のユーザ、ワークグループ、またはファクトリの場所に保存してください。テクスチャは、Application/fxtextures に保存してください。詳細については、「Preset Manager の既存のエフェクト ファイルをロードする」を参照してください。

パラメータ

UI パラメータ

これらのオプションでは、「調整可能」なパラメータ宣言を作成できます。これらの値は、最終的に作成されたエフェクト シェーダのプロパティ エディタで自動的に生成されるユーザ インタフェース コントロールで変更できます。詳細については、「エフェクト パラメータ用のユーザ インタフェースの作成」を参照してください。

通常のパラメータ宣言は次のとおりです。

タイプ名 <annotation_list> = value ;

名前(Name)

変数名を宣言します。

タイプ(Type)

変数のデータ型を設定します。各データ型には、値を入力するために必要なコントロールが表示されます。これらのコントロールは、最終的に作成されたエフェクト シェーダのプロパティ エディタで自動的に生成され、表示されます。

  • [bool]: 0と1(オン/オフまたはTrue/False)に相当する入力を作成します。

  • [int]: 単一の整数(2、73、300など)の入力を作成します。

  • [浮動小数](float): 単一の浮動小数値の入力を作成します。

  • [float2]: 2 つの浮動小数値の X および Y の入力を作成します。

  • [float3]: 3 つの浮動小数値の X、Y、および Z の入力を作成します。

  • [float4]: 4 つの浮動小数値の X、Y、Z、およびWの入力を作成します。

  • [Color3]: 赤、緑、および青のチャンネルの値を指定できる float3(RGB)カラーウィジットを作成します。

  • [Color4]: 赤、緑、青、およびアルファチャンネルの値を指定できる float4(RGBA)カラーウィジットを作成します。

  • [texture2d]: 指定したディスク上のテクスチャイメージを参照する 2D テクスチャおよびサンプラコードを作成します。

  • [texture3d]: 指定したディスク上の DDS ボリュームテクスチャを参照する 3D テクスチャおよびサンプラコードを作成します。

  • [textureCUBE]: 指定したディスク上のテクスチャイメージを参照するキュービックテクスチャおよびサンプラコードを作成します。垂直および水平のストリップとクロスは、イメージの高さと幅の比率に応じて自動的に検出されます。

どの場合も、テクスチャは、Application/fxtextures フォルダ下のユーザ、ワークグループ、またはファクトリの場所に保存してください。「 ディスク上のイメージのテクスチャ クリップ コントロール」を参照してください。

UI 名(UI Name)

最終的に作成されたエフェクト シェーダのプロパティ エディタに表示されるユーザ インタフェース コントロールのラベルを指定します。

UI 最小値(UI Min)

パラメータ範囲の最小値を設定します。整数および浮動小数のデータ型のみが使用できます。

UI 最大値(UI Max)

パラメータ範囲の最大値を設定します。整数および浮動小数のデータ型のみが使用できます。

デフォルト値(Default Value)

パラメータ範囲の初期値を設定します。

追加(Add)

UI パラメータ宣言をパラメータ リストにコミットします。このリスト内のエントリは、コードを生成するときに使用されます。

選択を削除(Remove Selected)

選択した UI パラメータ宣言をパラメータ リストから削除します。

グリッドの各行は、UI パラメータ宣言を示します。行を選択するには、行の先頭の空白のセルをクリックします。選択した行が緑色でハイライト表示されます。行を選択するには、次のいずれかの操作を実行することもできます。

  • 1 つのパラメータ宣言(行)を選択してクリックすると、その他の選択は解除されます。

  • [Ctrl]キーを押しながらクリックして、パラメータ宣言(行)を選択項目に追加します。

  • [Shift]キーを押しながらクリックして、パラメータ宣言(行)の範囲を選択項目に追加できます。

セルの値を編集するには、セル内(行の先頭にある空白セル以外)をクリックします。

セマンティック パラメータ

これらのオプションでは、Softimage オブジェクトをバインドするためのセマンティックを指定するときに、セマンティック パラメータ宣言を作成できます。

名前(Name)

変数名を宣言します。

タイプ(Type)

Softimage オブジェクト(カメラおよびライト バインディング セマンティックを含む)をバインドするためのセマンティックを指定します。

追加(Add)

セマンティック パラメータ宣言をパラメータ リストに追加します。このリスト内のエントリは、エフェクト コードを生成するときに使用されます。

選択を削除(Remove Selected)

選択したセマンティック パラメータ宣言をパラメータ リストから削除します。

グリッドの各行は、セマンティック パラメータ宣言を示します。行を選択するには、行の先頭の空白のセルをクリックします。選択した行が緑色でハイライト表示されます。行を選択するには、次のいずれかの操作を実行することもできます。

  • 1 つのパラメータ宣言(行)を選択してクリックすると、その他の選択は解除されます。

  • [Ctrl]キーを押しながらクリックして、パラメータ宣言(行)を選択項目に追加します。

  • [Shift]キーを押しながらクリックして、パラメータ宣言(行)の範囲を選択項目に追加できます。

セルの値を編集するには、セル内(行の先頭にある空白セル以外)をクリックします。

エントリ ファンクション

頂点シェーダ

シェーディングされたオブジェクトのすべての頂点ごとに、頂点シェーダが実行されます。頂点シェーダは、入力パラメータを受け取って処理し、ピクセル シェーダに送る出力データを生成します。

ファンクション名(Function Name)

頂点シェーダのファンクション エントリ ポイントを示します。これは、このシェーダがアクティブであるときに現在のプリミティブの各頂点で呼び出されるファンクションです。ワールド空間からクリップ空間へ、または頂点ごとのライティングの変換など、頂点ごとに実行される計算に使用できます。

プロファイル(Profile)

頂点プログラムのプロファイルを選択します。コンパイル プロファイルによって、オプションの言語機能をサポートするかどうかが指定されます。

入力データ(Input Data)

頂点入力データに使用するハードウェア セマンティックを指定します。

頂点属性コントロールは、COLOR[n]、TEXCOORD[n]、TANGENT、および BINORMAL などのセマンティックにバインドされる、各頂点シェーダ変数のエフェクト シェーダのプロパティ エディタで自動的に作成されます。詳細については、「頂点シェーダを入力するためのユーザ インタフェースを作成する」を参照してください。

出力データ(Output Data)

頂点出力データに使用するハードウェア セマンティックを指定します。

フラグメント シェーダ

ピクセル シェーダ([フラグメント](fragment) シェーダとも呼ぶ)は、オブジェクトの生成されたすべてのピクセルに対して実行されます。ピクセル シェーダは、頂点シェーダから入力パラメータを受け取って処理し、GPU のブレンディング コアに送る出力データを生成してから、フレーム バッファに送ります。

ファンクション名(Function Name)

ピクセル シェーダのエントリ ポイントを示します。これは、このシェーダがアクティブであるときに現在のプリミティブの各ラスタ ピクセルで呼び出されるファンクションです。これは、テクスチャ マッピングやピクセルごとのライティングなど、ピクセルごとの計算に使用されます。

プロファイル(Profile)

フラグメント プログラムのプロファイルを選択します。コンパイル プロファイルによって、オプションの言語機能をサポートするかどうかが指定されます。

テクニック

名前(Name)

コンパイル ステートメントを含む単一パスによるテクニックの名前とコード構成を設定します。

テクニックを追加したり、複数パスによるテクニックを作成するには、コードを生成した後に、それを追加する必要があります。

独自のテクニックを選択できるドロップダウン リストは、最終的に作成されたエフェクト シェーダのプロパティ エディタに自動的に作成され、表示されます。

マトリクス

これらのオプションでは、マトリクス変換宣言を作成できます。宣言がいったんバインドされると、これらのパラメータを「調整」することはできません。

名前(Name)

変数名を宣言します。

タイプ(Type)

変数にバインドするマトリクス変換セマンティックを指定します。

追加(Add)

マトリクス変換宣言をパラメータ リストにコミットします。このリスト内のエントリは、コードを生成するときに使用されます。

選択を削除(Remove Selected)

選択したマトリクス変換宣言をパラメータ リストから削除します。

グリッドの各行は、マトリクス変換宣言を示します。行を選択するには、行の先頭の空白のセルをクリックします。選択した行が緑色でハイライト表示されます。行を選択するには、次のいずれかの操作を実行することもできます。

  • 1 つのマトリクス変換宣言(行)をクリックして選択すると、その他の選択は解除されます。

  • [Crtl]キーを押しながらクリックして、マトリクス変換宣言(行)を選択項目に追加します。

  • [Shift]キーを押しながらクリックして、マトリクス変換宣言(行)の範囲を選択項目に追加できます。

セルの値を編集するには、セル内(行の先頭にある空白セル以外)をクリックします。