1、完美动力材质教程 详解Maya皮肤材质完美动力材质教程:详解Maya皮肤材质Maya皮肤材质 首先看一下效果。根据需要还可以细调。这里用的是lambert材质,可以很好的接受阴影。 下面给出节点网。 这个节点网的关键就是要详细理解这个节点:lightInfo。 打开节点属性,仅有一个选项:Light Direction Only。 这个节点平时使用的并不是很多,它的作用是提供灯光信息,以及提供灯光相对于纹理的 位置信息。但如果将其它物体(如A物体)的World Matrix与该节点的World Matrix连接,则可以返回物体(如A物体)与有lightInfo节点的材质的物体上的点的距离。 例
2、如将上面的节点网的lambert1赋予物体B,然后将物体A的World Matrix与上面节点网中的lightInfo节点的World Matrix相连,那么将会得到物体A(中心)到物体B上每个点的距离。 而当Light Direction Only被勾选时,则只会返回物体A到物体B上每个点的垂线距离。 下面这张图就是这个材质的关键,也就是这个节点网的根。 上图中的那个Locator是怎么来的先不用管,等一下会介绍,先讲一下那两个lightInfo节点,上面那个勾选了Light Direction Only,那么它得到的信息就是物体到点的距离垂线,下面那个没有勾选,那么得到的就是距离。 然后再
3、将这两个信息相除:距离垂线/距离=cos夹角。为什么要这么做呢,大家可以想一下,所谓3S,也就是次表面反射,那么也就是越到边缘越薄的地方通透感越强,而这种通透感并不是线形递减的,是一种非常微秒而柔和过渡,那么在这里我用一个cos波形曲线来模拟。 但这样出来的效果并不是十分满意,还需要进行调整,所以在后面在加一个平方节点和一个乘法节点(其实是同一个节点,只是选项不同),修改里面的数值可以调整材质效果。 再连接一个节点网作为材质的颜色,并与刚刚得到的信息进行相乘。 将得到的信息连接到材质球的color后,再把这个信息进行一系列的处理,再连接到物体的ambientColor(环境光),最终得到想要的
4、结果。 下面讲一下locator 这个locator非常重要,大家仔细想一下就可以知道,要完成以上的节点必须要一 个永远处在摄像机与物体连线上的locator,如果不是这样,而是一个固定的locator,那么物体也不会随着摄像机的变化而改变通透感,我们需要的 是随着摄像机的变化,物体上的微妙的通透感也随着变化。 这个纯粹是通过数学计算得到的,如果数学不好的话,我一下也讲不清楚,所以大家可以看看节点网,之后再看看源文件,应该很容易明白。 另外这里用到了一个功能节点distanceBtween,它的作用是计算两个物体间的距离。 另外我还在其中一个节点(surfaceShader4)中添加了几个属性来更方便的控制,例如其中的Sss_ds就是控制locator与物体间的距离的。