外观
MakeEmbroid
准备
使用SD制作刺绣纹样目前有两种思路:
- 其一是通过全程序化的方式,用各种基础图形组合得到。
- 这种方式比较优雅,迭代迅速。但是前期制作需要耗费大量的时间,且对SD设计师要求较高(也可能是我太菜)
- 其二是使用美术提供高精度灰度图,通过灰度提取,然后在区域内散布针织纹理得到比较不错的结果。
- 这种方式相对而言比较简单,对原始灰度图的要求较高。不过在输入的灰度图规则确定的情况下,迭代速度也较快。
- SuperStar选用第二种方案。
灰度提取
灰度提取使用Histogram节点,控制Position和Contrast得到灰度值小于Position的灰度区域。
当需要提取第二层灰度区域时,使用Blend节点,减去第一层的结果即可,以此类推。
对于这些毛糙的边缘,将在后续步骤中消除。
刺绣纹样
刺绣纹样的核心是TileSampler节点,三个输入分别是:
基础纹样
使用Transform将高斯Paraboloid Shape压扁即可。
法线
这里将Blur之后的第二层灰度输入经过Bevel处理得到法线,作用是提供Tile时的针织朝向。在TileSampler节点中调整Rotation参数可以设置整体受法线方向性影响的程度。
遮罩
这一串处理就是用来去掉之前Blend造成的零星亮点。
输出
Tile完成后调整色阶并与Color混合得到对应颜色的刺绣纹样。而遮罩部分可以使用Bevel节点得到大尺度的法线,用于表现刺绣部分的四周凹中间凸的质感。
合并输出
得到各个层级的BaseColor和大尺度法线周,使用Blend节点组合起来就是最终的输出了。
这里注意法线的混合使用NormalCombine。