3DMax多维子材质创建及在Unity里的渲染测试
技术综合 2452 0
实名

通过了实名认证的内容创造者

发布于 2021-6-26 09:51:22

您需要 登录 才可以下载或查看,没有账号?注册

x
大家好,我是云影。
一、3DMax创建多维子材质创建球体
v2-826c650627743ce1d23f6293ea60d7a5_720w.jpg
材质面板创建多维子材质
v2-284a240108968e1cecc514d6408578b1_720w.jpg
创建第一个子材质


同样的方法创建第二个子材质


变为可编辑多边形,F正视图,面层级,选择一半的面,材质ID设置为1.再用同样的办法把另外一面设置为2.


模型层级,在材质面板把多维子材质赋予给模型,就可以看到一个模型有了两种材质表现。


导出选定对象。

二、导入Unity并制作相关测试环境进行Camera设置,去除高级特性,Clear Flags设置为Solid Color


去掉天空盒,平行光设置为No Shadows。创建两个材质,使用Unlit/Color这个shader,颜色设置一下。


三、渲染分析Statistics面板方面:
可以看到Batches是2,说明在unity中对于多维子材质是按照两个模型去渲染的,相当于两个draw call。


Frame Debug方面:
从两张图可以进一步证实我们的想法,可以注意到中间的Preview处,每次渲染时提交的mesh是一个半球。顺便一提,在第二张图中有提示为何两个渲染批次,因为这两个模型使用的材质是不同的。



四、在工程上的应用从程序角度上来讲肯定是希望任何一个模型都不使用多维子材质,且最好是一个整个的模型,例如一个茶壶,最好是整个茶壶是一个模型,UV都展在一张图上,shader使用统一的shader,材质球只使用一个。这样能有效减少draw call,提高性能。
而从美术角度上来讲,复用性也十分必要,例如有AB两个人,现在想拼出来第三个人,如果使用多维子材质或者干脆人体本身就是由多个模型组成的,那么在3dmax中,很容易就可以把A的上身抽出来,把B的下身抽出来,然后一组合,就出了第三个人C。而且这样的方式能让每一个小部分使用单独的贴图,能有效降低内存压力。还是以上面的例子举例,ABC三个人实际上使用的贴图数量跟只有AB两个人时是一样的,而如果ABC每个人都是单独的一套材质球,那需要的贴图数就会提高,内存压力就会增加。


评分

参与人数 1元素币 +16 活跃度 +15 展开 理由
大西几 + 16 + 15 【感谢】楼主分享的内容!很棒!

查看全部评分

本帖被以下画板推荐:

还没有设置签名!您可以在此展示你的链接,或者个人主页!
使用道具 <
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表