市面上,有一些书,讲 shader ,
但是,有可能,这些书的例子,放到程序中,
却无法正常运行。
unity 5.x 的 shader 跟之前的规则,有一些变化。
我们用一个 surface 的例子来说明一下,
#pragma surface
surface 是 表面着色器 ,
如果没有 表面着色器,
那么,就是第一张图的效果,
#pragma surface surf
surface 后面接的是 表面函数,
也就是说, 会去找 surf 函数,
一般都定义为 surf ,当然也可以定义成其他名字,但是,名字和函数要对应。
void surf(Input IN,inout SurfaceOutput o)
#pragma surface surf 光照模型,
#pragma surface surf
Standard
当用了基础光照后,出现的效果就是第二张的效果,
如果在下面加上
#pragma target 3.0
效果就是第三张图的效果。