シェーダ言語パーサ定義を作成する

 
 
 

カスタム シェーダ言語パーサでは、特定のファイル形式に対するシェーダ定義を作成する方法を Softimage に指示できます。 一般に、これは .cgfx、.mi、.sl などの確立されたファイル形式を読み込むために使用できますが、レンダラに対してシェーダ定義をバッチ作成できる軽量のカスタム ファイル形式を作成するために使用することもできます。

XSILoadPlugin コールバックでは、PluginRegistrar.RegisterShaderLanguageParser または PluginRegistrar::RegisterShaderLanguageParser メソッドを使用して、パーサ ClassName が登録されます。パーサの ClassName は、シェーダ定義の ClassName、Major および Minor 情報(ParseInfo コールバックで設定)とともに ProgID を定義します。これにより、Softimage でシェーダ定義が個別に識別されます。詳細については、「シェーダ定義のインスタンス化と ProgID」を参照してください。

シェーダ パーサ プラグインが Softimage にロードされると、QueryParserSettings コールバックが、探すフォルダの場所(Folders 属性に設定)と、検索するファイル拡張子(FileTypes 属性に設定)を Softimage に伝えます。これらの設定に基づいて、Softimage は指定された場所で指定されたファイル拡張子を持つ各ファイルの解析を開始します。

ファイルはパーサされるたびに、ParseInfo コールバックが始動します。ParseInfo コールバックは、ProgID を作成するために使用する ClassName、Major および Minor バージョン番号を定義する処理に関与します。 また、シェーダ定義の名前を Preset Manager に追加する処理にも関与します。 新しいシェーダの定義が Preset Manager に表示される方法および場所を示すには、コンテキスト属性を使用して ShaderDef.DisplayName または ShaderDef::PutDisplayName のいずれか、および ShaderDef.Category または ShaderDef::PutCategory のいずれかを指定します。詳細については、「Preset Manager の登録」を参照してください。

最後に、シェーダが例示されたときに、 パーサ コールバックが始動します。Parse コールバックを使用すると、ShaderDef または ShaderDef オブジェクト(Definition コンテキスト属性から返される)にアクセスして、次の操作を実行できます。

注:

先にコードの例を確認したい場合は、サンプルを参照してください。