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 循环生成几何体挂起,内存似乎很好_Three.js_Webgl - Fatal编程技术网

Three.js 循环生成几何体挂起,内存似乎很好

Three.js 循环生成几何体挂起,内存似乎很好,three.js,webgl,Three.js,Webgl,如果我在像这里这样的循环中生成管 (变量y=0;y

如果我在像这里这样的循环中生成管

(变量y=0;y<800;y++){…} 尽管主内存(任务管理器)和GPU内存看起来都很好,但循环开始挂起并且不会结束

它挂起在生成管几何图形的循环中。它甚至没有被渲染

有人知道这是怎么发生的吗


奇怪的是,700个循环在5秒内完成,800个循环根本没有完成,或者非常非常慢。

好吧,我只是看了看你的小提琴,我不确定你的整个循环。 你在你的循环中创造了太多的东西。例如,请参见材料。只需在循环外创建一次。 然后将向量[0]和[1]定义移动到循环外部和循环内部do向量[0]。y=。因此,您不会为每次运行创建2个3.Vector3()对象。另外,将所有变量声明移到循环之外。就像var线一样;在里面,你做的是直线=样条线。。。
接下来,为什么不在循环内创建整个样条曲线,然后在循环后创建一个管几何体,而不是创建数百个网格?我不知道你的用例

谢谢你的回答。主要的问题是我没有注意到任何内存问题,所以我不理解为什么循环挂起。我尝试将材料设置在循环之外,但没有帮助。我需要几千个不同颜色和不同样条线顶点的渲染管。Javascript对象有64k的限制吗?是的。几何体的索引缓冲区只能寻址65k个顶点。我认为还有一个bufferGeometry粒子示例,它演示了如何将多个65k顶点块与bufferGeometry一起使用。还有一个更高限制的扩展…请看这里:我如何确定缓冲区是否已满?奇怪的是,如果框架函数背后隐藏着64k限制,为什么google chrome会挂起800个绘制的样条曲线,而Firfox可以绘制更多。
    for (var y = 0; y < 800; y++){...}