Unity Shader (4)
1、Unity Shader 的基本结构
ShaderLab指定顶点、片元等着色器的方式比较有意思,第一次看的时候都懵逼了orz,这里说的着色器看起来像是一个函数
#pragram shaderType func_name//shaderType 有vertex、fragment、surface、geometry等
2、一个带有顶点与片元着色器的例子
上面的vert、frag的输入都是struct,定一个是如下
struct struct_name
{
Type Name : Semantic;
......
}
semantic是来自 CG/HLSL 中的语义的概念,但是ShaderLab只是在情况下支持了部分语义
SV_POSITION 代表的是裁剪空间中的坐标,是顶点着色器必须输出的信息,另外uniform关键字在shaderlab中是可有可无的
3、shader debug是所有图形开发的痛点,对于window开发者来说有一个较为友好的visual studio的调试工具Frame Debugger(window->frame debugger),比较经典的调试方式是将想查看的信息写入颜色缓冲