我真的很喜欢在三个例子中找到的gpgpu demo。当玩着色器,试图建立一个粒子在细胞模拟器,我很快注意到,我不需要手动更新纹理制服来改变粒子的位置。我继续下载示例代码,发现以下几行似乎是多余的:
if (!paused) {
simulator.simulate( delta );
birdUniforms.texturePosition.value = simulator.currentPosition;//redundant?
birdUniforms.textureVelocity.value = simulator.currentVelocity;//redundant?
}现在我想知道这些值还在哪里设置,谁能对threejs有更广泛的理解,告诉我应该在哪里查找?虽然我的应用程序到目前为止工作得很好,但我真的很困扰我,我不明白为什么……
编辑:有没有办法找出制服更新的时间/地点?尝试记录相应材料的制服总是返回null。是否有可能在不使用着色器材质的情况下更新着色器的制服?
发布于 2014-03-28 22:26:33
该示例似乎在某一时刻被重构,以隐藏SimulationRenderer中的一些GPGPU实现细节--特别是ping-ponging --并且主体中有一些遗留代码。实际上,没有使用birdUniforms。
也许你可以改进这个例子。
three.js r.66
https://stackoverflow.com/questions/22713403
复制相似问题