在WebGL应用程序的顶点着色器程序中,我正在执行以下操作:
使用随时间变化的函数f(t)计算gl_Position P.
我的问题是:
是否可以存储在顶点着色器中计算的更新的P(t),以便我可以在下一个时间步骤中使用它?这对于执行一些边界测试很有用.
我已经阅读了一些关于如何使用纹理来存储和更新vextex位置的信息,但这在WebGL中是否可行,因为在OpenGL ES 1.0中,甚至顶点程序的纹理访问都不受支持?
对于一个更具体的例子,让我们说我们试图根据等式R(t)=(k*t,0,0)来移动一个点.这些位置在顶点着色器中更新,这使得点移动.现在,如果我想让点在位于R =(C,0,0)的墙上反弹.要做到这一点,我们需要点在t - dt的位置.(上一个时间步).
任何想法都赞赏.
问候
除了前面的答案之外,您还可以绕过 PBO 获取顶点纹理,但我不知道它们是否在 WebGL 或 GLES 中受支持,因为我只有桌面 GL 经验。您将顶点位置写入帧缓冲区。但是,您可以将它们复制到顶点缓冲区(通过 PBO 效果最好),并将它们用作通常的顶点属性,而不是使用它们作为顶点纹理。这是进行变换反馈的旧方法,我认为不支持这种方法。