每帧几何修改:OpenCL或GLSL几何着色器?

Eng*_*eer 2 opengl glsl opencl geometry-shader

我正在建造水面,我想要正弦顶点移动以获得波浪对水的影响.我在获取OpenGL之前的理解是,这最好在几何着色器中完成.

然而,目前,我正在使用OpenGL 2.1的OpenGL ES 2.0子集,严格利用现代/可编程管道.此版本中不提供几何着色器.

我有三个选择:

  • 在CPU上进行所有顶点修改,并为每个水面上传每个帧的VBO,因此仅使用OpenGL 2;
  • 升级到OpenGL 3.2并使用几何着色器;
  • 使用OpenGL 2和OpenCL来修改顶点,OpenCL使用GPU作为上下文来减少瓶颈.

主要是我想保持简单.所以考虑到我不知道OpenCL(还),或许我应该坚持向CPU发送大批量?

Tim*_*Tim 7

您不需要几何着色器来替换顶点.只有在想要创建新顶点时才需要几何着色器(例如镶嵌细分).如果您想通过正弦波替换现有顶点,您可以在顶点着色器中轻松完成.