Metal 著色語言程式設計指南 八

2021-07-11 07:03:07 字數 1101 閱讀 5882

構造矩陣物件

同向量物件的構造相似, 矩陣物件也可以從標量或者向量集合來構造,  當矩陣初始化時,其構造器引數決定了它是如何被建立的。 例如, 如果構造器引數僅僅是乙個標量, 那麼這個矩陣的對角線上的成員被初始化為這個標量,其他成員被初始化為0.0。  

下面的這個呼叫

float4x4(fval);
構造的矩陣為:

fval    0.0    0.0    0.0

0.0 fval 0.0 0.0

0.0 0.0 fval 0.0

0.0 0.0 0.0 fval

矩陣也可以從另乙個相同維數的矩陣來構建:

float3x4(float3x4);

float3x4(half3x4);

這種構造方式,矩陣的成員是以列為順序來初始化的, 引數矩陣的維數必須與目標矩陣相同, 否則(過多或者過少)都會引發編譯錯誤。 

乙個nxm的矩陣可以從n個m維的向量來構造,例如:

float2x2(float2, float2);

float3x3(float3, float3, float3);

float3x2(float2, float2, float2);

矩陣不能從多個標量或者標量與向量的組合來構造, 下面是一些非法的構造:

// both cases below are not supported

float2x2(float a00, float a01, float a10, float a11);

float2x3(float2 a, float b, float2 c, float d);

原子型別只能在原子函式(atomic function)中使用, 關於原子函式會在下文講述。 metal 著色語言的原子函式就是c++11中的原子與同步函式的子集。 原子函式必須操作原子資料。 

metal 著色語言的原子型別有:  atomic_int 和 atomic_uint。  

譯自: 

Metal 著色語言程式設計指南 一

metal shading language guide 這篇文章講述了metal 圖形繪製和計算 shading 程式語言.metal shading 語言是基於c 的程式語言,使用metal shading 語言的 可以在gpu上進行圖形繪製或者通用平行計算。由於metal shading 語言...

Metal 著色語言程式設計指南 四

metal shading 語言的向量數學庫提供了對向量和矩陣型別表示和運算的支援。向量的命名規則如下所示 booln,charn,shortn,intn,uncharn,ushortn,uintn halfn,floatn 這裡 n 可以是 2,3,4 的其中乙個數字,表示 2 3 4 維向量。矩...

Metal 著色語言程式設計指南 七

floatnxm 和 halfnxm 矩陣可以被看成是型別為floatm和halfm的陣列.類似二維陣列,矩陣的成員可以用二維下標來定址.矩陣物件後面跟乙個下標可以被看作是乙個列向量.如同陣列,列向量的計數也是從0開始,矩陣物件的第二個下標就如同是對向量物件進行定址。所以,矩陣物件後面跟兩個下標就表...