u3d xray效果

来源:互联网 发布:网络翻译兼职 编辑:程序博客网 时间:2024/04/30 06:06

类似图中效果
这里写图片描述
plane屏幕扫过的部分可以看到球体中的内部结构,相当于透视眼,球体的其他部分正常
球和球体中的物体加shader

// Upgrade NOTE: replaced '_Object2World' with 'unity_ObjectToWorld'// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'Shader "Custom/XRayShader"{    Properties    {        _MainTex("Texture", 2D) = "white" {}    _RayColor("RayColor", COLOR) = (0,0,1,0)    }        SubShader    {        Pass    {        Name "BASE1"        Tags{ "RenderType" = "Transparent" "Queue" = "Transparent" }        Blend One OneMinusSrcAlpha        Cull Back        ZTest Greater        ZWrite Off        CGPROGRAM#pragma vertex vert#pragma fragment frag        // make fog work#pragma multi_compile_fog#include "UnityCG.cginc"#include "Lighting.cginc"        struct appdata    {        float4 vertex : POSITION;        float2 uv : TEXCOORD0;        float4 normal : NORMAL;    };    struct v2f    {        UNITY_FOG_COORDS(0)            float4 vertex : SV_POSITION;        float2 uv : TEXCOORD1;        float4 diff : TEXCOORD2;    };    v2f vert(appdata v)    {        v2f o;        o.vertex = UnityObjectToClipPos(v.vertex);        o.uv = v.uv;        float3 worldNormal = normalize(mul(unity_ObjectToWorld, float4(v.normal.xyz,0)).xyz) * -1; //将法线转换到世界空间, * -1 是为了有外轮廓的效果,因此将法线翻转        float3 viewDirection = normalize(_WorldSpaceCameraPos); //将视野也转到相同的世界空间        o.diff = max(0, dot(viewDirection, worldNormal)); //计算视野和法线的夹角 将垂直的部分不填色        return o;    }    uniform float4 _RayColor;    fixed4 frag(v2f i) : SV_Target    {        _RayColor *= i.diff.x;    return _RayColor;    }        ENDCG    }        Pass    {        Name "BASE2"        Tags{ "RenderType" = "Opaque" }        ZWrite On        ZTest LEqual        CGPROGRAM#pragma vertex vert#pragma fragment frag        // make fog work#pragma multi_compile_fog#include "UnityCG.cginc"        struct appdata    {        float4 vertex : POSITION;        float2 uv : TEXCOORD0;    };    struct v2f    {        float2 uv : TEXCOORD0;        UNITY_FOG_COORDS(1)            float4 vertex : SV_POSITION;    };    sampler2D _MainTex;    float4 _MainTex_ST;    v2f vert(appdata v)    {        v2f o;        o.vertex = UnityObjectToClipPos(v.vertex);        o.uv = TRANSFORM_TEX(v.uv, _MainTex);        UNITY_TRANSFER_FOG(o,o.vertex);        return o;    }    fixed4 frag(v2f i) : SV_Target    {        // sample the texture        fixed4 col = tex2D(_MainTex, i.uv);    // apply fog    UNITY_APPLY_FOG(i.fogCoord, col);    return col;    }        ENDCG    }    }}
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 红米密码忘记了怎么办 红米pro玩王者卡怎么办 红米note4不支持计步怎么办 红米pro玩游戏卡怎么办 红米手机费电快怎么办 荣耀5c忘记密码怎么办 小米之家不退货怎么办 手机号绑定过多小米账户怎么办 耐克黑色鞋褪色怎么办 买广汽传祺7s新车有问题怎么办 华为荣耀10边框掉色了怎么办 网购商家打来无货怎么办 客户拍了不发货怎么办 天猫商家欺骗买家怎么办 阿里买家投诉我发空包怎么办 苹果6s电池坏了怎么办 hm买的单鞋脏了怎么办 微店违规屏蔽搜索怎么办 ios微信支付失效怎么办 京东第三方店铺关闭怎么办 京东店铺关门了怎么办 国美退款不到账怎么办 小米小店通过了怎么办 苹果的发票丢了怎么办 苹果7p开不开机怎么办 申请退款了怎么卖家还发货怎么办 买家申请退款卖家不退款怎么办 卖家恶意不退款怎么办 欠条到期了对方不还钱怎么办 冰箱磕了一坑怎么办 办信用卡没有家庭地址的怎么办 钱付了货没收到怎么办 在苏宁易购上买东西地址错了怎么办 手机分期付款银行卡丢了怎么办 华硕笔记本鼠标不动了怎么办 韵达快递不派送怎么办 中通快递不派送怎么办 农业银行信用卡密码输错三次怎么办 农业银行卡多次输错密码怎么办 想把店长弄走怎么办 济南银座卡过期了怎么办