OpenGL 3.2 では core 機能に Geometry Shader が含まれています。 試してみました。 ・OpenGL Registry GeometryShader はポリゴンの面単位で実行可能なシェーダープログラムです。 面単位なので、プリミティブタイプが Triangle List (GL_TRIANGLES) なら一度に 3頂点を入力として受け取ります。主な用途は下記の通りです。 ・頂点演算 ・面単位のマテリアル演算 ・形状の操作 ・出力先の変更 ・StreamOutput (Transform Feedback) わかりやすいところでは面法線の生成など面単位のマテリアル設定が考えられます。 ユニークなのは入力と関係なく出力プリミティブを組み立てられることです。 出力頂点数は任意なので、エッジだけ Line として書き出したり、面を分割したり、 面を消すことも出来ます。