現在地 >> メニュー >> 基本編09 >> 頂点配列 >> glDrawRangeElementsによる描画

glDrawRangeElements()関数


glDrawRangeElements()関数は、glDrawElements()関数のように使うが、こちらは範囲の指定がある。

glDrawRangeElements(プリミティブの種類、インデックスの最小値、インデックスの最大値、インデックスの数、データ元)
範囲を指定する事で、より効率的になる(...はず)

例えば、
//    v7----- v6
//   /|            /|
//  v3------v2|
//  | |             | |
//  | |v4-----|-|v5
//  |/            |/
//  v0------v1
//頂点の配列データ
float points[] ={
	0,0,0,  //v0
	1,0,0,  //v1
	1,1,0,  //v2
	0,1,0,  //v3

	0,0,-1, //v4
	1,0,-1, //v5
	1,1,-1, //v6
	0,1,-1, //v7
};
//頂点番号を知らせる
GLubyte index[]={
	0,1,2,3,   //
	0,4,5,1,   //ここ3行は0〜6までのインデックス
	1,5,6,2,   //

	0,3,7,4,   //
	4,7,6,5,   //ここ3行は0〜7のインデックス
	3,2,6,7   //
};
//インデックスの合計は24

の場合、
インデックスの最小値=0
インデックスの最大値=7
なので、
glDrawRangeElements(GL_QUADS, 0,7,24, GL_UNSIGNED_BYTE, index);
となる。

※もし、12個ずつ分ければ、
	glDrawRangeElements(GL_QUADS, 0,6,12, GL_UNSIGNED_BYTE, index);
	glDrawRangeElements(GL_QUADS, 0,7,12, GL_UNSIGNED_BYTE, index+12);  //こっちは0〜「7」まで
と書くことも可能。



サンプルコード >> 頂点配列::glDrawRangeElements

目次

― その他 ―

Wiki内検索

計測中...(07.10.8〜)

Save The World






▲よろしければ広告のクリックもお願いします


▲ランキングに参加しました

管理人/副管理人のみ編集できます