グローバル パラメーター
DXSAS に準拠した各エフェクトでは、最低限、グローバル セマンティクスで 1 つのグローバル エフェクト パラメーターを定義する必要があります。グローバル パラメーターは、オプションで 1 つ以上のアノテーションを使用することもできます。構文は、次のとおりです。
int VariableName : SasGlobal
<
SasVersion
[OptionalAnnotations]
>;
この場合
- VariableName は、ユーザーで指定する ASCII テキスト文字列の変数名です。
- SasGlobal は、このパラメーターがグローバル DXSAS パラメーターであることを示すセマンティクス キーワードです。
- SasVersion は、唯一の必須のアノテーションです。
- OptionalAnnotations には、次のようなものがあります。
- SasEffectAuthor
- SasEffectAuthoringSoftware
- SasEffectCategory
- SasEffectCompany
- SasEffectDescription
- SasEffectHelp
- SasEffectRevision
SasVersion
SasVersion は、唯一の必須のアノテーションです。これは、次のように宣言します。
int3 SasVersion = { major, minor, revision };
この場合
- major は、DXSAS のメジャー リリースを示します。DXSAS のメジャー リリースでは、定義するセマンティクスとアノテーションのセットに大きな変更がある場合があります。セマンティクスとアノテーションは追加および削除される場合があり、一般的に、前のリリースとの下位互換は保証されません。
- minor は SAS のマイナー リリースを示します。DXSAS のマイナー リリースには、新しいセマンティクスやアノテーションの追加がある場合があります。また、セマンティクスとアノテーションは DXSAS 標準から非推奨とされる場合もあります。非推奨のセマンティクスおよびアノテーションは、ホスト アプリケーションでサポートを続ける必要がありますが、そのようなセマンティクスやアノテーションが使用されると警告が表示される場合があります。マイナー リリースは、前のリリースと下位互換があります。
- revision は、DXSAS のリビジョンを示します。DXSAS のリビジョンは、バグ修正、あいまいさの削除、標準の精錬化のために存在します。標準のリビジョンはは、前のリリースと下位互換があります。
現在のバージョンは 1.0.0 です。このアノテーションには既定値はありません。
SasEffectAuthor
これにより、エフェクトの作成者を宣言します。これは、次のように宣言します。
string SasEffectAuthor = "value";
ここで、value はエフェクトの作成者を示す文字列です。既定は空の文字列です。
SasEffectAuthoringSoftware
これにより、エフェクトがオーサリングされるソフトウェアを宣言します。これは、次のように宣言します。
string SasEffectAuthoringSoftware = "value";
ここで、value はエフェクトがオーサリングされるソフトウェアを示す文字列です。既定は空の文字列です。
SasEffectCategory
これにより、エフェクトのカテゴリを宣言します。これは、次のように宣言します。
string SasEffectCategory = "value";
ここで、value はエフェクトのカテゴリを示す文字列です。既定は空の文字列です。カテゴリは、区切り文字にスラッシュ (/) を使用して、パスのように値を表します。1 つの SasEffectCategory の値の中に複数のパスで組み込みを表す構文がないので、エフェクトは 1 つのカテゴリにしか属することができません。このアノテーションの値は、ホスト アプリケーションでは大文字/小文字の区別なく処理されます。
SasEffectCompany
これにより、エフェクトを作成した会社を宣言します。これは、次のように宣言します。
string SasEffectCompany = "value";
ここで、value はエフェクトを所有する会社名を示す文字列です。既定は空の文字列です。
SasEffectDescription
これは、エフェクトの説明です。これは、次のように宣言します。
string SasEffectDescription = "value";
ここで、value はエフェクトの説明を示す文字列です。既定は空の文字列です。
SasEffectHelp
これは、ユーザーが関連するエフェクトにヘルプを要求したときに表示できるヘルプの文字列です。これは、次のように宣言します。
string SasEffectHelp = "value";
ここで、value はユーザーがヘルプを要求したときに表示できる文字列です。既定は空の文字列です。
SasEffectRevision
このアノテーションにより、ツールおよびユーザーは関連するエフェクト ファイルのリビジョン番号を記録できます。たとえば、ユーザーはこのアノテーションの値に適切なキーワードを挿入して、任意のリビジョン管理ソフトウェアでキーワード置換を呼び出すことができます。これは、次のように宣言します。
string SasEffectRevision = "value";
ここで、value はエフェクトのリビジョンを示す文字列です。既定は空の文字列です。
例
次に、単一の必須アノテーションのみを使用する例を示します。
int gp : SasGlobal
<
int3 SasVersion = {1,0,0};
>;
次に、必須アノテーションといくつかのオプションのアノテーションを使用する例を示します。
int gp : SasGlobal
<
int3 SasVersion = {1,0,0};
string SasEffectAuthoring = "Mike's Shader";
string SasEffectAuthoringSoftware = "fxe 2.5.4";
string SasEffectCategory = "/surface/procedural/wood";
string SasEffectCompany = "Microsoft Corporation";
string SasEffectDescription = "Renders an irridescent surface.";
string SasEffectHelp = "For more information, see http://somelocation/skin.htm";
string SasEffectRevision = "$Revision$";
>;