我正在建造水面,我希望正弦顶点移动以获得波浪对水面的影响。在选择 OpenGL 之前,我的理解是最好在几何着色器中完成。
然而,目前,我正在使用 OpenGL 2.1 的 OpenGL ES 2.0 子集,严格利用现代/可编程管道。此版本中不提供几何着色器。
我有三个选择:
- 在 CPU 上进行所有顶点修改,并为所有水面的每一帧上传 VBO,因此仅使用 OpenGL 2;
- 升级到 OpenGL 3.2 并为此使用几何着色器;
- 使用 OpenGL 2 和 OpenCL 来修改顶点,OpenCL 使用 GPU 作为它的上下文来减少瓶颈。
首先,我想让事情变得简单。所以考虑到我还不知道 OpenCL,也许我应该坚持将大批量发送到 CPU?