Glsl 使用WebGL着色器处理阵列数据

Glsl 使用WebGL着色器处理阵列数据,glsl,shader,webgl,Glsl,Shader,Webgl,现在我正在做大量CPU密集型计算,以在我非常复杂的数据结构中找到某些顶点集。一旦我“找到”了这些,我就继续用WebGL渲染它们。。。 我想在这里使用GPU作为“并行化”的手段 我想知道是否有好方法可以直接在着色器上处理这些数据,并使用其结果渲染内容。我需要它输入一个大数组到着色器(制服!?),并可能保持着色器处理的每个顶点的计算结果不变 也许将我的所有数据表示为纹理将其输入着色器是个好主意。人们可以对纹理进行“查找”吗 我希望你能理解我的问题,并期待你对此的想法 可以将纹理视为一组数据,让着色器

现在我正在做大量CPU密集型计算,以在我非常复杂的数据结构中找到某些顶点集。一旦我“找到”了这些,我就继续用WebGL渲染它们。。。 我想在这里使用GPU作为“并行化”的手段

我想知道是否有好方法可以直接在着色器上处理这些数据,并使用其结果渲染内容。我需要它输入一个大数组到着色器(制服!?),并可能保持着色器处理的每个顶点的计算结果不变

也许将我的所有数据表示为纹理将其输入着色器是个好主意。人们可以对纹理进行“查找”吗


我希望你能理解我的问题,并期待你对此的想法

可以将纹理视为一组数据,让着色器读取该纹理,处理信息并将结果写入另一个纹理(连接到帧缓冲区)。如果希望在下一帧中使用结果,可以简单地交换纹理

下面是一个非常长且复杂的示例,演示了如何完全使用着色器计算粒子:

您还可以在以下位置阅读代码,这些代码有很好的文档记录:


希望有帮助

可以将纹理视为一组数据,让着色器读取该纹理,处理信息并将结果写入另一个纹理(连接到帧缓冲区)。如果希望在下一帧中使用结果,可以简单地交换纹理

下面是一个非常长且复杂的示例,演示了如何完全使用着色器计算粒子:

您还可以在以下位置阅读代码,这些代码有很好的文档记录:


希望有帮助

是的,您可以从着色器中的纹理查找值(这几乎是您唯一可以使用它们的操作)。否则你的问题很模糊,不清楚你的具体问题是什么。如果你只是想找一个普通的“我怎么做着色器”类教程,你可能想在别处找一个教程。是的,你可以从着色器中的纹理中查找值(这几乎是你唯一能用它们做的事情)。否则你的问题很模糊,不清楚你的具体问题是什么。如果你只是想找一个“我怎么做着色器”之类的教程,你可能想在别处找一个教程。非常感谢。这似乎就是我要找的。现在我将更仔细地看一看帧缓冲区对象。非常感谢。这似乎就是我要找的。现在我将更仔细地看一看帧缓冲区对象。