Geometry Shader (ジオメトリシェーダー)は、ゲームグラフィックスのレンダリングや最適化(テクニカルアート)において極めて重要となる技術用語です。頂点シェーダーの直後、GPU内部でポリゴンの頂点データをリアルタイムに動的生成・消滅させ、ただの『点』から『板(ポリゴン)』や『立体』をその場でプログラム生成する高度なシェーダーステージの解説。
現実世界での例え:工場でパーツ(点)を組み立てる際、その場で3Dプリンターを回して『新しいパーツ(ポリゴン)をその場でもりもり生み出して』出荷する魔術的な拡張組み立てライン
ジオメトリシェーダーは、「3Dモデルの骨組みを受け取った後、GPUの組み立てラインの中で『点(Vertex)』を『面(Triangle)』へとその場で魔法のように増殖・変形させたり、不要なポリゴンを瞬時に消滅させて消し去る、ポリゴンのリアルタイム錬金術」です。これを使うことで、ただの真っ平らな三角形を渡すだけで、GPUがその境界から勝手に大量の「トゲ」や「草の葉」、「飛び散る火花」をその場で生み出して描き出すことができ、ゲームのデータサイズを完全にゼロに保ったまま、無限に広がる精密なディテールを表現できます。
図:Geometry Shader (ジオメトリシェーダー)の基本的な処理フローと仕組みを日本語表記で分かりやすく図解したインフォグラフィック
詳細な仕組みと動作原理
ジオメトリシェーダー(Geometry Shader)を記述し、頂点シェーダーから渡された「地面の1点」の座標から、その場で三角形の「草のポリゴン(Billboard)」をリアルタイムに生成して射出・描画します。