GitHub项目地址
实现原理:
1、边缘发光
2、相交高亮,主要指能量场和别的物体相交的地方是高亮显示
3、扭曲效果,指物体被能量场包围出现的扭曲
1、边缘发光
边缘发光效果,在我前面的文章中有介绍。
//vert
float3 worldNormal = UnityObjectToWorldNormal(v.normal);
float4 worldPos = mul(unity_ObjectToWorld, v.vertex);
float3 worldView = normalize(UnityWorldSpaceViewDir(worldPos));
o.rimLight = 1 - abs(dot(worldNormal, worldView));
//frag
float rim = pow(i.rimLight, _RimPower);
fixed3 rimColor = _RimColor.rgb * rim;
2、相交高亮
相交高亮,需要获取深度图和能量场的深度。
(1)获取深度图
//C#通知摄像机,获取深度图
Camera.main.depthTextureMode |= DepthTexture