我坚持使用我的程序渲染所有粒子,但只在 3 上更新 1 个粒子。这是我为测试它所做的工作。我用我的 10 个粒子制作了一个 vbo,将它们全部对齐并设置计算着色器以在每次更新时修改它们的 x 位置(pos.x+=0.1)。这是大约 1-2 秒后的结果(图像为 1:5 比例):
我使用 local_size_x = 1, local_size_y = 1 和 local_size_z = 1,然后是 DispatchCompute(10,1,1) 。我对调用 ID 做错了吗?
更新
通过添加填充在着色器中使用结构定义使其每次更新仅跳过一个数据。这意味着这是一个填充问题,但我找不到关于如何正确填充的任何好的解释。另外,可以不垫吗?如果我不想要所有这些额外的、无用的数据怎么办?