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

 
 
 

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

XSILoadPluginコールバックでは、パーサ ClassName はPluginRegistrar.RegisterShaderLanguageParser または PluginRegistrar::RegisterShaderLanguageParser メソッドを使用して登録されます。パーサの 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 コンテキスト属性から返される)にアクセスします。これにより、次の処理が実行できます。

注:

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