增加网格上最大指定变形目标的数量

Increase number of maximum assigned morph targets on a mesh

我有一个包含 17 个变形目标和变形法线的网格。我想同时分配至少大约 10 个。 现在我意识到 three.js 一次只支持 8 个变形目标,变形法线只有 4 个。

在 github 上找到 this 个话题。有趣的是,这还不到一天。目前没有相关问题出现,所以我问一下。

我想知道是否有可能增加最大数量。也许通过覆盖底层着色器。

为什么这会受到限制而不是变形顶点的最大数量,这对性能更有意义。

大多数显卡只支持 16 个顶点属性。因为 three.js 在 GPU 上计算变形目标,它需要分配这 16 个属性,以便位置、法线、蒙皮和顶点颜色等也有可用的属性。这就是为什么 three.js 有 8 个属性可用于变形目标的限制——其他 8 个分配在别处。从技术上讲,可以修改 three.js 并更改它——比如说,获得最多 15 个变形目标和 1 个位置属性——但这对于 SO 答案来说可能太复杂了。