繁体   English   中英

将一个动画模型中的多个网格组合成一个网格libgdx

[英]Combining multiple meshes in one animated model into one mesh, libgdx

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM