共用方式為


矩陣類型

矩陣是一種數據類型,其中包含二維方格中一到十六個 純量 元件。 矩陣的每個元件都必須是相同的類型。

類型宣告

您可以使用 純量類型來宣告矩陣變數, 矩陣內容的名稱,其中包含的數據列和資料行數目:

TypeRowsCols Name

其中 Type 是每個元件的 純量類型Rows 是 1 到 4 之間的常數整數表達式,表示數據列數目,Cols 是介於 1 到 4 之間的常數整數表達式,表示數據行數目,Name 是可唯一識別變數名稱的 ASCII 字元串。

例子:

int1x1    iMatrix;   // integer matrix with 1 row,  1 column, 1 single component
int4x1    iMatrix;   // integer matrix with 4 rows, 1 column, 4 total components
int1x4    iMatrix;   // integer matrix with 1 row, 4 columns, 4 total components
double3x3 dMatrix;   // double matrix with 3 rows, 3 columns, 9 total components

float3x2 fMatrix = { 0.0f, 0.1f, // row 1
                     2.1f, 2.2f, // row 2
                     4.1f, 4.2f  // row 3
                   };   

範本樣式宣告

替代宣告語法會使用 matrix 關鍵詞和範本自變數來指出純量類型、數據列數目和資料行數目:

matrix <Type=float, Rows=4, Cols=4> Name

其中 Type 是每個元件的 純量型別Rows 是介於 1 到 4 之間的整數,表示數據列數目,Cols 是介於 1 到 4 之間的整數,表示數據行數目,但在樣板樣式角括弧內指定。 Name 是可唯一識別變數名稱的 ASCII 字串。

請注意,範本參數預設允許藉由離開最後一個參數、離開最後兩個範本參數或 4x4 浮點數來指定指定類型的 4 個數據行母體,或離開這三個參數,以指定類型的 4x4 矩陣。

例子:

matrix <int, 1, 1>   iMatrix = { 1 }; 
matrix <float, 2, 3> fMatrix = { 0.0f, 0.1f, 0.2f, // row 1
                                 2.1f, 2.2f, 2.3f  // row 2
                               };
matrix<int16_t, 1>   sMatrix = { 1, 2, 3, 4 }; // Defaults to 1x4 int16 matrix
matrix<float16_t>    hMatrix = { 0.0f, 0.1f, 0.2f, 0.3f, // Defaults to 4x4 float16 matrix
                                 1.0f, 1.1f, 1.2f, 1.3f,
                                 2.0f, 2.1f, 2.2f, 2.3f,
                                 3.0f, 3.1f, 3.2f, 3.3f }; 
matrix               fMatrix = { 0.0f, 0.1f, 0.2f, 0.3f, // Defaults to 4x4 float matrix
                                 1.0f, 1.1f, 1.2f, 1.3f,
                                 2.0f, 2.1f, 2.2f, 2.3f,
                                 3.0f, 3.1f, 3.2f, 3.3f }; 

另請參閱

資料類型 (DirectX HLSL)