我正在为 Android 编写一个粒子过滤器应用程序。我希望 GPU 并行处理所有粒子。
我在顶点着色器中有代码可以根据当前位置更新每个粒子或顶点的位置,但我不知道如何将更新后的位置写回openGLES,甚至不知道如何将其提供给着色器处理下一次运行相同的顶点。
属性变量具有适当的范围,但只能在顶点着色器中读取。
统一变量有适当的范围,但你不能做数组(所以很难为大量顶点实现统一)。同样,它们只能在顶点着色器中读取。
可变变量具有允许修改的范围,但它们仅对程序中的片段着色器可见。如果片段着色器可以将信息写入openGLES,这可能会起作用。片段着色器可以修改属性变量(用于下一次运行)吗?
片段着色器有没有办法更新任何变量?{属性,统一,变化,默认,其他}或者可能写出一个缓冲区而不是显示器而不是内存?