Unity_SurFaceShader透明物体

SurFace代码:

Shader "Custom/s1"
{
    Properties
    {   
        //变量名("显示在面板上的名字",数据类型) = (值)
        _Color("我是颜色呀!",Color) = (1,1,1,1)
        _Ambient("我是环境光",Color) = (0.3,0.3,0.3,0.3)
        _Specular("反射高光",Color) = (1,1,1,1)
        _Shininess("发亮发光",Range(0,10)) = 4  //Range范围 默认等于4
        _Emission("自发光",Color) = (1,1,1,1)
        _MainTex("主贴图",2d) = ""
        _MainTex2("第二张贴图",2d) =""
    }
    SubShader
    {
        //渲染 透明物体 控制渲染顺序 先渲染透明的
        Tags { "Queue" = "Transparent" }

       pass{
           //透明度的混合 官方解释地址:file:///Applications/Unity/Hub/Editor/2018.4.4f1/Documentation/en/Manual/SL-Blend.html
            Blend Srcalpha OneMinusSrcAlpha

           //固定值用()包起来 变量值用[]包起来
           color[_Color]
           //Material材质命令块
           Material{
               //这个物体本身固有的颜色 []使用一个变量参数
                DIFFUSE[_Color]
                Ambient[_Ambient]
                SPECULAR[_Specular]
                shininess[_Shininess]
                emission[_Emission]
           }
           Lighting On  //开启光照
           SeparateSpecular On //高光 和SPECULAR配合着使用
           //贴图
           SetTexture[_MainTex]
           {
               //primary 表示之前上面计算过的所有光照  quad->4倍亮度 double->两倍亮度
               Combine texture * primary double
           }
           //第二张贴图
            SetTexture[_MainTex2]
           {
               //primary 表示之前上面计算过的所有光照  quad->4倍亮度 double->两倍亮度    //previous乘上之前所有的定点计算光照 包括第一张贴图的
               Combine texture * previous double
           }
            
       }

       
    }
    
    FallBack "Diffuse"
}

如果要修改透明度 请修改颜色的Alpha 透明度

 

测试效果如下:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值