【问题标题】:three.js animation: Skeleton/Skinning vs Morphthree.js 动画:骨架/蒙皮 vs 变形
【发布时间】:2014-12-13 09:31:45
【问题描述】:

所以在对变形和骨骼动画(从 Blender 导出)进行了一些试验后,我发现骨骼文件比变形文件小了近 10 倍。看起来显然骨骼是更好的选择,但我想知道使用它是否有缺点。

具体来说,我怀疑为骨骼设置动画而不是变形需要更多的处理。什么时候比另一个更好?如果我为 100 个模型制作动画而不是一个模型,这有关系吗?如果 skeletal 确实需要更多处理,并且我在线托管应用程序,那么带宽的减少(由于文件较小)是否值得在运行时进行额外的处理?

感谢您的任何意见。

【问题讨论】:

    标签: animation three.js blender morphing skeletal-animation


    【解决方案1】:

    确实,骨骼动画需要稍微多一些处理,因为骨骼的矩阵必须在每一帧中计算(在 JS 中)并上传到 GPU。使用变形动画时,所有插值都可以在 GPU 端完成。所以这确实是一种内存性能交易。

    当您确实同时播放多个动画时,处理确实会产生一些成本。然而,与此同时,几个不同的变形动画会有很大的文件大小。

    正如你所说。

    所以这取决于大小写。有几点需要注意:

    • 如果动画不是太快或太复杂,可以以减少每秒帧数的方式存储变形动画,这样您的文件就会更小。
    • 骨骼动画具有骨骼信息,您可以使用这些信息将物体附加到模型上,例如你有一个士兵模型,你想把不同的枪附加到它上面。使用变形动画,您无法做到这一点,因此您必须同时为士兵和每一把枪制作动画。
    • 实际上,您可以在同一个应用程序中使用这两种类型的动画,为每种用途选择最合适的。
    • SkinnedMesh-es 与 MorphAnimMesh-es 不同,目前不支持光线投射。如果您需要光线投射,例如对于选择对象,您暂时需要使用变形动画。

    【讨论】:

      猜你喜欢
      • 2013-06-26
      • 1970-01-01
      • 1970-01-01
      • 2013-07-20
      • 2015-04-29
      • 2021-12-16
      • 2021-01-17
      • 2020-02-16
      • 2014-10-16
      相关资源
      最近更新 更多