共用方式為


UI 註釋

使用此批注將效果參數與主環境中的 UI 控件產生關聯。 這可讓使用者透過主應用程式以互動方式控制效果參數。

DXSAS 定義一組標準控件,以數據模型和影響作者可從主應用程式預期的基本行為。 控制項批注會像這樣使用:

string SasUiControl = "ControlType";

哪裡

ControlType

是下列其中一項:

ControlType 描述 內部數據類型 Control 屬性註釋
沒有 不應顯示任何控件。 請注意,如果 SasUiVisible 為 True,且控件類型為 None 以外的任何類型,則控件會顯示。 n/a n/a
任何 這表示不會要求任何特殊控件。 顯示的控制件是應用程式定義行為的結果。 n/a n/a
ColorPicker 以色彩樣板表示色彩值。 值會封裝到相關聯向量的 XYZ 元件中。 相關聯向量的 W 元件一律設定為一個。 floatN,其中 N 包含 1 到 4。 SasUiEnum
方向 方向向量。 floatN,其中 N 為 2 到 4。 沒有
FilePicker 可讓使用者瀏覽並選取檔案的對話框。 字串 沒有
ListPicker 用戶可以從中選取一個專案的字串值清單。 這些值會從 SasUiEnum 註釋產生。 字串數位,以及包含所選取字串值的索引的整數值。 SasUiEnum
數值的 一組數值輸入控件(例如文字框)。 floatMxN,其中 MN 包含 1 到 4。 SasUiMinSasUiMaxSasUiStride
滑塊 一組滑桿。 floatMxN,其中 MN 包含 1 到 4 SasUiMinSasUiMaxSasUiStepsSasUiStepsPower
字串 用於編輯字串內容的文字框。 字串 沒有

 

如果內部數據類型與相關聯的參數類型不同,當數據從主應用程式參數傳輸到效果參數時,就會發生轉換。

預設值為字串 「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);

預設值FLT_MAX如Math.h中所定義。

SasUiMin

此批注會指定相關聯參數的最小值。 它只能與任何數值型別參數相關聯。 參數的最小值實際上會計算為:

MinValue = max(-FLT_MAX, PARAMETER_TYPE_MIN);

PARAMETER_TYPE_MIN是相關聯參數所使用之類型的最小值。 這表示參數的值,將 SasUiMin 註釋計算為:

ParameterValue = max(NewParameterValue, MinValue);

默認值 -FLT_MAX,如 Math.h 中所定義。

SasUiSteps

這個批注會指定遞增或遞減相關聯參數值時可以使用的步驟數目。 批注只有在數值型別參數上才有意義。 零指定主應用程式會選擇合理的步驟數目。

預設值為 0。

SasUiStepsPower

此批注會指定 power 函式中的指數,其範圍為 [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 標準註釋和語意參考