一、一些不常用的通用指令:
之前忘了说,上一篇所说的通用指令和这些通用指令,几乎都可以单独使用在一个PASS中,即可以写成这种格式:
Pass { BlendOp Min // 定义混合方法 Blend SrcAlpha OneMinusSrcAlpha // 定义Alpha混合模式 AlphaTest GEqual [_Float] // 定义Alpha测试条件 //其他CG代码 }
1. AlphaTest指令(通道指令):AlphaTest是用来在吸入到帧上之前,做最后一层过滤,对fragment函数所产生的最终颜色的Alpha值进行一个条件比较,满足条件的,才会写入到帧中,不满足的,直接过滤掉。 AlphaTest的格式为:AlphaTest Greater 0.5 ,其中,Greater就是大于的意思,并且Greater可以替换为GEqual,Equal,NotEqual,Less,Lequal,Always,Never,这些词的意思如果不知道的,百度一下。比较关键字后面跟着的值0.5,可以使任意浮点数,并且可以再运行时决定,即这个地方可以填一个变量,这个变量可以使Properties模块里面所定义的变量。但特别需要注意的是,变量名称需要用一对[]括起来,例如:AlphaTest Greater [_Float]
2. BlendOp指令:上一篇文中说过,在Blend指令中,