UV 映射 Three.js 中的 BufferGeometrys 索引

UV-mapping a BufferGeometrys indices in Three.js

我在对立方体的每一面进行 UV 映射时遇到问题。立方体是作为 BufferGeometry 制作的,其中每一面都是一侧的旋转副本(某种工作模板),并通过应用四分之一相应地旋转。 UV 也会被复制。我将跳过我之前见过的任何顶点坐标并依赖索引。

这给我留下了总共 8 个顶点和 12 个面。但是我认为当我必须设置所有 UV 时我 运行 缺少顶点。正如屏幕截图所示,我已经 "correctly" 绘制了立方体的每一面。但缺乏顶部和底部。不知道怎么设置顶点UV顶面和底面

我能否以某种方式在同一个顶点上应用多个 UV,具体取决于它在哪个面上使用,或者我是否完全失去了情节?

我可以通过应用 6 个 PlaneBufferGeometry 来解决这个问题,但这会留下 4*6=24 个顶点。这比 8 多了很多。

我还没弄明白这个问题。要么我完全误解了它的工作原理,要么我想完成的事情在我的限制下是不可能的。

使用 BufferGeometry,只有当该顶点的所有属性都匹配时,才能重复使用该顶点。由于立方体的每个角都有 3 个垂直 normals,因此该顶点必须有 3 个副本。

如果您有 uvs,这是同样的问题——如果 uvs 不同,则顶点必须重复。

研究BoxBufferGeometry,实现为"indexed-BufferGeometry"。

three.js r.90