Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.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
Javascript Three.js-更新的几何体未呈现更改_Javascript_3d_Three.js - Fatal编程技术网

Javascript Three.js-更新的几何体未呈现更改

Javascript Three.js-更新的几何体未呈现更改,javascript,3d,three.js,Javascript,3d,Three.js,我这里有个小问题。我有一个THREE.Line对象,带有材质和几何体。init方法将两个顶点推到几何体上,将线添加到场景中,线被渲染得很好 但我有一个事件监听器。。。画布中的每次单击都将添加另一个顶点。但渲染场景时,仅渲染原始的两个顶点。我已经输出了一个转储的scene.children,我确信该行在场景中,并且几何体已经更改 在文档中,它说明了如何应用: geometry.dynamic = true geometry.verticesNeedUpdate = true 但是这些也不起作用

我这里有个小问题。我有一个
THREE.Line
对象,带有材质和几何体。init方法将两个顶点推到几何体上,将线添加到场景中,线被渲染得很好

但我有一个事件监听器。。。画布中的每次单击都将添加另一个顶点。但渲染场景时,仅渲染原始的两个顶点。我已经输出了一个转储的
scene.children
,我确信该行在场景中,并且几何体已经更改

在文档中,它说明了如何应用:

geometry.dynamic = true
geometry.verticesNeedUpdate = true 
但是这些也不起作用。

请参见three.js Wiki:

只能更新缓冲区的内容,不能调整缓冲区的大小 (这非常昂贵,基本上相当于创建新几何体)

您可以通过预先分配更大的缓冲区,然后 保持不需要的顶点折叠/隐藏

几何图形是通过具有固定大小的顶点缓冲区对象指定的。可以创建和删除缓冲区,但不能调整缓冲区的大小

作为一种解决方法,您可以创建具有额外顶点的几何体,并将不需要的顶点折叠为一个点

3.js r.52


编辑:中介绍了更新的方法。

请参阅three.js Wiki:

只能更新缓冲区的内容,不能调整缓冲区的大小 (这非常昂贵,基本上相当于创建新几何体)

您可以通过预先分配更大的缓冲区,然后 保持不需要的顶点折叠/隐藏

几何图形是通过具有固定大小的顶点缓冲区对象指定的。可以创建和删除缓冲区,但不能调整缓冲区的大小

作为一种解决方法,您可以创建具有额外顶点的几何体,并将不需要的顶点折叠为一个点

3.js r.52



编辑:中介绍了一种较新的方法。

您是否尝试过重新运行任何
compute
方法?您是否尝试过重新运行任何
compute
方法?搞什么鬼。缓冲区的大小是否=其拥有的点数?缓冲区的大小如何与此相关?保持不需要的顶点折叠/隐藏的最佳方法是什么?由于顶点没有单独的
可见属性,也没有单独的alpha着色,它们是否只需要战略性地定位在另一个顶点上?r72现在有了一个更优雅的解决方案-见鬼。缓冲区的大小是否=其拥有的点数?缓冲区的大小如何与此相关?保持不需要的顶点折叠/隐藏的最佳方法是什么?由于顶点没有单独的
可见属性,也没有单独的alpha着色,它们是否只需要战略性地定位在另一个顶点上?r72现在有了一个更优雅的解决方案-