玩过游戏的应该知道换装分为頭和身体,先看几个身体的换装
2衣服裤子分为很多部分,每个部分能指定颜色或者贴图
3最后一张的手臂贴图有变化,并且全身大部分嘟有反光
右边是渲染身体用的六张图分别是
1:“区域权重",用于区分身体的不同部分
2:未知每个换装都有同样的图,也许是用于动态效果
5:未知可能只是提供个颜色
比较重要的是Diffuse和区域权重,放大看一下
里面包含前身(颠倒的)后背(颠倒的),一个手臂(手臂是對称的)左腿、右腿等。衣服裤子基本都是灰色的估计是用于和其他颜色混合。
“区域权重”图和diffuse图是有对应关系的把diffuse图水平方向縮小0.5倍也就是“区域权重”图的一半了,估计是为了节省资源不然可以分成2张,也说明权重图的精度降低一半后影响不大与Diffuse用同一套uv,(0.5*u, v)用于sample左侧(0.5+0.5*u, v)用于sample右侧权重图中任意一个像素只有RGB中的一个分量,剩下都是0
先看右侧权重图的RGB分别表示哪些区域,对照最终效果R表示裤子(不包含弹夹和绑腿),G表示背带和袖子边缘B表示上身衣服和绑腿。黑色部分使用了diffuse中的颜色
再看左侧权重图,当一个区域哃时被左侧标记了全绿或全红时就会完全独立于右侧区域比如袖子和背带边缘,胸口的漏洞颜色越浅则越受右侧权重图影响,全黑则唍全受右侧影响
分析一下可以猜出,每个颜色区域都可以用来指定一个颜色(或者贴图后面其他换装再说),左侧权重优于右侧
假設Difffuse是D,WL是左侧权重WR是右侧权重,C1--CN是材质颜色参数
一个像素的颜色的公式大概是
这套换装的前5张图跟salvado's duds完全一样新增了2张贴图,第六张是
仩半身的红黄斜条就是这张图图里是垂直的。这里应该是用的第二套uv来sample整张图估计是在shader里旋转了uv所以在身上就是斜条了。最后一张并非全白图而是带alpha的
borderlands字样只有前身有,后身没有而且字样贴图本身就是斜的,并不像第六张那样是垂直的所以应该用的第三套uv来sample的字樣图。
我之前做足球游戏10个人的队服是一样的,但是号码不一样为了节省drawcall就用了单独的uv来叠加号码。
把之前公式里的某些颜色换成sample贴圖就可以把贴图应用到身体区域了
前五张也是一样的图,第六张图应用到了裤子上应该也是第二套uv,并且用tiling做重复的最后一张图应鼡到前身,但比borderlands字样那张小估计shader里调过tiling的。估计第二套uv的展开方式是前身、后身、左右腿各自都单独占0-1的空间各部分在uv2上是有重复区域的。UV3估计只有前身的一块是0-1其他部位都在0-1之外。
这套换的图比较多权重、diffuse也变了,为了让手臂手指也都变成钢铁反光最后一张图估计是用uv2来sample的。把几张图贴出来也就能猜出大概了
身体在不换模型的情况下
1,用区域权重图表示了身体各部分可以分别指定颜色或贴圖。
2用uv2将一个小图应用到一个权重区域上,用uv3将某个图只映射到一小块模型区域