1.搜一张拉丝贴图放进ps里转成法线贴图,纹理感调低一点
2.基础贴图为一张星空图 最好亮暗分明 四方连续 基础色和想要的水晶颜色差不多 再手绘一些气泡和偏色
//菲涅尔
half3 view_dir = normalize(_WorldSpaceCameraPos.xyz - i.pos_world);
half3 reflect_dir = reflect(-view_dir, normal_dir);//反过来是因为前面算的是顶点到摄像机的方向
float fresnel_fac = 1 - clamp(dot(normal_dir,view_dir),0,1);
float fresnel = abs(max(pow(fresnel_fac ,_RimPower),0.0) * _RimScale );
//结合了uv轴向的菲涅尔效果 使水晶暗部更明显
float center =length(i.uv.y * fresnel * 7) ;
//分深浅两个颜色 并采样基础贴图 用lerp混合颜色和贴图
float2 normal_view = (mul( UNITY_MATRIX_MV, float4(normal_dir,1)).xyz).xy;
//贴图UV和模型uv采样贴图 加一点灯光强度影响 白天光强的时候uv分割多像反射效果
float2 inside_uv = temp * _MainTex_ST.xy + _MainTex_ST.zw + normal_view*_MainLightColor.r;
half3 inside_color = tex2D(_MainTex,inside_uv);
float center =length(i.uv.y * fresnel * 7) ;
half3 deep_color = lerp(_InsideColor2,_InsideColor,center);
half3 inside_color_final = lerp(inside_color,deep_color ,_RimBase);
//偏光色 采样一张噪声图 多加几个值调节效果
float2 uv_magic = i.uv + _Time.y * _NormalSpeed.zw * 0.05 + normal_dir * _NormalSpeed.x + _MagicMap_ST.zw;
half3 magic_map = tex2D(_MagicMap,uv_magic);
float magic_blink = max(sin((frac(_Time.y * _MagicBlinkContorl.x)) *3.14),_MagicBlinkContorl.y);
half3 magic_color = magic_map * _MagicIntensity * _MagicColor * magic_blink * max( _GlobalDirectionLightIntensity,1);
inside_color_final = inside_color_final * magic_color + inside_color_final;
后面加个高光就好了 最好是有颜色的高光 懒得写了要吃饭去了