「Metalのデータ型」の版間の差分

90行目: 90行目:


=== 備考:ベクトル型のサイズは必ず2の乗数===
=== 備考:ベクトル型のサイズは必ず2の乗数===
ベクトル型は「型のサイズは必ず2の乗数」であるという点に注意する必要がある。
Metalのベクトル型は「型のサイズは必ず2の乗数」となっている。
たとえば intは4バイト、int2は8バイトだが、int3は12バイトではなく16バイトとなっている。ちなみにint4もint3と同じく16バイトである。
 
たとえば、
int = 4バイト
int2 = 8バイト
'''int3 = 16バイト (12バイトではない!)'''
int4 = 16バイト


[[HLSL]]や[[GLSL]]で[[定数バッファー]]などの[[構造体]]を作る際は、その構造体のサイズを「8バイト単位」や「16バイト単位」にする必要があり、[[シェーダー]]の[[プログラミング]]の際にはその構造体のサイズを手計算で算出して、バイト数が足りない場合はダミーの変数を追加してサイズ調整が必要である。
[[HLSL]]や[[GLSL]]で[[定数バッファー]]などの[[構造体]]を作る際は、その構造体のサイズを「8バイト単位」や「16バイト単位」にする必要があり、[[シェーダー]]の[[プログラミング]]の際にはその構造体のサイズを手計算で算出して、バイト数が足りない場合はダミーの変数を追加してサイズ調整が必要である。


一方、[[Metal]]では「必ず2の乗数」になるのでそのような手計算が必要ない。
一方、[[Metal]]では「必ず2の乗数」になるのでそのような手計算が必要ない。