共用方式為


全域參數

每個 DXSAS 相容效果都必須以全域語意定義單一全域效果參數, 全域參數也可以使用一或多個選擇性注釋。 語法如下所示:

int VariableName : SasGlobal
<
    SasVersion 
    [OptionalAnnotations]
>;

其中:

SasVersion

唯一必要的注釋是 SasVersion。 其宣告如下:

int3 SasVersion = { major, minor, revision };

其中:

  • major 表示 DXSAS 主要版本。 DXSAS 的主要版本可以包含已定義的語意和批註集的掃掠變更。 您可以新增和移除語意和批註,而且一般而言,不保證與舊版的回溯相容性。
  • minor 表示 SAS 次要版本。 DXSAS 的次要版本可以包含新增語意或注釋。 此外,語意和批註可能會在 DXSAS 標準中標示為已被取代。 主應用程式仍然必須支援已被取代的語意和批註,但在使用這類語意或注釋時,可能會發出警告診斷。 次要版本與舊版回溯相容。
  • 修訂表示 DXSAS 修訂。 DXSAS 的修訂只以修正錯誤、移除模棱兩可,以及精簡標準的方法存在。 標準的修訂與舊版回溯相容。

目前的版本是 1.0.0。 這個批註沒有預設值。

SasEffectAuthor

這會宣告建立效果的人員。 其宣告如下:

string SasEffectAuthor = "value";

其中 value 是識別效果作者的字串。 預設為空字串。

SasEffectAuthoringSoftware

這會宣告撰寫效果的軟體。 其宣告如下:

string SasEffectAuthoringSoftware = "value";

其中 value 是識別效果撰寫軟體的字串。 預設為空字串。

SasEffectCategory

這會宣告效果類別。 其宣告如下:

string SasEffectCategory = "value";

其中 value 是識別效果類別的字串。 預設為空字串。 類別會使用正斜線做為分隔符號,透過類似路徑的值來表示。 效果只能屬於一個類別,因為單一 SasEffectCategory 值內的多個路徑中沒有表示包含的語法。 主應用程式不會將此批註的值視為區分大小寫。

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 SasEffectAuthor = "Mike's Shader";
  string SasEffectAuthoringSoftware = "fxe 2.5.4";
  string SasEffectCategory = "/surface/procedural/wood";
  string SasEffectCompany = "Microsoft Corporation";
  string SasEffectDescription = "Renders an iridescent surface.";
  string SasEffectHelp = "For more information, see https://somelocation/skin.htm";    
  string SasEffectRevision = "$Revision$";  
>;

DirectX 標準注釋和語意參考