プリミティブ-OpenGLの基本図形

primitive.png

プリミティブとは?

OpenGLにおいては主に2つの意味で使用されます。

  1. たくさんの頂点の中で、どういった表現で描画されているのか
  2. OpenGLに与えられた沢山の頂点を解釈する方法。三角形で描画するのか、線で描画するのか、四角形で描画するのか、など

OpenGLの基本図形

glprimitives.png
定数名 1プリミティブi個描画するのに必要な頂点の数 GLES20での値
GL_POINTS i 0
GL_LINES 2i-1 1
GL_LINE_LOOP i 2
GL_LINE_STRIP i 3
GL_TRIANGLES 3i-2 4
GL_TRIANGLE_STRIP i 5
GL_TRIANGLE_FAN i+1 6
GL_LINES_ADJACENCY 4i-2
GL_LINE_STRIP_ADJACENCY i+1
GL_TRIANGLES_ADJACENCY 6i-5
GL_TRIANGLE_STRIP_ADJACENCY 2i-1
GL_PATCH 設定値によりけり X OpenGL4以降登場

TRIANGLE_STRIP

頂点インデックスが長く連なってる場合どのように解釈されるのか??
0->1->2->3->4…
もちろん最初は0,1,2の三頂点で三角形が出来る。
次の三角形は?
1->2->3
の三頂点による三角形に成る。

ADJECENCYプリミティブ

ADJACENCYと書いてあるプリミティブはジオメトリシェーダに入力するためのプリミティブです。
テッセレーションシェーダで使います。

Bibliography

triangle

サポートサイト Wikidot.com triangle