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

GLSL如何在着色器处理后检索顶点位置呢?,glsl,simulation,shader,Glsl,Simulation,Shader,我写了一个程序,用弹簧模拟柔体。它看起来不错,但问题是它消耗了大量的CPU时间。所以我不能在我的笔记本电脑或任何非高端PC上运行它 我认为写一个顶点着色器并将逻辑移到GPU是个好主意。我读了一些教程,制作了一个卡通着色器,所以我认为(错)我已经准备好了 我遇到的最大问题是,我需要知道一个顶点的旧位置来计算新位置。我不知道如何检索顶点位置,以便在每帧将其发送回着色器 我真的不确定这是否可能做到,也许我正在尝试做一些着色器从未打算做的事情。我还在研究,但我想我可以问一个问题,看看是否有人能帮上忙。如

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

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

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


我真的不确定这是否可能做到,也许我正在尝试做一些着色器从未打算做的事情。我还在研究,但我想我可以问一个问题,看看是否有人能帮上忙。

如果您的硬件支持OpenGL 3.0或更高版本,您可以使用转换反馈机制。还有其他一些恢复顶点位置的技术,比如仔细安排渲染,以便在屏幕上的每个单独像素上写入三角形(或点基本体)。这相当困难,您需要渲染到浮点缓冲区,这需要FBO支持。

非常感谢!我遇到了转换反馈,但我对我读过的所有其他东西都有点迷茫,所以我完全忘记了它。这正是我所寻找的,也是我所想象的,如果它存在的话,那会很酷!再次感谢!:D