2012-02-19 91 views
2

我写了一个程序来模拟使用弹簧的软体。它看起来不错,但问题是它消耗了大量的CPU时间。所以我不能在我的笔记本电脑或任何高端PC上运行它。GLSL如何在着色器处理后检索顶点位置?

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

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

我真的不确定这是否可以做,也许我正在尝试着色器从来没有做的事情。我仍在研究,但我想我可以问一个看看有人可以帮忙。

回答

1

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

+0

非常感谢!我遇到了变换反馈,但我很少与我读过的所有其他东西一起丢失,所以我完全忘了它。这正是我在寻找的东西,我想象它会很酷,如果它存在的话!再次感谢! :d – Nikola 2012-02-19 16:46:56