一、前言
在上一篇文章中
【精选】Unity | Shader基础知识(什么是shader)_unity shader_菌菌巧乐兹的博客-CSDN博客
我们讲了什么是shader,今天我们讲一下shder和material的关系
二、在unity中shader的本质
unity中,shader就是一串代码,如下图shader(就是一个平平无奇的shader)
但是,这个shader可以被打开,点击open
打开后如下,这里不用了解太多,你就知道,这是一篇代码
所以,从最本质上,shader就是一大堆的代码
三、shader代码的作用
这些代码的主要作用,就是从公式的角度上,先写出来,颜色的工作流程,在什么情况下,显示什么,有什么可以调节的方式,有什么可以调节的地方等等。
(咱们不要纠结它是怎么写的,这个可以具体去学shader语法)
但是,这些只是理论
例如:我写“我在一块白布上,先照红色的光,再照绿色的光,你就会看见一个黄色的布”
这只是我写在这的,没有人真的拿光去照,所以你也看不见“黄色的布”
四、material(材质)来了
材质其实就是一个小的调色盘(试验品),它把shader写的这些代码上,按流程一个一个的操作出来,让他显示出来。
这是一个平平无奇的Material
黄色的框里面,是让你选,你打算在这个实验体上,用哪个shader(脚本流程)来实验它的效果。
下面这个绿框,就是,你放上了你的shader,确定好了你的调节比例(就是上面有些可以调节的数据)。之后,这个调色盘(实验体),会变成什么样。
五、material(材质)的使用
我们在unity当中,随便建一个在scene场景中能看见的物体(透明物体也属于能看见的,因为可以调的能看见嘛),只有能看见的物体需要上色,你都看不见,你也没必要上色。
我在这里建了一个Cube。
这些物体都会有能放材质球的地方,换句话说,这些物体,都可以用你想要的样子上色。
例:
六、materials(多材质)的使用
我们看见,有些时候这里可以放好多个材质球
理解了上面的,材质球就像调色盘,后面就好理解了。
有些模型是希望你在不同部位上不同颜色的,所以,有些模型支持你放好多,有些不支持。
如果我们染色的物体,支持你在不同的部位,使用不同的materials(染不同的颜色),那么这里就是有用的。
便于理解的例子(模型支持):
如果你不支持,比如我刚建的cube就只支持一个materials,那么你无论加几个,也就一个颜色。
便于理解的例子(模型不支持):