7.12 Shader

//Shader开头

//"MyFirstShader/Unlit/MyFirstShader"提供一个索引

Shader "MyFirstShader/Unlit/MyFirstShader"

{

//存放跟外部相关的shader属性(属性模块)

Properties{

//如何定义属性

//关于数值类型的三种写法

_MyInt("Int参数",int)=0

_MyFloat_1("Float参数",Float)=0

_Myfloat("浮点型参数",Range(0,1))=0

//关于向量类型的参数

_MyVector("普通向量",Vector)=(0,0,0,0)//普通向量的初始化

_MyColor("颜色参数",Color)=(0,0,0,0)

//关于纹理类型的参数

_MyTexture("贴图",2D)="white"{}//{}默认值为空

_MyTexture3D("3D贴图参数",3D)="white"{}

_MyTextureCube("立方体贴图参数",Cube)="white"{}

}

//存放一些shader代码

Subshader{

pass{

}

}

//当Subshader中的代码不符合当前运行设备,将会调用"name"

Fallback"name"

}





shader"MyShader/Cull"

{

Properties{

_AmbientColor("AmbientCOlor",Color)=(1,1,0,1)

_MainColor("MainColor",Color)=(0,0,0,1)

_MainTex("MainTex",2D)="white"{}

}

SubShader{

Pass{

Material{

Diffuse[_MainColor]//漫反射

Ambient[_AmbientColor]

}

//Material{

//Diffuse(1,1,1,1)

//}

//On接收光照的影响

Lightingon

//剔除Front/Back/off正面,背面,不剔除

CullBack

//设置贴图

SetTexture[_MainTex]{

Combinetexture*primary DOUBLE,texture*primary//颜色混合

}

}

}

}

settexture[_MainTex]{//combine 命令 用法形式有8种

//combine src1 * src2 结果纹理将比输入纹理更暗。

//combine src1 + src2 结果纹理将比输入纹理更明亮。

//combine src1 - src2 高亮的部分将变暗

//combine src1 +- src2 src1和src2相加,然后减去0.5

//combine src1 lerp (src2) src3 在src3和src1之间做插值,使用src2的alpha值。请注意插值是相反的方向,当alpha为1时候src1使用,当alpha为0时候src3使用。

//combine src1 * src2+src3 src1与src2的alpha值混合,然后添加src3

//combine src1 * src2+-src3 src1与src2的alpha值混合,然后和有符号的src3相加//所有src属性都可以为:previous, constant, primary 或texture//所有src属性,除lerp外,可以使用符号-来使最终颜色反相。//所有的src属性后面可以有且仅有1个alpha.

//combine texture//combine texture * primary //primary代表之前颜色值加光照的计算结果

//combine texture * primary double//combine texture - primary quadcombinetexture* primary quad//Double或者Quad使结果的颜色2倍或者4倍明亮。}

你可能感兴趣的:(7.12 Shader)