UI 批注

使用此批注将效果参数与主机环境中的 UI 控件相关联。 这将允许用户通过主机应用程序以交互方式控制效果参数。

DXSAS 根据数据模型和基本行为定义了一组标准控件,效果作者可以从主机应用程序获得这些控件。 控件注释的使用方式如下:

string SasUiControl = "ControlType";

其中

ControlType

是下列值之一:

ControlType 说明 内部数据类型 控件属性批注
不应显示任何控件。 请注意,如果 SasUiVisible 为 True 且控件类型为 None 以外的任何类型,则控件可见。 不适用 不适用
任意 这意味着不请求任何特殊控制。 提供的控件是应用程序定义行为的结果。 不适用 不适用
ColorPicker 将颜色值表示为颜色样本。 该值打包到关联向量的 XYZ 组件中。 关联向量的 W 分量始终设置为 1。 floatN ,其中 N 为 1 到 4(含 1 到 4)。 SasUiEnum
方向 方向向量。 floatN ,其中 N 为 2 到 4(含 2 到 4)。
FilePicker 允许用户浏览和选择文件的对话框。 string
ListPicker 用户可以从中选择一个条目的字符串值列表。 这些值是从 SasUiEnum 注释生成的。 字符串数组以及包含所选字符串值的索引的整数值。 SasUiEnum
数值 一组数字输入控件 (,例如文本框) 。 floatMxN ,其中 MN 为 1 到 4(含 1 到 4)。 SasUiMinSasUiMaxSasUiStride
滑块 一组滑块。 floatMxN ,其中 MN 为 1 到 4(含 1 到 4) SasUiMinSasUiMaxSasUiStepsSasUiStepsPower
String 用于编辑字符串内容的文本框。 string

 

如果内部数据类型与关联参数的类型不同,则当数据从主机应用程序参数传输到效果参数时,将发生强制转换。

默认值为字符串“None”。

UI 通用属性

SasUiDescription

使用此批注指定用于描述工具的字符串。 这可用于 UI 元素,例如工具提示。

string SasUiDescription = "descriptive string";

例如:

float3 UpNormal
<
  string SasUiDescription = "The normalized up vector";
>;

默认值为空字符串。

SasUiLabel

使用此批注指定用于标记任何 UI 控件的字符串。

string SasUiLabel = "some label;

以下是示例:

float3 UpNormal
<
  string SasUiLabel = "Normal that points up.";
>;

默认值为空字符串。

SasUiVisible

使用此批注指定是否应向用户显示关联的参数。

bool SasUiVisible = false;

如果设置为 True,则主机应用程序应显示用于编辑批注效果参数的 UI 控件。 如果为 false,则主机应用程序中不显示任何 UI。

以下是示例:

float3 UpNormal
<
  string SasUiVisible = false;
>;

默认值为 True。

UI 控件属性

控件属性注释是有助于确定特定控件如何操作的其他修饰符。

SasUiEnum

此批注允许限制控件的值范围。 批注包含用逗号分隔的值的字符串。

默认值为空字符串。

SasUiMax

此批注指定关联参数的最大值。 它只能与数字类型的参数相关联。 参数的最大值实际上将按以下方式计算:

MaxValue = min(FLT_MAX, PARAMETER_TYPE_MAX);

PARAMETER_TYPE_MAX是关联参数所使用的类型的最大值。 这意味着参数的值(考虑到 SasUiMax 注释)的计算方式如下:

ParameterValue = min(NewParameterValue, MaxValue);

默认值为 math.h 中定义的FLT_MAX。

SasUiMin

此批注指定关联参数的最小值。 它只能与任何数字类型的参数相关联。 参数的最小值实际上将按以下方式计算:

MinValue = max(-FLT_MAX, PARAMETER_TYPE_MIN);

PARAMETER_TYPE_MIN是关联参数所使用的类型的最小值。 这意味着参数的值(考虑到 SasUiMin 注释)的计算方式如下:

ParameterValue = max(NewParameterValue, MinValue);

默认值为 -FLT_MAX,如 Math.h 中定义。

SasUiSteps

此批注指定在递增或递减关联的参数值时可以使用的步骤数。 注释仅在数字类型参数上有意义。 零指定主机应用程序将选择合理数量的步骤。

默认值为 0。

SasUiStepsPower

此注释指定幂函数中的指数,其范围为 [0.0f, 1.0f]。 主机应用程序在计算参数值时必须实现以下方法:

ParameterValue = ((SasUiMax - SasUiMin) x pow(UI_VALUE, SasUiStepsPower) + SasUiMin

默认值为 1.0f。

SasUiStride

此注释指定递增或递减此值时应使用的增量。 与 SasUiSteps 不同, SasUiStride 在微调器控件中很有用,例如,数据不受限制,用户宁愿按步长递增参数值,而不是按预定义的步数递增。 主机应用程序应根据 SasUiStride 值) 的控制行为递增 (或递减,如下所示:

ParameterValue = ParameterValue +/- SasUiStride

默认值为 1.0f。

DirectX 标准注释和语义参考