0

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

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

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

我希望您能理解我的问题,并期待您对此的看法!

4

1 回答 1

2

您可以将纹理视为数据数组,并让着色器从该纹理中读取,处理信息并将结果写入另一个纹理(挂钩到帧缓冲区)。如果您想在下一帧中使用结果,您只需交换纹理即可。

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

http://i-am-glow.com/?page_id=183

您还可以在此处阅读记录良好的代码:

http://empaempa.github.com/GLOW/examples/complicated/Complicated.js

希望有帮助!

于 2012-04-18T12:08:15.560 回答