各位小伙伴早上好啊!真的又隔了很久才再次见面。。这次是工作上一个同事在网上看到了一篇有意思的文章分享给我,觉得这种方式确实挺有意思,反正我是之前没有这么去考虑过。希望能够给大家带来一点启发!!
此文章转载于知乎:
UE4 多象限(UDIM)贴图在UE4中的应用 Environment k的文章 - 知乎
https://zhuanlan.zhihu.com/p/63257443
在工作的过程中,收到了模型组的小伙伴的反馈。询问我在UE4中是否可以使用UDIM多象限贴图的制作流程。我之前是一名材质师,所有在接收到这个问题的时候,我是觉得非常有必要去解决的,特别是在影视方面的视觉要求,使用UDIM的制作流程是可以大大的提高渲染速度和品质。
如图所示是我在Maya中对UMIM的的使用展示。一个六面体的每个面都放在一个单位的UV里面,一共有六张图,在Texture属性中将UV类型改为UDIM就可以了,maya会自动识别贴图命名格式。
在UE4中的目前在使用过程中我还没有发现官方的UDIM的使用方法(可能我深入了解的还不够)。所以在我去了解和查阅资料之后,我找到一个国外大佬的一种制作手段和他的思路理解,我在这里把这个分享给大家。
首先我们需要理解一下maya中的UV是怎么来理解的。我把UV理解为一个二维向量XY轴,在默认的情况下一张贴图会平铺在第一个单元格内,超出部分会重复第一个单元格的贴图。所有按照这个理论,我在UE4中的材质编辑器中编写了这样的一个结构。
分析一下这个结构体,首先我们将控制UV属性的TextureCoordinate中的X向量提取出来作为一个判断标准。使用IF节点进行判断,当着个向量大于象限中输入的值的时候就输出B通道。同理重复这个过程到你多项限的贴图数量。效果如图所示,和maya是一致。至此效果达到。为了方便制作人员的操作我把这整个结构制作成了一个材质函数,可以直接调用,就不用每次都重复的去写繁琐的节点。
到目前为止我需要介绍的UDIM的做法就结束了
接下我想和大家解释一下我为什么想在UE4中要用UDIM来制作。首先我们按照常规的思想4张2K的贴图的分辨率应该是和1张4K贴图的分辨率是一样的,那如果是一样的为什么要用这么麻烦的方法去制作UDIM,不如直接使用一张4K的贴图呢,,这样不是更省时间吗?
其实不然2K的贴图和4k的贴图还是有本质的区别的。
这是我用PS输出的两张分别是2K和4K的贴图。在UE4中查看他的占内存情况。2K的占了2.8Mib的内存,而4K的却占了67.2Mib的内存,结果显而易见。如果能更多的使用多象限的做法。不仅能够得到好的画面质感,还可以在渲染,或者游戏的过程中消耗更小的内存。前期的付出就会在后面的优化过程中的到该有的回报。还是蛮不错的吗 哈哈~~~
好了这个就是我今天想分享的一个UDIM多象限的做法。如果有更好的做法可以私聊我,一起交流,或者有写的不对的地方给我及时纠正,谢谢大家
题外话(虽然解决了UDIM的问题,但是我在想,如果场景需要烘焙,那么灯光贴图是不是也会有该有的效果还是会报错呢?这个也是我的疑问,有知道的大佬告知一下万谢)