ray渲皮肤效果优化
Hello,这里是被宛倾然大大的ik渲染皮肤效果(BV1dQ4y1Y7HC)惊艳到,然后折腾(被折磨)了一个晚上研究出适用于ray渲的类似加强阴影处皮肤透光效果(sss效果)的露露。(捂脸)
不过这个需要有一定的Blender操作基础,1.5及其以上版本的ray渲的操作基础
多图流预警
废话不多说,先上图:



操作方法:
准备阶段
先把需要进行皮肤材质改变的模型丢进Blender,不过为了节省制作oa贴图和曲率贴图的次数建议先把模型丢进pe里进行修改。(一个一个做会累死的)
删除骨骼,物理;将模型共用贴图的部分进行合并。


把模型丢进Blender,关闭多余材质并打开Cycles渲染,这里以“颜”的材质为示范进行修调。


这里为了能够明显看到效果我选择了用日光灯照射半边脸。

AO贴图的制作(以“颜”材质为例)
我们先把脸部的材质换成Blender的sss材质,这样做出来的AO贴图会比一般丢进ShaderMap或者直接PS硬杠AO贴图要精细很多。(下图为AO贴图生成对比)
不过一般场景用的AO贴图用ShaderMap或者直接PS硬杠就够了,反正又不凹光线,全靠法线。



然后,就是在Blender里的操作了:


这里把贴图替换成模型本身的贴图(1),然后根据自己的喜好对sss的透光效果进行调整(2)
这个只影响到模型后期在ray里面的立体度和阴影透光情况。


然后我们就会得到这样一张比较精细的AO贴图了。


曲率贴图制作部分
这部分的制作方法部分参考了BV1eJ411k7Yg的方法。
由于直接文字描述太复杂了我就直接图文解释吧:
首先需要先打开着色编辑器(下图模型下方的那个东西)
这个一定要打开,不然做着做着会混乱的(来自我这个菜鸡的咆哮)
如果你是编程大佬或者动画大佬请无视





这一步比较重要,直接关系到了贴图质量和ray渲里的透光效果(光打过来皮肤受光面和阴影之间的那条红线)
由于是昨晚临时起意,几乎通宵的研究,所以调高和调低的效果还没有进行测试,但整体推荐和ray自带的TDA皮肤曲率贴图保持一致,至少颜色不要差太大。
ray渲的TDA贴图位置如下:







用这个数值做好了的曲率贴图长这样:

虽然没有AO那么精美但也能凑合着用了,配合AO的阴影处透光效果能够弥补曲率贴图的一些小瑕疵。

ray渲材质修改
终于!到结尾了,到这里我们已经准备好了两张贴图,现在我们需要把这两张贴图复制进ray的Materials→Skin这个文件夹里。


好的!到这里请打开你的ray渲,怼上你的模型和天空盒准备好修改你的材质了!(开始愉快的折腾模型)
首先复制一份skin材质并进行改名(身体的部分复制身体的),让你的模型使用这个材质。
打开天空盒的sss+
(其实也可以不打开,反正一打光就出来了,特别是那种喜欢强光打光的人,没错,就是我)



把我们做的两个贴图加进ray渲的材质里面
需要改动的位置如下:

#define OCCLUSION_MAP_FROM这一行是我们的AO贴图,把0换成1是开启。其他不用管。
#define CUSTOM_A_MAP_FROM 和 #define CUSTOM_B_MAP_FROM 是我们的曲率贴图,全开。
const float customA = X.X;
const float3 customB = SSS_SKIN_TRANSMITTANCE(X.XX);
这两个是调节皮肤被光找到有多红的一个东西,范围在0-1之间,不过千万别调1,随便一个光源就能让人物的肤色红得和猴子屁股一样了。
#define CUSTOM_B_MAP_COLOR_FLIP
#define CUSTOM_B_MAP_APPLY_SCALE
这两个必须要开,不然我们做的曲率是没有效果的。
#define SSS_SKIN_TRANSMITTANCE(x) exp((1 - saturate(x)) * float3(-8, -26, -69))
这个看个人情况可调可不调,float后面的三个数值分别是BGR(注意,和正常的RGB是刚好相反的)
这里调好后的样子:


最后附上各贴图单独编入ray的材质里的效果:




两个都编入直接获得一张粉嫩嫩的小脸~
最后的最后,由于是通宵研究,之前并没有接触过曲率贴图和Blender烘焙外加塑料自学水平,所以难免有不严谨的地方还请大家多多见谅啦~