GLBEGIN

Section: Misc. Reference Manual Pages (3G)
索引 xjman
 

名前

glBegin, glEnd - プリミティブ内の頂点やプリミティブ的グループ内の頂点を区切る

 

書式

void glBegin( GLenum mode )


delim $$  

引き数

mode
glBegin とその後にある glEnd の間に 現れる頂点から作られるプリミティブまたはプリミティブ群を指定する。 次の10種類の定数を指定できる: GL_POINTS, GL_LINES, GL_LINE_STRIP, GL_LINE_LOOP, GL_TRIANGLES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_QUADS, GL_QUAD_STRIP, GL_POLYGON.
 

書式

void glEnd( void )


 

説明

glBeginglEnd はプリミティブやプリミティブ群の ようなグループを定義する頂点を区切る。 glBegin には引き数をひとつ指定でき、これは頂点群の解釈のしかた を10種類の中から指定する。 $n$ は 1 から始まる整数で、$N$ は指定した頂点数の合計である。 解釈は以下のように行われる:
GL_POINTS
各頂点を単独の点とみなす。 頂点 $n$ が点 $n$ を定義する。 $N$ 個の点が描画される。
GL_LINES
頂点の対をそれぞれ独立した線分とみなす。 頂点 $2n^-^1$ と頂点 $2n$ が線分 $n$ を定義する。 $N/2$ 個の線分が描画される。
GL_LINE_STRIP
最初の頂点から最後の頂点まで、連続した線分を描画する。 頂点 $n$ と頂点 $n~+~1$ が線分 $n$ を定義する。 $N^-^1$ 個の頂点が描画される。
GL_LINE_LOOP
最初の頂点から最後の頂点まで、連続した線分を描画し、さらに 最後の頂点と最初の頂点を結ぶ。 頂点 $n$ と頂点 $n~+~1$ が線分 $n$ を定義する。 ただし最後の線分は頂点 $N$ と頂点 $1$ によって定義される。 $N$ 個の頂点が描画される。
GL_TRIANGLES
頂点 3 つを一組として、それぞれを三角形とみなす。 頂点 $3n^-^2$, $3n^-^1$, $3n$ が三角形 $n$ を定義する。 $N/3$ 個の三角形が描画される。
GL_TRIANGLE_STRIP
互いに隣接する三角形群を描画する。 ひとつの三角形は、最初のふたつの頂点が示された後のそれぞれの頂点に ついて定義される。 $n$ が奇数の場合は頂点 $n$, $n~+~1$, $n~+~2$ が三角形 $n$ を定義する。 $n$ が偶数の場合は頂点 $n~+~1$, $n$, $n~+~2$ が三角形 $n$ を定義する。 $N^-^2$ 個の三角形が描画される。
GL_TRIANGLE_FAN
互いに隣接する三角形群を描画する。 ひとつの三角形は、最初のふたつの頂点が示された後のそれぞれの頂点に ついて定義される。 頂点 $1$, $n~+~1$, $n~+~2$ が三角形 $n$ を定義する。 $N^-^2$ 個の三角形が描画される。
GL_QUADS
頂点 3 つを一組として、それぞれを独立した四角形とみなす。 頂点 $4n^-^3$, $4n^-^2$, $4n^-^1$, $4n$ が四角形 $n$ を定義する。 $N/4$ 個の四角形が描画される。
GL_QUAD_STRIP
互いに隣接する四角形群を描画する。 ひとつの四角形は、最初の頂点対が示された後のそれぞれの頂点対に ついて定義される。 頂点 $2n^-^1$, $2n$, $2n~+~2$, $2n~+~1$ は四角形 $n$ を定義する。 $N/2^-^1$ 個の四角形が描画される。 単なる点群から四角形を作るために使われる頂点の順序は、 独立したデータとして使う場合の順序と異なることに注意すること。
GL_POLYGON
凸な多角形をひとつ描画する。 頂点 $1$ から頂点 $N$ がこの多角形を定義する。 glBeginglEnd の間では、GL コマンドの一部 しか使えない。 使えるコマンドは glVertex, glColor, glIndex, glNormal, glTexCoord, glEvalCoord, glEvalPoint, glArrayElement, glMaterial, glEdgeFlag である。 また、前に実行したコマンドだけが含まれるディスプレイリストを glCallList または glCallLists を使って 実行することもできる。 glBeginglEnd の間で他の GL コマンドが実行された 場合には、エラーフラグが設定され、コマンドは無視される。 mode の値として選んだ値にかかわらず、 glBeginglEnd の間で定義できる頂点の数は無制限であ る。 指定が不十分な線分、三角形、四角形、多角形は描画されない。 指定が不完全となるのは、 指定された頂点数が少なすぎてプリミティブをひとつも作れない場合や、 指定した頂点数がプリミティブで必要な頂点の倍数になっていない場合 である。 不完全なプリミティブは無視されるが、残りのプリミティブは描画される。 各プリミティブに対して最低限指定する必要がある頂点数は以下の通りである: 点では 1, 線分では 2, 三角形では 3, 四角形では 4, 多角形では 3。 頂点数が何らかの数の倍数になっている必要があるモードは GL_LINES (2 の倍数), GL_TRIANGLES (3 の倍数), GL_QUADS (4 の倍数), GL_QUAD_STRIP (2 の倍数) である。
 

エラー

mode に不正な値を指定すると GL_INVALID_ENUM エラーが起こる。 glBegin とその対になる glEnd の間に glBegin が実行されると GL_INVALID_OPERATION エラー となる。 glBegin をまだ実行していないのに glEnd を実行すると GL_INVALID_OPERATION エラーとなる。 glBegin とその対になる glEnd の間に次に示す以外の コマンドが実行されると GL_INVALID_OPERATION エラーとなる: glVertex, glColor, glIndex, glNormal, glTexCoord, glEvalCoord, glEvalPoint, glArrayElement, glMaterial, glEdgeFlag, glCallList, glCallLists.
glBegin とこれに対応する glEnd の間に次の関数を実行す ることは許されていない: glEnableClientState, glDisableClientState, glEdgeFlagPointer, glTexCoordPointer, glColorPointer, glIndexPointer, glNormalPointer,
glVertexPointer, glInterleavedArrays, glPixelStore。 しかし、エラーは起こるかもしれないし起こらないかもしれない。  

関連項目

glArrayElement(3G), glCallList(3G), glCallLists(3G), glColor(3G), glEdgeFlag(3G), glEvalCoord(3G),
glEvalPoint(3G), glIndex(3G), glMaterial(3G), glNormal(3G), glTexCoord(3G), glVertex(3G)


 

Index

名前
書式
引き数
書式
説明
エラー
関連項目

jman



Time: 07:01:04 GMT, January 12, 2009