水面を構築しています。ここでは、波の効果を得るために正弦波の頂点をシフトしたいと考えています。OpenGLを選択する前の私の理解は、これはジオメトリシェーダーで行うのが最適であるということでした。
ただし、現在、私はOpenGL2.1のOpenGLES 2.0サブセットを使用しており、最新のプログラム可能なパイプラインを厳密に利用しています。このバージョンでは、ジオメトリシェーダーは使用できません。
私には3つの選択肢があります:
- CPUですべての頂点の変更を行い、すべての水面のフレームごとにVBOをアップロードして、OpenGL2のみを使用します。
- OpenGL 3.2に移動し、これにジオメトリシェーダーを使用します。
- OpenGL 2をOpenCLと一緒に使用して頂点の変更を行い、OpenCLはコンテキストとしてGPUを使用してボトルネックを減らします。
主に物事をシンプルにしたいと思います。それで、私がOpenCLを(まだ)知らないことを考えると、おそらく私はCPUに大きなバッチを送ることに固執するべきですか?