Bagikan melalui


Anotasi UI

Gunakan anotasi ini untuk mengaitkan parameter efek dengan kontrol UI di lingkungan host. Ini akan memungkinkan pengguna untuk mengontrol parameter efek secara interaktif melalui aplikasi host.

DXSAS mendefinisikan serangkaian kontrol standar dalam hal model data dan perilaku dasar yang dapat diharapkan penulis efek dari aplikasi host. Anotasi kontrol digunakan seperti ini:

string SasUiControl = "ControlType";

Di mana

ControlType

salah satu hal berikut:

ControlType Deskripsi Tipe Data Internal Anotasi Properti Kontrol
Tidak ada Tidak ada kontrol yang harus ditampilkan. Perhatikan bahwa kontrol terlihat jika SasUiVisible adalah True dan jenis kontrol adalah jenis apa pun selain Tidak Ada. n/a n/a
Apa pun Ini menyiratkan bahwa tidak ada kontrol khusus yang diminta. Kontrol yang disajikan adalah hasil dari perilaku yang ditentukan aplikasi. n/a n/a
Colorpicker Mewakili nilai warna sebagai swatch warna. Nilai dikemas ke dalam komponen XYZ dari vektor terkait. Komponen W dari vektor terkait selalu diatur ke satu. floatN di mana N adalah 1 hingga 4 inklusif. SasUiEnum
Petunjuk Vektor arah. floatN di mana N adalah 2 hingga 4 inklusif. Tidak ada
FilePicker Kotak dialog yang memungkinkan pengguna menelusuri dan memilih file. string Tidak ada
ListPicker Daftar nilai string tempat pengguna dapat memilih satu entri. Nilai dihasilkan dari anotasi SasUiEnum . Array string bersama dengan nilai bilangan bulat yang berisi indeks nilai string yang dipilih. SasUiEnum
Numerik Sekumpulan kontrol input numerik (seperti kotak teks). floatMxN di mana M dan N adalah 1 hingga 4 inklusif. SasUiMin, SasUiMax, SasUiStride
Slider Satu set penggeling. floatMxN di mana M dan N adalah 1 hingga 4 inklusif SasUiMin, SasUiMax, SasUiSteps, SasUiStepsPower
String Kotak teks untuk mengedit konten string. string Tidak ada

 

Jika jenis data internal tidak identik dengan jenis parameter terkait, transmisi akan terjadi saat data ditransfer dari parameter aplikasi host ke parameter efek.

Defaultnya adalah string "None".

Properti Umum UI

SasUiDescription

Gunakan anotasi ini untuk menentukan string untuk menjelaskan alat. Ini dapat digunakan untuk elemen UI seperti tips alat.

string SasUiDescription = "descriptive string";

Contohnya:

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

Defaultnya adalah string kosong.

SasUiLabel

Gunakan anotasi ini untuk menentukan string untuk memberi label kontrol UI apa pun.

string SasUiLabel = "some label;

Ini contohnya:

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

Defaultnya adalah string kosong.

SasUiVisible

Gunakan anotasi ini untuk menentukan apakah parameter terkait harus ditampilkan kepada pengguna.

bool SasUiVisible = false;

Jika diatur ke True, aplikasi host harus menampilkan kontrol UI untuk mengedit parameter efek anotasi. Jika false, tidak ada UI yang ditampilkan di aplikasi host.

Ini contohnya:

float3 UpNormal
<
  string SasUiVisible = false;
>;

Default-nya adalah True.

Properti Kontrol UI

Anotasi properti kontrol adalah pengubah tambahan yang membantu menentukan bagaimana kontrol tertentu beroperasi.

SasUiEnum

Anotasi ini memungkinkan Anda membatasi rentang nilai untuk kontrol. Anotasi berisi string nilai yang dibatasi oleh koma.

Defaultnya adalah string kosong.

SasUiMax

Anotasi ini menentukan nilai maksimum parameter terkait. Ini hanya dapat dikaitkan dengan parameter yang ditik numerik. Nilai maksimum parameter benar-benar akan dihitung sebagai:

MaxValue = min(FLT_MAX, PARAMETER_TYPE_MAX);

PARAMETER_TYPE_MAX adalah nilai maksimum untuk jenis yang digunakan oleh parameter terkait. Ini berarti bahwa nilai parameter, dengan mempertimbangkan anotasi SasUiMax dihitung sebagai:

ParameterValue = min(NewParameterValue, MaxValue);

Nilai default FLT_MAX seperti yang didefinisikan dalam Math.h.

SasUiMin

Anotasi ini menentukan nilai minimum parameter terkait. Ini hanya dapat dikaitkan dengan parameter yang ditik numerik. Nilai minimum parameter sebenarnya akan dihitung sebagai:

MinValue = max(-FLT_MAX, PARAMETER_TYPE_MIN);

PARAMETER_TYPE_MIN adalah nilai minimum untuk jenis yang digunakan oleh parameter terkait. Ini berarti bahwa nilai parameter, dengan mempertimbangkan anotasi SasUiMin dihitung sebagai:

ParameterValue = max(NewParameterValue, MinValue);

Nilai defaultnya adalah -FLT_MAX seperti yang didefinisikan dalam Math.h.

SasUiSteps

Anotasi ini menentukan jumlah langkah yang dapat digunakan saat meningkatkan atau mengurangi nilai parameter terkait. Anotasi hanya bermakna pada parameter yang ditik numerik. Nol menentukan bahwa aplikasi host akan memilih sejumlah langkah yang wajar.

Nilai default adalah 0.

SasUiStepsPower

Anotasi ini menentukan eksponen dalam fungsi daya, yang memiliki rentang [0.0f, 1.0f]. Aplikasi host harus menerapkan metode berikut saat menghitung nilai parameter:

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

Nilai defaultnya adalah 1,0f.

SasUiStride

Anotasi ini menentukan kenaikan yang harus digunakan saat menaikkan atau menurunkan nilai ini. Tidak seperti SasUiSteps, SasUiStride berguna dengan kontrol spinner, misalnya, di mana data tidak terbatas dan pengguna lebih suka menaikkan nilai parameter dengan melangkah daripada dengan jumlah langkah yang telah ditentukan sebelumnya. Aplikasi host harus bertambah (atau penurunan tergantung pada perilaku kontrol) dengan nilai SasUiStride sebagai berikut:

ParameterValue = ParameterValue +/- SasUiStride

Nilai defaultnya adalah 1,0f.

Referensi Anotasi dan Semantik Standar DirectX