ZeroVR/ZeroPacientVR/Assets/EasyColliderEditor/Scripts/Shader/EasyColliderMeshColliderPre...

56 lines
1.8 KiB
Plaintext

// just a simple transparent color shader.
Shader "Custom/EasyColliderMeshColliderPreview" {
Properties {
_Color("Main Color", Color) = (1,1,1,1)
}
SubShader {
Tags {"Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent"}
Blend SrcAlpha OneMinusSrcAlpha
Pass {
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#pragma target 2.0
#include "UnityCG.cginc"
struct appdata_t {
float4 vertex : POSITION;
float4 normal: NORMAL;
};
struct v2f {
float4 vertex : SV_POSITION;
};
half4 _Color;
v2f vert (appdata_t v)
{
v2f o;
//world space vert
o.vertex = mul(unity_ObjectToWorld, v.vertex);
// world space normal
float3 worldNormal = UnityObjectToWorldNormal(v.normal);
// offset by a small amount (1mm) (to prevent z-clipping)
o.vertex.xyz += worldNormal * 0.001f;
// back to to world space
o.vertex = mul(unity_WorldToObject, o.vertex);
// object to clip position
o.vertex = UnityObjectToClipPos(o.vertex);
return o;
}
fixed4 frag (v2f i) : SV_Target
{
// all mesh-collider previews have an alpha value that can be changed if you wish.
_Color.a = 0.8f;
return _Color;
}
ENDCG
}
}
}