为啥有一长串没有任何底片的 PolygonVertexIndex(在一个 Fbx 文件中)?

Posted

技术标签:

【中文标题】为啥有一长串没有任何底片的 PolygonVertexIndex(在一个 Fbx 文件中)?【英文标题】:Why is there a long list of PolygonVertexIndex without any negatives (In one Fbx file)?为什么有一长串没有任何底片的 PolygonVertexIndex(在一个 Fbx 文件中)? 【发布时间】:2019-11-23 17:54:12 【问题描述】:

我使用搅拌机制作了一个默认圆柱体并将其导出到 fbx 文件中。转成json后查看文件内容,发现"PolygonVertexIndex"字段("Geometry"-"Objects"下)包含:"3, 1, 63, 61, 59, 57, 55, 53, 51, 49, 47, 45, 43, 41, 39, 37, 35, 33, 31, 29, 27, 25, 23, 21, 19, 17, 15, 13, 11, 9, 7"" 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60"

这些一致的正指数系列让我很困惑,因为我相信 fbx PolygonVertexIndex 以“正、正、负”(当曲面为三角形时)或“正、正、正、负”(当曲面为四边形时)存储索引。当我用谷歌搜索时,我找不到任何关于一致正指数的信息。

整个列表如下所示:

["PolygonVertexIndex", [[0, 1, 3, -3, 2, 3, 5, -5, 4, 5, 7, -7, 6, 7, 9, -9, 8, 9, 11, -11, 10, 11, 13, -13, 12, 13, 15, -15, 14, 15, 17, -17, 16, 17, 19, -19, 18, 19, 21, -21, 20, 21, 23, -23, 22, 23, 25, -25, 24, 25, 27, -27, 26, 27, 29, -29, 28, 29, 31, -31, 30, 31, 33, -33, 32, 33, 35, -35, 34, 35, 37, -37, 36, 37, 39, - 39, 38, 39, 41, -41, 40, 41, 43, -43, 42, 43, 45, -45, 44, 45, 47, -47, 46, 47, 49, -49, 48, 49 , 51, -51, 50, 51, 53, -53, 52, 53, 55, -55, 54, 55, 57, -57, 56, 57, 59, -59, 58, 59, 61, -61 , 3, 1, 63, 61, 59, 57, 55, 53, 51, 49, 47, 45, 43, 41, 39, 37, 35, 33, 31, 29, 27, 25, 23, 21, 19 , 17, 15, 13, 11, 9, 7, -6, 60, 61, 63, -63, 62, 63, 1, -1, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, -63]], "i", []],

可以看出,索引在列表开始时很好,但后来变得很奇怪。

【问题讨论】:

【参考方案1】:

该列表包含结束多边形的负数并且看起来一致。多边形不限于三角形或四边形,它可以包含任意数量的顶点。

创建圆柱体网格的一种方法是在两侧使用四边形,在两端使用圆形。在您的情况下,这两个长系列正数是两个圆,编码为两个大多边形,每个包含 32 个顶点。

【讨论】:

哦,我明白了!非常感谢!

以上是关于为啥有一长串没有任何底片的 PolygonVertexIndex(在一个 Fbx 文件中)?的主要内容,如果未能解决你的问题,请参考以下文章

将一长串文本粘贴到 Heroku rails 控制台

如何在 VueJS 中将一长串“手表”转换为功能方式?

为啥javascript小数相减会出现一长串的小数位数?

在Java .replaceAll方法中转义一长串元字符

编写一长串 if 语句的速记方法

str.Format(_T("%lf"),n1),转换的字符串会出现小数点后的一长串零,怎么去掉?