「Metalのデータ型」を編集中

ナビゲーションに移動 検索に移動

警告: ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。ログインまたはアカウントを作成すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。

この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。

最新版 編集中の文章
1行目: 1行目:
==スカラー型==  
+
== スカラー型==  
 
{| class="wikitable"
 
{| class="wikitable"
 
|+
 
|+
!型
+
! 型
!概要
+
! 概要
 
|-
 
|-
 
|bool
 
|bool
9行目: 9行目:
 
|-
 
|-
 
|char
 
|char
| rowspan="2" |符号付き8ビット整数
+
int8_t
|-
+
|符号付き8ビット整数
|int8_t
 
 
|-
 
|-
 
|unsigned char
 
|unsigned char
| rowspan="3" |符号なし8ビット整数
+
uchar
|-
+
 
|uchar
+
uint8_t
|-
+
|符号なし8ビット整数
|uint8_t
 
 
|-
 
|-
 
|short
 
|short
| rowspan="2" |符号付き16ビット整数
+
int16_t
|-
+
|符号付き16ビット整数
|int16_t
 
 
|-
 
|-
 
|unsigned short
 
|unsigned short
| rowspan="3" |符号なし16ビット整数
+
ushort
|-
+
 
|ushort
+
uint16_t
|-
+
|符号なし16ビット整数
|uint16_t
 
 
|-
 
|-
 
|int
 
|int
| rowspan="2" |符号付き32ビット整数
+
int32_t
|-
+
|符号付き32ビット整数
|int32_t
 
 
|-
 
|-
 
|unsigned int
 
|unsigned int
| rowspan="3" |符号なし32ビット整数
+
uint
|-
+
 
|uint
+
uint32_t
|-
+
|符号なし32ビット整数
|uint32_t
 
 
|-
 
|-
 
|long
 
|long
| rowspan="2" |符号付き64ビット整数
+
int64_t
 +
|符号付き64ビット整数
 
Metal 2.2以降
 
Metal 2.2以降
|-
 
|int64_t
 
 
|-
 
|-
 
|unsigned long
 
|unsigned long
| rowspan="2" |符号なし64ビット制す
+
uint64_t
 +
|符号なし64ビット制す
 
Metal 2.2以降
 
Metal 2.2以降
|-
 
|uint64_t
 
 
|-
 
|-
 
|half
 
|half
65行目: 57行目:
 
|-
 
|-
 
|size_t
 
|size_t
|sizeof 演算子の結果を表す符号なし整数型。
+
|sizeof 演算子の結果を表す符号なし整数型。実態は符号なし64ビット整数。
実態は符号なし64ビット整数。
 
 
|-
 
|-
 
|ptrdiff_t
 
|ptrdiff_t
|2つのポインタを引き算した結果の符号付き整数型。
+
|2つのポインタを引き算した結果の符号付き整数型。実態は符号付き64ビット整数。
実態は符号付き64ビット整数。
 
 
|-
 
|-
 
|void
 
|void
76行目: 66行目:
 
|}
 
|}
  
===サフィックス ===
+
=== サフィックス ===
 
+
* f または F = float, 0.5f
*f または F = float, 0.5f
+
* h または H = half, 0.5h
*h または H = half, 0.5h
+
* u または U = uint, 2u
*u または U = uint, 2u
+
* l または L = long, 2L
*l または L = long, 2L
 
  
==ベクトル型==
+
== ベクトル型 ==
 
スカラー型名の末尾に数字(ここでは'''n'''とする)を付けるとベクトル型になる。
 
スカラー型名の末尾に数字(ここでは'''n'''とする)を付けるとベクトル型になる。
 
'''n''' には 2, 3, 4のいづれかの数字が入る。
 
'''n''' には 2, 3, 4のいづれかの数字が入る。
 
「float2」や「float3」といった感じだ。
 
「float2」や「float3」といった感じだ。
 
[[HLSL]]などと同じだな。
 
[[HLSL]]などと同じだな。
 +
* bool'''n'''
 +
* char'''n'''
 +
* short'''n'''
 +
* int'''n'''
 +
* long'''n'''
 +
* uchar'''n'''
 +
* ushort'''n'''
 +
* uint'''n'''
 +
* ulong'''n'''
 +
* half'''n'''
 +
* float'''n'''
  
*bool'''n'''
+
=== ベクトル型のサイズは必ず2の乗数===
*char'''n'''
 
*short'''n'''
 
*int'''n'''
 
*long'''n'''
 
*uchar'''n'''
 
*ushort'''n'''
 
*uint'''n'''
 
*ulong'''n'''
 
*half'''n'''
 
*float'''n'''
 
 
 
===ベクトル型のサイズは必ず2の乗数===
 
 
Metalのベクトル型は「型のサイズは必ず2の乗数」となっている。
 
Metalのベクトル型は「型のサイズは必ず2の乗数」となっている。
  
 
たとえば、
 
たとえば、
 
+
* int = 4バイト
*int = 4バイト
+
* int2 = 8バイト
*int2 = 8バイト
+
* int3 = '''16バイト''' (12バイトではない)
*int3 = '''16バイト''' (12バイトではない)
+
* int4 = 16バイト
*int4 = 16バイト
 
  
 
[[HLSL]]や[[GLSL]]で[[定数バッファー]]などの[[構造体]]を作る際は、その構造体のサイズを[[GPU]]が扱いやすいよう「8バイト単位」や「16バイト単位」にする必要があり、[[シェーダー]]の[[プログラミング]]の際にはその構造体のサイズを手計算で算出して、バイト数が足りない場合はダミーの変数を追加してサイズ調整が必要である。
 
[[HLSL]]や[[GLSL]]で[[定数バッファー]]などの[[構造体]]を作る際は、その構造体のサイズを[[GPU]]が扱いやすいよう「8バイト単位」や「16バイト単位」にする必要があり、[[シェーダー]]の[[プログラミング]]の際にはその構造体のサイズを手計算で算出して、バイト数が足りない場合はダミーの変数を追加してサイズ調整が必要である。

MonoBookへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細はMonoBook:著作権を参照)。 著作権保護されている作品は、許諾なしに投稿しないでください!

このページを編集するには、下記の確認用の質問に回答してください (詳細):

取り消し 編集の仕方 (新しいウィンドウで開きます)