2023-10-4-解析matrix第二套uv排布brick-block下集

上一篇中通过排查多个matrix资产模型想要寻找是否存在能够对任意建筑部件模型自动展开uv排布brick-block的方法。显然这不太可能,比如下图中这个模型,可以看到其地面和两侧的隆起没有切分,而窗框的柱子、两侧的壁柱有水平方向的切分,看似大小差不多,墙面的切分明显与壁柱不同,更不用说窗户的拱顶。

根据上一篇的经验可知一个完整模型的uv可能是多个模型合并后合并的uv,这和材质的slot一样,随着不断合并就有多个材质slot。这么看的话如果细分到每个单独模型是否存在能够自动展开uv排布brick-block的方法?下面这个模型底端的那个半柱状挤出可以说是合并上去的单独模型,其余部分怎么看都是一个整体,这种情况下存在有切分和没切分说明同一模型中的brick-block必然是需要手动控制的。

可以看到matrix原版的分解如下,上下两个大块面不涉及切分所以被压缩到了两条切分线以内,这么做其实导致了这些大块面的texel density很低,起码比起带切分的中间部分要低很多。不过近距离观察模型在ue中的渲染效果,并没有察觉texel density巨大差异而带来的视觉突兀。

那么如何去操控这些uv呢?对于没有切分线的部分似乎像一股脑不叠整齐就把衣服塞进抽屉里一样也不会有啥大的影响。但是对于多个有切分线的块面,它们之间的切分线需要在水平方向上平行一致,切分大小要一致,那么就需要精确的排布了。我之前想利用matrix中的模型reset uv之后对不同块面进行uv展开、拼接,在这个过程中我发现一些断面是由于导出的gltf模型存在断面所以用L键选关联面会断开,然而当合并这些点后L键居然全选所有面了,看来不好利用,另一方面这些面用quadrify island工具做不到完全打直,对两个块面选取后zen unwrap也不能像视频演示中的那样拼接uv,我想是因为布线混乱导致的,因此可以推测uv展开、拼接与模型布线有一定关系。

我自己仿照这个部件建模后,L选择关联面zen unwrap可以看到插件对关联面的边界mark seam,对于这些规整的几何面quadrify island工具没有问题,对两组关联面zen unwrap之后可以顺利将它们拼接起来,这样的话uv打直、拼接解决了,问题是如何对这些块面排布呢?

在这之前从头演示一遍,reset uv之后对要分块的面利用ctrl键快速加选,这里要纠正下前面提到用L键对于我做的简单模型也是完全选择并不能智能的选取部分,而ctrl键最短路径对matrix导出的布线混乱模型也无能为力。选取面之后zen unwrap即会对选取部分mark seam。可以看到这些块面的大小大相径庭,显然这样是没法做到精准排列的。下图3为两组uv通过zen unwrap拼接。

在shading模式下添加uv maps、image texture节点,选择第二套uv。这样便可实时预览block-brick的切分。在这个例子中,我们希望水平切分线在凹槽里,因此对于一个重复垂直平铺的polygroup(多个面)?设法让一个polygroup的垂直长度等于一个uv“砖块”长度,然后移动使凹槽垂直中心位于两个uv“砖块”的交界切分处,那么循环平铺会让线始终正好在这个位置。这样一个块面的uv就算布置好了!

接下来get TD获取做好的块面的texel density,对其余部分set TD,此时会发现uv区块的大小和完成的部分一致了,再用点捕捉便可让它在位置上与做好的部分平齐。不过可以看出来它们之前的长度还是有细微差别,我暂时不清楚这是什么原因。

2023-10-4-智能生成matrix中的四个遮罩 2023-9-29-解析matrix第二套uv排布brick-block上集

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×