unity shader 转 cocos effect

有个unity类似于水晶球的效果如下:


原版的shader各个方向看都是这个样子
想转成cocos的effect 用的默认的effect:builtin-unlit,结果不管怎么调都感觉纹路不对
image
个人对与着色器部分确实比较欠缺,有没有大佬帮助一下
附上模型和贴图
res.zip (80.3 KB)

人工置顶!

原版unity shader代码如下:

Shader “Custom/CrystalBall”

{

Properties

{

    _Color ("Color", Color) = (1,1,1,1)

    _MatcapTex ("Matcap Texture", 2D) = "white" {}

// _MatcapIntensity (“Mapcap Intensity”, Range(0, 1)) = 0

// _Pow (“Power”, Range(0.1, 8)) = 3

}



SubShader

{

    Tags {

        "Queue"="Transparent"

        "IgnoreProjector"="True"

        "RenderType"="Transparent"

        }

    LOD 100

    ZWrite Off

    Lighting Off

    Blend SrcAlpha OneMinusSrcAlpha

   

    Pass

    {

        CGPROGRAM

        #pragma vertex vert

        #pragma fragment frag

        #pragma target 2.0

        #include "UnityCG.cginc"

        float4 _Color;

        sampler2D _MatcapTex;

        // float _MatcapIntensity;

        // float _Pow;

        struct appdata

        {

            float4 vertex : POSITION;

            float3 normal : NORMAL;

        };

        struct v2f

        {

            float4 vertex   : SV_POSITION;

            float3 normal   : TEXCOORD0;

            // float3 viewDir  : TEXCOORD1;

        };

        v2f vert(appdata v)

        {

            v2f OUT;

            // OUT.viewDir = ObjSpaceViewDir(v.vertex);

           

            // OUT.normal = v.normal;

            OUT.normal = mul( unity_ObjectToWorld, float4(v.normal, 0) );

            OUT.vertex = UnityObjectToClipPos(v.vertex);

            return OUT;

        }

        half4 frag (v2f i) : SV_Target

        {

            // float3 viewDir = normalize(i.viewDir);

            float3 normal = normalize(i.normal);

            // float nv = saturate(dot(viewDir, normal));

            half2 matUV = mul((float3x3)UNITY_MATRIX_V, normal).xy * 0.5 + 0.5;

            half4 matcap = tex2D(_MatcapTex, matUV) * _Color /** _MatcapIntensity*/;

            return matcap;

            // return half4(_Color.rgb, pow(1 - nv, _Pow));

        }

        ENDCG

    }

}

FallBack "Diffuse"

}

somebody help me

人工置顶!