構造矩陣物件
同向量物件的構造相似, 矩陣物件也可以從標量或者向量集合來構造, 當矩陣初始化時,其構造器引數決定了它是如何被建立的。 例如, 如果構造器引數僅僅是乙個標量, 那麼這個矩陣的對角線上的成員被初始化為這個標量,其他成員被初始化為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開始,矩陣物件的第二個下標就如同是對向量物件進行定址。所以,矩陣物件後面跟兩個下標就表...