【UnityShader】使用Cubemap/Matcap制作玻璃

写在前面:写shader写累了就写写博客吧,每天都是充满bug的一天> <
使用版本:Unity3D 2019.4 (LTS) (LTS意思是长期支持,尽量选择LTS版本,兼容性比较好)

效果示意

Inspector

Inspectors

Glass

在这里插入图片描述
注:所有Texture均来自冯乐乐《UnityShader入门精要》项目配套源码1

代码示意

Glass.shader1

Shader "Glass"
{
   
    Properties
    {
   
        _BumpMap("Normal Map",2D) = "bump"{
   }        
        _Distortion("Distortion",range(0,100)) = 10
        //折射系数
        _RefractAmount("Refract Amount",range(0,1)) = 1
        [KeywordEnum(Cubemap, MatCap)] _Reflect("Reflect", Float) = 0
        _Cubemap("Environment Map",cube) = "_Skybox"{
   }

    }
        SubShader
    {
   
        Tags {
    "RenderType" = "Opaque" "Queue" = "Transparent" "LightMode" = "Always"}
        // GrabPass{"_RefractionTex"}

        Pass
        {
   
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag
            #pragma multi_compile _REFLECT_CUBEMAP _REFLECT_MATCAP

            #include "UnityCG.cginc"
            #include "Lighting.cginc"

            struct appdata
            {
   
                float4 vertex : POSITION;
                float2 uv : TEXCOORD0;
                float3 normal:NORMAL;
                float4 tangent:TANGENT;
            };

            struct v2f
            {
   
                float2 uv : TEXCOORD0;
                
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值