【问题标题】:Combining multiple meshes in one animated model into one mesh, libgdx将一个动画模型中的多个网格组合成一个网格,libgdx
【发布时间】:2015-04-18 14:57:42
【问题描述】:

我有一些动画角色模型(不是我自己创建的)我在 Maya 中查看过它们,它们由 5-7 个单独的网格组成;身体、眼睛、斗篷、剑等。在 libgdx 中渲染的每个模型都会增加大约 35 个绘制调用......我想减少这个。我在想我应该将模型的所有网格合并为一个。我无法在 Maya 中执行此操作(嗯,它使用组合网格功能工作,它仍然可以很好地动画等,但在网格组合后我无法将其导出到 FBX,因此我无法将它们放入我的游戏中)。所以我在想也许有办法在代码中做到这一点?

有什么方法可以将这些模型中的所有网格与 lbgdx 代码合并/组合?我看过 MeshPartBuilder.addMesh() 但据我了解,它不会将我添加的网格合并为一个?

【问题讨论】:

    标签: model 3d libgdx mesh


    【解决方案1】:

    MeshPartBuilder.addMesh 可用于合并(部分)网格。但是假设您正在谈论蒙皮,那么它不会那样工作,因为骨骼信息会有所不同。您必须手动更新每个顶点的骨骼索引。您最好将它们组合在一个建模应用程序中。

    除了在您的建模应用程序中合并网格之外,还有其他方面需要考虑。例如,网格的顶点大小不应超过 32k(java short 的最大值,用于索引),否则 fbx-conv 会将其拆分为更小的部分。

    同样,如果网格受到超过 12 个骨骼的积极影响,fbx-conv 将分割网格。您可以使用-b 命令行选项更改此设置。见:https://github.com/libgdx/libgdx/wiki/3D-animations-and-skinning#loading-skinning

    【讨论】:

    • 感谢您提供此信息。您是否还认为 1 个动画模型需要 35 次绘制调用很多?正如我所说,这些模型有几个网格和相当复杂的 HIK 骨架,当我包含动画时,它们相当于相当大的 fbx 文件。我可以从代码中做些什么来优化动画 3d 模型吗?考虑到我知道绘图调用的数量对我来说是一个瓶颈
    • 没关系,我通过复制粘贴获得了可以使用的链接(badlogicgames.com/forum/…。单击它时会转到主 wiki 页面)
    • 好收获!现在应该修好了。
    猜你喜欢
    • 2017-08-02
    • 2013-03-20
    • 2019-03-29
    • 1970-01-01
    • 2015-03-07
    • 1970-01-01
    • 1970-01-01
    • 2019-01-31
    • 1970-01-01
    相关资源
    最近更新 更多