1
このジオメトリシェーダーがプログラムをそれほど遅くするのはなぜですか?
OpenGLプログラムを使用しており、地形メッシュをレンダリングしています。頂点バッファーで頂点を移動しますが、フラグメントシェーダーではまだ実際に色付けしていません。ジオメトリシェーダーを1つずつ追加します。 ジオメトリシェーダーを追加する前に、パイプラインのフラグメントと頂点のシェーディングステップをプログラミングしていたとき、約30+のフレームレートを取得していました。ちょっぴり気付かないくらいでした。ジオメトリシェーダーを追加すると、1秒あたり約5フレームになります。どうして?これは、ジオメトリシェーダー全体です。 #version 420 layout (triangles) in; layout (triangle_strip, max_vertices = 3) out; void main() { for (int i = 0; i < gl_in.length(); i++) { gl_Position = gl_in[i].gl_Position; EmitVertex(); } EndPrimitive(); } これは、ジオメトリシェーダーなしでOpenGLが行っていたこととまったく同じではありませんか?