一、什么是Shader
Shader君,中文名叫做着色器,本质上它是一段程序,专门用来处理3D图形的渲染过程。
这么说大家一定还是不太懂,还是让我们有请Shader君和它的伙伴们介绍一下自己吧:
模型君Model:“大家好,我是一个3D模型,来自3D Max、Maya、Blender等建模软件。我有九百多个顶点,而且我知道每个顶点的位置、法线,还有他们对应的贴图的坐标。”
材质君Material:“Model说的没错,作为一个胖纸,它拥有的信息非常多。然而,即使有这些信息,它仍然是只一个光秃秃的Model。作为材质君Material,我可以描述他表面的颜色(主颜色),贴图等等,当然,我可以提供多少信息还得Shader君说了算,最终显示效果也是它说了算……”
Shader君Shader:“顶楼上!以上两位M君虽然包含一个3D模型的渲染的很多信息,但是最终的渲染效果还是我S君说了算。我可以使用Model告诉我的顶点位置,也可以修改后在使用。我可以用Material提供的信息决定最终的渲染颜色,也可以完全不理它。嘿嘿,总之,看心情~”
嗯,好,看了它们几位的对话,相信大家也有所了解了,下面让猫猫来总结一下吧:
- 1、直接和渲染打交道的是Shader,模型和材质只是给Shader提供信息。
- 2、Shader君拥有很高的自主权,它可以选择使用模型和材质提供的信息,也可以不使用(当然一般不这么做),也可以用这些信息经过复杂运算后