全局参数
每个符合 DXSAS 的效果都必须至少定义一个具有全局语义的全局效果参数。 全局参数还可以使用一个或多个可选注释。 语法如下所示:
int VariableName : SasGlobal
<
SasVersion
[OptionalAnnotations]
>;
其中:
- VariableName 是用户指定的 ASCII 文本字符串变量名称。
- SasGlobal 是语义关键字 (keyword) ,用于将此参数标识为全局 DXSAS 参数。
- SasVersion 是唯一必需的注释。
- OptionalAnnotations 可以包括以下内容:
SasVersion
唯一必需的注释是 SasVersion。 声明如下:
int3 SasVersion = { major, minor, revision };
其中:
- major 表示 DXSAS 主要版本。 DXSAS 的主要版本可以包含对定义的语义和注释集的彻底更改。 可以添加和删除语义和注释,并且通常不能保证与以前版本的向后兼容性。
- minor 指示 SAS 次要版本。 DXSAS 的次要版本可以包括添加新语义或注释。 此外,在 DXSAS 标准中,语义和注释可能标记为已弃用。 主机应用程序仍必须支持已弃用的语义和注释,但在使用此类语义或批注时可能会发出警告诊断。 次要版本与以前的版本向后兼容。
- revision 指示 DXSAS 修订版。 DXSAS 的修订只是为了修复 bug、消除歧义和优化标准。 对标准的修订与以前的版本向后兼容。
当前版本为 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
此批注允许工具和用户记录关联效果文件的修订号。 例如,用户可以在此批注的值中插入适当的关键字,以在其喜欢的修订控制软件中调用关键字 (keyword) 替换。 声明如下:
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$";
>;
相关主题