threejs - gpgpu / rtt示例冗余行

时间:2014-03-28 12:51:09

标签: three.js webgl shader gpgpu

我真的很喜欢在三个例子中发现的gpgpu demo。在玩着色器时,尝试构建一个粒子模拟器,我很快就注意到我不需要手动更新纹理制服来改变粒子的位置。 我继续下载示例代码,发现以下几行似乎是多余的:

if (!paused) {
                simulator.simulate( delta );

                birdUniforms.texturePosition.value = simulator.currentPosition;//redundant?
                birdUniforms.textureVelocity.value = simulator.currentVelocity;//redundant?
            }

现在我想知道这些值设置在哪里,有更广泛了解threejs的人能告诉我在哪里看吗?虽然到目前为止我的应用程序运行良好,但我真的很烦我不明白为什么......

编辑:有没有办法找出在threejs内更新制服的时间/地点?尝试记录相应材料的制服总是返回null。是否可以在不使用着色材料的情况下更新着色器的制服?

1 个答案:

答案 0 :(得分:0)

看来,示例在某一点被重构,以隐藏SimulationRenderer内部的一些GPGPU实现细节 - 特别是ping-ponging - 并且主体中有一些遗留代码。实际上,birdUniforms未被使用。

也许你可以改进这个例子。

three.js r.66