代码之家  ›  专栏  ›  技术社区  ›  Mike

旋转线段(不是对象)

  •  0
  • Mike  · 技术社区  · 6 年前

    我正在使用three.js创建一个折纸效果的图像过渡(即用当前图像对一个对象进行纹理处理,折叠对象中的片段,也许用颜色清洗,下载下一个图像,然后展开对象以显示新的图像。)我想编写一个引擎,可以根据相册生成不同的形状。

    到目前为止的设计是根据折叠的位置来定义节段,移动要折叠节段的Z索引,然后将节段(和任何连接的节段)沿移动方向旋转180度。

    问题是,似乎有旋转物体的函数,但据我所知,没有分段。除了用手重新计算线段,还有什么方法可以旋转物体的线段吗?

    1 回复  |  直到 6 年前
        1
  •  1
  •   TheJim01    6 年前

    如果我理解正确的话,用你想做的方式做你想做的事情的问题是你不断地更新几何缓冲区,反过来,它需要不断地重新发送到GPU。对于小网格,这可能有足够好的性能,但这仍然是一个通常昂贵的操作。

    怎样 它们展开/折叠。

    两帧之间的差异是不可察觉的。展开的图像将被映射到同一个平面上。然后,在单个帧中,将帧交换为可折叠的网格集合,然后开始创建动画。通过使用UV坐标,将图像上的关键点与折叠线段的顶点联系起来,可以将图像映射到与单个平面相同的集合上。

    如果这有帮助,太好了。如果你有问题,或者想要一个例子,让我知道,虽然我现在没有时间把一个复杂的演示。