「API/Gu/sceGuDrawArray」の編集履歴(バックアップ)一覧に戻る

API/Gu/sceGuDrawArray - (2008/11/15 (土) 19:21:42) の編集履歴(バックアップ)


関数

void sceGuDrawArray ( int prim,
int vtype,
int count,
const void * indices,
const void * vertices
)

第一引数(prim)

描画する図形の種別を指定します。

必要となる
vertice構造体数
GU_POINTS 1つの点を描画します 1
GU_LINES 2つの点を結ぶ幅1ドットのラインを描画します 2
GU_LINE_STRIP n点を結ぶ幅1ドットのラインを描画します n(3以上)
GU_TRIANGLES 3点を結ぶ三角形を描画します
三角形の内部は頂点カラーもしくはテクスチャーで塗りつぶされます
3
GU_TRIANGLE_STRIP 幅1ドットのラインで3点を結ぶ三角形を描画します 3
GU_TRIANGLE_FAN
GU_SPRITES 2点を対角とし四角形を描画します
四角形の内部は頂点カラーもしくはテクスチャーで塗りつぶされます
2

第二数(vtype)

描画する図形の頂点情報を管理するvertice構造体のデータタイプを指定します。
必須項目
頂点座標
GU_VERTEX_8BIT 頂点座標8bit(1byte)で指定します
GU_VERTEX_16BIT 頂点座標16bit(2byte)で指定します
GU_VERTEX_32BITF 頂点座標32bit float(4byte)で指定します

UV座標
GU_TEXTURE_8BIT 8-bit texture coordinates
GU_TEXTURE_16BIT 16-bit texture coordinates
GU_TEXTURE_32BITF 32-bit texture coordinates (float)

頂点カラー
GU_COLOR_5650 16-bit color (R5G6B5A0)
GU_COLOR_5551 16-bit color (R5G5B5A1)
GU_COLOR_4444 16-bit color (R4G4B4A4)
GU_COLOR_8888 32-bit color (R8G8B8A8)

トランスフォーム
GU_TRANSFORM_2D 2Dとして描画する場合に指定
GU_TRANSFORM_3D 3Dとして描画する場合に指定

未確認項目
インデックスバッファ
GU_INDEX_8BIT 8-bit vertex index
GU_INDEX_16BIT 16-bit vertex index

ウェイト(3D)
GU_WEIGHT_8BIT 8-bit weights
GU_WEIGHT_16BIT 16-bit weights
GU_WEIGHT_32BITF 32-bit weights (float)

法線(3D)
GU_NORMAL_8BIT 8-bit normals
GU_NORMAL_16BIT 16-bit normals
GU_NORMAL_32BITF 32-bit normals (float)

詳細不明
GU_WEIGHTS(n) Number of weights (1-8)
GU_VERTICES(n) Number of vertices (1-8)

補足
UV座標と頂点カラーは両方指定できますが、テクスチャを貼る場合は
頂点カラー情報は無駄になりますので転送負荷軽減のためにも指定しない
方がいいでしょう。

インデックスバッファと法線についてはサンプルソースが見つかっていないので
指定方法は不明です。

vertice構造体を定義する際、各情報は下記の順序で指定してください。
下記は全部指定した場合です。使わない部分は指定しないでください。
[for vertices(1-8)]
[weights (0-8)]
[texture uv]
[color]
[normal]
[vertex]

第三引数(count)

vertice構造体の数を指定

第四引数(indices)

インデックスバッファの先頭アドレスを指定

第五引数(vertices)

頂点情報バッファの先頭アドレスを指定