首页 > 解决方案 > 自动将不同的网格组合成一个,同时保留纹理

问题描述

我目前正在开发一个类似于 Minecraft 的世界生成的 Unity 项目。目标是在世界上生成不同的块,每个块都有自己的材质,然后将它们组合成一个大网格。我的问题是,这会删除他们所有的材料(因为新网格只能有一种材料)。我听说过一种使用所谓的纹理图集的方法,但找不到任何具体的东西,所以我的问题是

我尝试的一件事是为世界上的每个立方体生成一个网格,然后将它们组合成更大的网格,但这会丢失所有看起来像这样的材料数据: 右侧的单个网格,左侧的大网格

提前致谢!

标签: c#unity3d

解决方案


如果您谈论纹理图集是因为您想节省绘制调用(或以一般方式获得更好的性能),那么您将不得不编写大量代码来创建此类图集并更新合并网格的 UV,所以他们在地图集中引用了正确的纹理。这样做还可以防止平铺纹理(即:超出 UV 的 [0;1] 范围),或者至少它会使其更加复杂并带来一些严重的限制。

如果您负担得起,这就是它的工具,除其他外:https ://assetstore.unity.com/packages/tools/modeling/mesh-baker-5017 (我从未尝试过,我推出了自己的解决方案)


推荐阅读