「API/Gu/sceGuDrawArray」の編集履歴(バックアップ)一覧はこちら

API/Gu/sceGuDrawArray - (2010/05/11 (火) 23:43:11) の1つ前との変更点

追加された行は緑色になります。

削除された行は赤色になります。

**機能 頂点を指定し図形を描画する。 **API #asciiart(blockquote){void sceGuDrawArray ( int prim, int vtype, int count, const void * indices, const void * vertices ) } **第一引数(prim) 描画する図形の種別を指定します。 |||必要となる&BR()vertice構造体数| |GU_POINTS|1つの点を描画します|1| |GU_LINES|2つの点を結ぶ幅1ドットのラインを描画します|2| |GU_LINE_STRIP|n点を結ぶ幅1ドットのラインを描画します|n(3以上)| |GU_TRIANGLES|3点を結ぶ三角形を描画します&BR()三角形の内部は頂点カラーもしくはテクスチャーで塗りつぶされます|3| |GU_TRIANGLE_STRIP|幅1ドットのラインで3点を結ぶ三角形を描画します|3| |GU_TRIANGLE_FAN||| |GU_SPRITES|2点を対角とし四角形を描画します&BR()四角形の内部は頂点カラーもしくはテクスチャーで塗りつぶされます|2| **第二数(vtype) 描画する図形の頂点情報を管理するvertice構造体のデータタイプを指定します。 &bold(){必須項目} 頂点座標 |GU_VERTEX_8BIT|頂点座標8bit(1byte)で指定します| |GU_VERTEX_16BIT|頂点座標16bit(2byte)で指定します| |GU_VERTEX_32BITF|頂点座標32bit float(4byte)で指定します| トランスフォーム |GU_TRANSFORM_2D|2Dとして描画する場合に指定| |GU_TRANSFORM_3D|3Dとして描画する場合に指定| &bold(){オプション} 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_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)| &bold(){補足} UV座標と頂点カラーは両方指定できますが、テクスチャを貼る場合は 頂点カラー情報は無駄になりますので転送負荷軽減のためにも指定しない 方がいいでしょう。 インデックスバッファと法線についてはサンプルソースが見つかっていないので 指定方法は不明です。 vertice構造体を定義する際、各情報は下記の順序で指定してください。 下記は全部指定した場合です。使わない部分は指定しないでください。 [for vertices(1-8)] [weights (0-8)] [texture uv] [color] [normal] [vertex] また、構造体のサイズは必ず4バイトの倍数にならなければなりません。 そうならない場合、無駄なメンバを作ってでも4の倍数にしてください。 &bold(){例} typedef struct{ float u, v; uint32_t color; float nx, ny, nz; float x, y, z; } MyVertex; #define MyVertexType GU_VERTEX_32BITF|GU_TEXTURE_32BITF| \ GU_COLOR_8888|GU_NORMAL_32BITF **第三引数(count) vertice構造体の数を指定 **第四引数(indices) インデックスバッファの先頭アドレスを指定 **第五引数(vertices) 頂点情報バッファの先頭アドレスを指定
**機能 頂点を指定し図形を描画する。 **API #asciiart(blockquote){void sceGuDrawArray ( int prim, int vtype, int count, const void * indices, const void * vertices ) } **第一引数(prim) 描画する図形の種別を指定します。 |||必要となる&BR()vertice構造体数| |GU_POINTS|1つの点を描画します|1| |GU_LINES|2つの点を結ぶ幅1ドットのラインを描画します|2| |GU_LINE_STRIP|n点を結ぶ幅1ドットのラインを描画します|n(2以上)| |GU_TRIANGLES|3点を結ぶ三角形を描画します&BR()三角形の内部は頂点カラーもしくはテクスチャーで塗りつぶされます|3| |GU_TRIANGLE_STRIP|最初の3点の三角形から始め、残りの頂点をそれに連結させ、三角形の連なりを描画します|3| |GU_TRIANGLE_FAN|最初の1点を共有する複数の三角形を描画します|3| |GU_SPRITES|2点を対角とし長方形を描画します&BR()四角形の内部は頂点カラーもしくはテクスチャーで塗りつぶされます|2| **第二数(vtype) 描画する図形の頂点情報を管理するvertice構造体のデータタイプを指定します。 &bold(){必須項目} 頂点座標 |GU_VERTEX_8BIT|頂点座標8ビット符号付き整数(char)で指定します| |GU_VERTEX_16BIT|頂点座標16ビット符号付き整数(short)で指定します| |GU_VERTEX_32BITF|頂点座標332ビット浮動小数点数(float)で指定します| トランスフォーム |GU_TRANSFORM_2D|2Dとして描画する場合に指定| |GU_TRANSFORM_3D|3Dとして描画する場合に指定| &bold(){オプション} UV座標 |GU_TEXTURE_8BIT|8ビット符号付き整数(char)テクスチャ座標| |GU_TEXTURE_16BIT|16ビット符号付き整数(short)テクスチャ座標| |GU_TEXTURE_32BITF|32ビット浮動小数点数(float)テクスチャ座標| 頂点カラー |GU_COLOR_5650|16ビットカラー (R5G6B5A0)| |GU_COLOR_5551|16ビットカラー (R5G5B5A1)| |GU_COLOR_4444|16ビットカラー (R4G4B4A4)| |GU_COLOR_8888|32ビットカラー (R8G8B8A8)| インデックスバッファ |GU_INDEX_8BIT|8ビット(unsigned char)インデックスバッファ| |GU_INDEX_16BIT|16ビット(unsigned short)インデックスバッファ| ウェイト(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)|ウェイトの数 (1-8)| 頂点ブレンディング |GU_VERTICES(n)|ブレンドする頂点の数 (1-8)| &bold(){補足} UV座標と頂点カラーは両方指定できますが、初期状態ではテクスチャを貼る場合は 頂点カラー情報は無駄になりますので、転送負荷軽減のためにも指定しない 方がいいでしょう。 UV座標はOpenGLやDirectX等のようにテクスチャサイズに対する割合で 指定するのではなく、ピクセル単位で絶対的な位置を指定します。 頂点に使用する構造体を定義する際、各情報は下記の順序で指定してください。 下記は全部指定した場合です。使わない部分は指定しないでください。 [頂点スキニングのウェイト (0-8)] [UV座標] [頂点カラー] [法線] 頂点座標 頂点ブレンディングを使用する場合、ブレンドする頂点の数だけ これを繰り返します。 また、構造体のサイズは必ず&bold(){4バイト}の倍数にならなければなりません(アラインメント)。 そうならない場合、無駄なメンバ(パッド)を作ってでも4の倍数にしてください。 &bold(){例} /* アラインメントが一致する場合 */ typedef struct{ float u, v; uint32_t color; float nx, ny, nz; float x, y, z; } MyVertex; #define MyVertexType GU_VERTEX_32BITF|GU_TEXTURE_32BITF| \ GU_COLOR_8888|GU_NORMAL_32BITF /* アラインメントが不一致の場合 */ typedef struct{ float u, v; uint32_t color; float nx, ny, nz; short x, y, z; short pad; /* パッド */ } MyVertexSmart; #define MyVertexSmartType GU_VERTEX_16BIT|GU_TEXTURE_32BITF| \ GU_COLOR_8888|GU_NORMAL_32BITF **第三引数(count) &bold(){indices==NULL}の場合、vertice構造体の数を指定。 &bold(){indices!=NULL}の場合、indicesの要素数を指定。 **第四引数(indices) インデックスバッファの先頭アドレスを指定、またはNULL **第五引数(vertices) 頂点情報バッファの先頭アドレスを指定

表示オプション

横に並べて表示:
変化行の前後のみ表示: