GLSL如何在着色器处理后检索顶点位置呢?

时间:2012-02-19 14:55:18

标签: glsl simulation shader

我写了一个用弹簧模拟软体的程序。它看起来不错,但问题是它消耗了大量的CPU时间。所以我不能在我的笔记本电脑或任何不高端的PC上运行它。

我认为编写顶点着色器并将逻辑移动到GPU是个好主意。我已经阅读了一些教程并制作了一个香椿着色器,所以我想(错)我准备好了。

我遇到的一个大问题是我需要知道顶点的旧位置来计算新的顶点。我不知道如何检索顶点位置,以便每次都可以将它发送回着色器?

我不确定这是否可能做到这一点,也许我正在尝试做一些着色器从未打算做的事情。我还在研究,但我想我可以问一下是否有人可以提供帮助。

1 个答案:

答案 0 :(得分:1)

如果您的硬件支持OpenGL 3.0或更高版本,则可以使用转换反馈机制。还有其他技术可以使顶点位置返回,例如仔细排列渲染,以便您将三角形(或点基元)写入屏幕上的每个单独像素。这非常困难,您需要渲染到浮点缓冲区,这需要FBO支持。