Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Three.js threejs-gpgpu/rtt示例冗余线路_Three.js_Webgl_Shader_Gpgpu - Fatal编程技术网

Three.js threejs-gpgpu/rtt示例冗余线路

Three.js threejs-gpgpu/rtt示例冗余线路,three.js,webgl,shader,gpgpu,Three.js,Webgl,Shader,Gpgpu,我真的很喜欢在三个JS示例中找到的。在使用着色器时,尝试构建“细胞中的粒子”模拟器,我很快注意到我不需要手动更新纹理制服来更改粒子的位置。 我继续下载示例代码,发现以下几行似乎是多余的: if (!paused) { simulator.simulate( delta ); birdUniforms.texturePosition.value = simulator.currentPosition;//redundant?

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

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

                birdUniforms.texturePosition.value = simulator.currentPosition;//redundant?
                birdUniforms.textureVelocity.value = simulator.currentVelocity;//redundant?
            }
现在我想知道这些值是在哪里设置的,有没有对threejs有更广泛了解的人能告诉我应该在哪里查找?虽然到目前为止我的应用程序运行得很好,但我真的不明白为什么


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

似乎在某一点上对该示例进行了重构,以将一些GPGPU实现细节隐藏在
SimulationRenderer
中,尤其是乒乓球,并且在主体中还有一些剩余代码。事实上,
birdUniforms
并没有被使用

也许你可以改进这个例子


three.js r.66

嘿!谢谢你的回答!事实上,制服可以放在一起。不过,birdVS着色器中的两个sampler2D制服仍在某处更新。然而,在SimulationRenderer中,我没有找到引用birdVS着色器的代码。我还发现,在birdVS着色器中更改制服的名称根本不会影响其功能,这让我感到困惑。还是我没看到什么?@cacahuananche我也看到了——给制服重新命名。我一辈子都搞不清楚是什么在更新这些位置和速度。鸟人究竟是如何知道模拟中的更新的?