Shader_Shader的其他属性及使用003

本文详细介绍了Unity Shader的属性定义及使用方法,包括颜色、向量、整型、浮点数、范围等不同类型属性的设置,并展示了如何在SubShader中通过Pass块编写具体的Shader效果代码。

Shader的其他属性及其使用规则都在源码中注释了,在这里不在赘述
参考代码如下:

//定义Shader 的名字  不要求和文件的名字一样
//YY是Shader的目录  MyShader是Shader 的名字
Shader"YY/01 MyShader"{
    //属性部分  只能有一块
    //属性中的代码是没有分号的
    Properties{
        //属性
        //"_Color"是自定义的 "Color"是自定义的  Color是固定的  (1,1,1,1)使用的是RGBA颜色系统
        _Color("Color",Color) = (1,1,1,1)  //对应float4类型
        //向量
        _Vector("Vector",Vector) = (1,2,3,4)//对应float4类型
        //整型
        _Int("Int",Int) = 12//对应float类型
        //浮点类型
        _Float("Float",Float) = 12.0//对应float类型
        //设置一个范围
        _Range("Range",Range(1,11)) = 6//对应float类型
        //2D纹理
        _2D("Texture",2D) = "white"{}//对应sampler2D类型
        //立方体贴图
        _Cube("Cube",Cube) = "white"{}//对应samplerCube类型
        //3D纹理
        _3D("Texture",3D) = "white"{}//对应sampler3D类型

    }
    //子Shader块  类似类  一个Shader中可以有很多Shader 为了适配不同种类的显卡
    //显卡运行效果的时候 从第一个SubShader开始,如果第一个SubShader里面的效果都可实现,那么就使用第一个SubShader,如果显卡发现这个SubShader里面某些效果实现不了,它会自动运行下一个SubShader
    SubShader{
        //pass块类似方法  可以有很多pass块 至少有一个Pass块
        //在pass内部写Shader代码
        pass {
            //声明包含Cg代码的块
            //Cg代码中的是要使用分号隔开的
            CGPROGRAM
            //使用Cg语言编写Shader代码
            //_Color 和属性中的变量保持一致  由于Color类型是4个分量组成  所以在这里使用float4代替
            //在Cg块中使用属性的值需要在声明一次
            float4 _Color;
            float4 _Vector;
            float _Int;
            float _Range;
            sampler2D _2D;
            samplerCube _Cube;
            sampler3D _3D;

            ENDCG
        }  //这里面没有分号的
    }
    //如果上面的所有的SubShader都不满足  则执行备用方案  VertexLit 是一个Shader的名字  直接指定名称即可
    FallBack "VertexLit"
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yy763496668

您的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值