TA之路——Shader学习02(语法结构及属性)

shader基本语法结构

Shader  "MyShader/01Shader "{//定义路径及文件名,可以有多个路径,文件名不要求与shader名保持一致

Properties {

//定义属性内容  括号外的属性名及引号中的属性名可自定义,外面的属性名在下面的代码中使用,引号内的属性名在Inspector面板中显示,shader定义属性代码后不用加分号!
//属性类型:
    _Color("Color",Color)=(1,1,1,1)//颜色类型
    _Vector("Vector",Vector)=(0,2,3,1)//向量类型(跟颜色是同样的功能)
    _Int("Int",Int)=1234//整数类型
    _Float("Float",Float)=1.23//小数类型
    _Range("Range",Range(1,10))=6//跟小数类型功能类似
    _2D("Texture",2D)="white"{}//图片类型,当不指定图片的时候,显示纯色
    _3D("3DTexture",3D)="black"{}//3D图片类型,当不指定图片的时候,显示纯色
    _Cube("Cube",Cube)="red"{}//指定立方体纹理,当不指定纹理的时候,显示纯色

}

//子Shader可以有很多个,显卡运行效果的时候从第一个SubShader开始,如果第一个中的效果可以实现,那么就使用第一个SubShader,如果某些效果实现不了,则自动执行下一个
SubShader{
    //类似C#中的方法在Update中调用,至少有一个Pass
    Pass{
    //使用CG语言编写shader代码
    CGPROGRAM
    //使用属性
    float4 _Color;
    float4 _Vector;
    float _Int;
    float _Range;
    sampler2D _2D;
    sampler3D _3D;
    samplerCube _Cube;

    ENDCG

    }

}

Fallback "VertexLit"
}

猜你喜欢

转载自blog.csdn.net/van5209999/article/details/88109476