计算着色器仅更新部分数据

时间:2014-09-10 00:30:38

标签: opengl glsl vbo compute-shader

我坚持使用我的程序渲染所有粒子,但只更新了3粒子。这就是我测试它所做的。我用10个粒子做了一个vbo,把它们全部对齐了veticaly并设置了计算着色器以在每次更新时修改它们的x位置(pos.x + = 0.1)。这是大约1-2秒后的结果(图像是1:5比例):

example

我使用local_size_x = 1,local_size_y = 1和local_size_z = 1,然后使用DispatchCompute(10,1,1)。我是否对调用ID做错了什么?

更新

通过添加填充来在着色器中使用结构定义,使其每次更新时只跳过一个数据。这意味着它是一个填充问题,但我无法找到关于如何正确填充的任何好的解释。另外,是否可以不填充?如果我不想要所有这些额外的,无用的数据怎么办?

0 个答案:

没有答案