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
kirigami在three.js中的最佳几何图形?_Three.js - Fatal编程技术网

kirigami在three.js中的最佳几何图形?

kirigami在three.js中的最佳几何图形?,three.js,Three.js,我试图在three.js中为简单的弹出式kirigami对象建模。以下是一些真实的例子: 目前,我可以使用形状对象构建它们,首先在2d中绘制,然后旋转并转换到位 这是可行的,但我想知道是否有一种更合适的几何体,我应该使用它,在three.js中将整张纸重新创建为单个对象,而不是单个曲面的集合。最终,我希望能够打开和关闭弹出窗口 我读了又读了文档和示例,但我无法理解这一点。我对threejs是新手,对它的功能感到眼花缭乱,但这是一个陡峭的学习曲线。谢谢你的智慧。我不建议从单个网格创建这种形状。

我试图在three.js中为简单的弹出式kirigami对象建模。以下是一些真实的例子:

目前,我可以使用形状对象构建它们,首先在2d中绘制,然后旋转并转换到位

这是可行的,但我想知道是否有一种更合适的几何体,我应该使用它,在three.js中将整张纸重新创建为单个对象,而不是单个曲面的集合。最终,我希望能够打开和关闭弹出窗口


我读了又读了文档和示例,但我无法理解这一点。我对threejs是新手,对它的功能感到眼花缭乱,但这是一个陡峭的学习曲线。谢谢你的智慧。

我不建议从单个网格创建这种形状。在这种情况下,您需要在折叠/展开对象时更新几何体的顶点,这意味着您要不断更改发送到GPU的缓冲区。您说您已经使用了
形状
,如果您想以编程方式定义形状的轮廓,这很好。如果考虑到静态角点,可以使用
BufferGeometry
定义形状,并使用它创建
Mesh
,就像现在一样。长话短说,您使用多个网格的方式是正确的。谢谢。当我更改当前模型中点的位置时,我必须遍历并更新所有形状中的顶点。这是一个或两个更复杂的步骤,因为他们不使用
Vector3
,因为
Shape
不这样做,所以我必须更改形状
Vector2
,以及它们的
.rotation
,然后更新这些东西。我希望,如果有一种方法可以构造一个单一的复杂网格,我可以将所有内容都保留在3空间中(以便我的渲染与我的数学模型相匹配),并总体上执行一个
更新。考虑任何网格。您可以更改其
位置
/
旋转
,而不是更新其顶点。更改
位置
/
旋转
时,它会立即影响整个形状。因此,只要可以计算形状在特定折叠角度下的位置(使边保持对齐),则只需要为每个形状网格更新两个值,而不是更新所有顶点。这有意义吗?如果我稍后有时间,我会制作一把小提琴作为例子。谢谢,我理解。我的项目是创建算法可调的弹出窗口。因此,首先它使Object3D包含所有网格形状对象,但随后它需要进入其中并根据UI控制的一系列算法调整其所有顶点。这些形状不仅仅是改变位置和旋转,而是改变形状,因为用户需要调整设置。所以我想我确实需要计算各个顶点,然后进行更新。我的模型将点计算为Vector3,但形状对象采用Vector2,因此我希望使用单个几何体。