GLES2.0 にはジオメトリ シェーダーがないため、頂点シェーダーだけを使用してシミュレートしたいと考えています。私の考えは次のようになります: x、y、z、サイズの変数があり、各頂点を 1 つ送信してから、どこかに保存します。6 番目の頂点の後、最後の 6 つの値 (x、y、z、サイズ、および必要に応じてさらに 2 つ) を使用して、それらから次の 6 つの頂点を構築します。例えば:
- 頂点シェーダーの最初の呼び出しで、x 変数をどこかに保存し、gl_Position = (0,0,0)、gl_Color = (0,0,0,0) などを返します...
- 2 回目の呼び出しで、y 変数をどこかに保存してから、上記と同じ方法で頂点を破棄します。これを 6 番目の頂点まで繰り返します。
- 6 番目の頂点で、どこかから x、y、z、およびサイズの変数を取得し、それらを使用して正方形の左上の頂点を作成します。(gl_Position = (x-size/2, y-size/2, 0)... など..
問題は、この「どこか」が何であるかわからないことです。頂点シェーダー呼び出しで変数を保存して、次の呼び出しで使用する方法がわかりません。
TLDL: GLES2.0 で 5200 * (x, y, z, square_size) から 10400 の三角形を 1 回の描画呼び出しで作成したいのですが、方法についてのアイデアはありますが、実装方法がわかりません。