2012-11-07 33 views
2

我在这里遇到了一些小问题。我有一个THREE.Line对象,有一个材质和一个几何图形。 init方法将2个顶点推到几何体上,将Line添加到场景中,线条呈现得很好。Three.js - 更新的几何体不会呈现更改

但是我有一个事件监听器......每次在画布上单击都会添加另一个顶点。但是当渲染场景时,只渲染原始的2个顶点。我输出了一个scene.children的转储,并且我确定该线在场景中,并且几何图形已更改。

在文档它说,一些有关应用:

geometry.dynamic = true 
geometry.verticesNeedUpdate = true 

但这些也不能工作。

+0

你试过重新运行任何'compute'方法吗? http://mrdoob.github.com/three.js/docs/52/#Reference/Core/Geometry – Chad

回答

4

见three.js所百科:https://github.com/mrdoob/three.js/wiki/Updates

只能更新缓冲区的内容,你不能调整缓冲区 (这是非常昂贵的,基本上等同于创造新的几何形状)。

您可以通过预先分配较大的缓冲区来模拟调整大小,然后保留不需要的顶点折叠/隐藏。

通过具有固定尺寸的顶点缓冲对象指定几何图形。您可以创建和删除缓冲区,但无法调整它们的大小。

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

three.js所R.52


编辑:一种更新方法中Drawing a line with three.js dynamically进行说明。

+0

感谢您使这更清晰;) – Leprosy

+0

什么。缓冲区的大小是多少?这里的缓冲区大小如何? –

+0

什么是保持不需要的顶点折叠/隐藏的最佳方式?由于顶点没有单独的“可见”属性,也没有单独的alpha着色,它们是否需要战略性地定位在另一个顶点? – Toph