シェーダ定義ウィザードの主な目的は、ハードウェアシェーダ(C++ リアルタイムシェーダ)を Softimage に定義および実装するのに必要なコードを生成することです。シェーダ定義ウィザードでは基本的なコード構造が使用されており、即座にシェーダを統合できます。
シェーダ定義ウィザードでは、mental ray シェーダの基本定義コードを生成することもできます。ただし、mental ray コールバックコードは生成されません。コールバックの生成には mental ray シェーダウィザードが適しています。
シェーダ定義ウィザードの表示
-
を選択します。
-
をクリックします。
-
を選択してウィザードを開きます。
プラグイン
|
生成するプラグインファイルの名前。プラグインにはシェーダ定義の生成に必要なコードが含まれます。この名前はプラグインオブジェクト名を設定するときや、デフォルトのハードウェアシェーダ.vcprojファイルを指定するときにも使用されます。
|
|
シェーダプラグインを作成するユーザの名前。
|
|
シェーダ定義プラグインの作成に使用する言語。サポートされている言語は、Python、C++、JScript、VBScript です。 この言語はシェーダの実装コードには影響しません。実装コードは常に C++ で生成されます。
|
|
すべてのファイルが生成されるディレクトリの名前。デフォルトは現在のユーザディレクトリです。
|
定義
ここではシェーダ定義とレンダラ情報を指定します。便利なプリセットボタンを使用して、ハードウェアシェーダコードと mental ray シェーダコードを生成するウィザードを簡単に設定できます。
ハードウェアシェーダプリセット
をクリックすると、レンダラ登録とハードウェアシェーダコールバックの生成に必要な情報を使用してウィザードを設定できます。ハードウェアシェーダに必須の設定は次のとおりです。
重要:上記の情報が指定されていない場合や正しく設定されていない場合は、生成されるハードウェアシェーダは正しく動作しません。
注:コードパスとしてのプラグイン名はオプションであり、任意の名前に置き換えることができます。
mental rayシェーダプリセット
をクリックすると、mental ray シェーダのレンダラ登録の生成に必要な情報を使用してウィザードを設定できます。これらの設定は次のとおりです。
-
Mental Ray
-
{LIBS}/xsibase.{EXT}
注:xsibase は必須ではなく、他の任意の mental ray シェーダに置き換えることができます。
シェーダ
|
Softimage でシェーダを個別に識別するためのシェーダ名。
|
|
シェーダのメジャーバージョン番号。
|
|
シェーダのマイナーバージョン番号。
|
|
シェーダファミリのタイプ。
|
カテゴリ
|
シェーダカテゴリの名前。このカテゴリはPreset Managerでシェーダがリストされる場所で識別のために使用されます。
|
|
Render Tree でシェーダを識別するために使用される UI 名。
|
|
この名前はユーザ定義の属性を識別するために使用されます。
|
|
ユーザ定義のシェーダ属性の属性値。
|
レンダラ
|
シェーダに関連付けられているレンダラの名前。使用できるレンダラは、OpenGL、DirectX、Mental Ray です。ハードウェアシェーダは通常 OpenGL または DirectX で設定されます。
|
|
シェーダとレンダラをマップするために使用されるユーザ定義の名前。
|
|
このレンダラのシェーダライブラリの名前。ハードウェアシェーダの場合、この名前は生成するシェーダライブラリファイル名に使用されます。mental ray シェーダの場合、この名前は既存の mental ray ライブラリを参照します。
|
オプション
|
レンダラのユーザ定義のオプション名。
|
|
指定されたレンダラオプションの値。
|
|
新しいレンダラオプションをレンダラオプショングリッドに追加します。
|
|
選択したオプションをレンダラオプショングリッドから削除します。
|
パラメータ
このタブでは新しいシェーダ定義の入力パラメータと出力パラメータを設定します。
Input Parameters(入力パラメータ)
|
パラメータの名前。
|
|
パラメータのデータタイプ。
|
|
パラメータの説明。Render Tree でツールチップとして使用されます。
|
|
パラメータをアニメーション可能として設定します。
|
|
パラメータをインスペクト可能として設定します。
|
|
パラメータをテクスチャ設定可能として設定します。
|
|
パラメータのデフォルト値。デフォルト値は以下のパラメータタイプでのみ使用可能です。
-
siShaderDataTypeBoolean
-
siShaderDataTypeInteger
-
siShaderDataTypeScalar
|
|
パラメータの最小値と最大値。
|
|
パラメータの UI スライダでの最小値と最大値。
|
|
このパラメータのユーザ定義の属性。この新しい属性は組み込み属性名リストから選択することもできます。
|
|
指定されたパラメータ属性に関連付けられる値。
|
|
新しいパラメータを上記の値でパラメータグリッドに追加します。
|
|
選択したパラメータをパラメータグリッドから削除します。
|
Output Parameters(出力パラメータ)
|
パラメータの名前。
|
|
パラメータのデータタイプ。
|
|
パラメータの説明。ツールチップとして使用されます。
|
|
パラメータをメイン出力パラメータとして識別します。
|
|
指定されたパラメータ属性に関連付けられる値。
|
|
新しいパラメータを上記の値でパラメータグリッドに追加します。
|
|
選択したパラメータをパラメータグリッドから削除します。
|
コードの生成
をクリックすると、ウィザードの設定に基づいてコードが生成されます。新しいシェーダは自動的に Render Tree に表示されます。ハードウェア シェーダを Render Tree で使用可能にするには、まずコンパイルする必要があります。
ウィザードではシェーダ定義とレンダラのプラグイン登録コードが生成されます。以下のファイルが生成されます。
-
シェーダ定義プラグインファイル
-
プラグイン .vcproj ファイル(C++ のみ)
-
ハードウェアシェーダC++ファイル(ハードウェアシェーダの場合のみ)
-
ハードウェア シェーダ .vcproj(または Linux の場合は GNUMakefile)
ハードウェアシェーダの場合は、シェーダ定義プラグインコードにスクリプト言語を選択すると、ハードウェアシェーダ C++ ファイル用に別個の .vcproj ファイルが生成されます。しかし、プラグイン言語として C++ を選択すると、ハードウェアシェーダC++ファイルはプラグイン
.vcproj ファイルに追加され、ハードウェアシェーダ用の別個の .vcproj は生成されません。
.vcprojの出力設定は以下の標準プラグインの場所に設定されます。
<user folder>¥Application¥Plugins¥bin¥<platform folder>
たとえば、次のように記述します。
C:¥Users¥fred¥Autodesk¥Softimage_2011¥Application¥Plugins¥bin¥nt-x86-64
シェーダ定義用に生成されるコールバックは次のとおりです。
ハードウェアシェーダ用に生成されるコールバックは次のとおりです。
-
<シンボル名>_<メジャーバージョン>_<マイナーバージョン>_<レンダラ名>_Init
-
<シンボル名>_<メジャーバージョン>_<マイナーバージョン>_<レンダラ名>_Execute
-
<シンボル名>_<メジャーバージョン>_<マイナーバージョン>_<レンダラ名>_Term
-
<シンボル名>_<メジャーバージョン>_<マイナーバージョン>_<レンダラ名>_GetAttributeList
いくつかの例を挙げます。
注:mental rayシェーダの場合はシェーダコールバックコードは生成されません。