シェーダ定義は CreateShaderFromProgID コマンドでインスタンス化でき、SIConnectShaderToCnxPoint コマンドで接続できます。ShaderDef.ProgID または ShaderDef::GetProgID は、次の 4 つの要素を使って Softimage 内でシェーダ定義を一意に識別します。
"ParserName.ClassName.MajorVersion.MinorVersion"
パーサ名: シェーダ定義を実装したパーサまたはプラグインの名前です。 シェーダ定義が作成された方法に応じて、次のいずれかのソースからパーサ名が決まります。
シェーダ定義のソース |
パーサ名 |
詳細 |
||
---|---|---|---|---|
SPDL ファイルからビルドされる Softimage ネイティブ シェーダ定義 |
Softimage |
ネイティブ SPDL パーサの名前。 たとえば、Phong の ProgID は "Softimage.material-phong.1.0"、クラウド テクスチャの ProgID は "Softimage.txt3d-cloud.1.0" となります。 |
||
Softimage が提供するリアルタイム シェーダ定義 |
CgFXParser |
Softimage が提供する .cgfx ファイルのパーサ名。 たとえば、ThinFilm.cgfx ファイルから生成されたシェーダ定義の ProgID は "CgFXParser.ThinFilm.1.0" となります。 |
HLSLParser |
Softimage が提供する .fx ファイルのパーサ名。 たとえば、cage.fx ファイルから生成されたシェーダ定義の ProgID は "HLSLParser.cage.1.0" となります。 |
カスタム シェーダ定義プラグインからビルドされたシェーダ定義 |
<plug-in_name> |
SIObject.Name または SIObject::PutName(XSLLoadPlugin コールバック内)を介してプラグインを登録するために使用される名前たとえば、MyPluginName で登録された MyShaderDefName シェーダ定義の ProgID は、"MyPluginName.MyShaderDefName.1.5" となります。 |
||
カスタム シェーダ パーサ プラグインによって解析されたカスタム ファイル形式からビルドされるシェーダ定義 |
<parser_name> |
PluginRegistrar.RegisterShaderLanguageParser または PluginRegistrar::RegisterShaderLanguageParser(XSILoadPlugin コールバック内)を介してシェーダ パーサを登録するために使われる名前たとえば、パーサ可能なファイルから読み取られ、ParseInfo コールバックで作成されたシェーダ定義の ProgID は、"MyParserName.MyDefParsedFromFile.2.0" となります。 |
Class Name: シェーダ定義プラグインの場合は、PluginRegistrar.RegisterShader または PluginRegistrar::RegisterShader(XSLLoadPlugin コールバック内)を介してシェーダ定義を登録するために使われる名前です。
メジャー バージョン番号: このシェーダ定義のバージョン番号のメジャー部分です。 たとえば、バージョン 2.6 のメジャー部分は 2 です。
マイナー バージョン番号: このシェーダ定義のバージョン番号のマイナー部分です。 たとえば、バージョン 2.6 のマイナー部分は 6 です。