ddx と ddy を利用して輪郭が取得できるかのテストを兼ねて作成してみました
画像は以下のサイトから利用させていただいています
[無料写真] 空に浮かぶ風船 - パブリックドメインQ:著作権フリー画像素材集
輪郭
色の差分が少ないところは灰色になってるので、ある程度輪郭が分かると思います
ピクセルの差分を利用しているので、ズームアウトしてしまうとちょっと変に見えてしまう可能性があります
Shader "Unlit/Outline" { Properties { _MainTex ("Texture", 2D) = "white" {} _OutlineThreshold ("Outline Threshold", float) = 0.0 } SubShader { Tags { "RenderType"="Opaque" } Pass { CGPROGRAM #pragma vertex vert_img #pragma fragment frag #include "UnityCG.cginc" sampler2D _MainTex; float _OutlineThreshold; fixed4 frag (v2f_img i) : SV_Target { fixed4 col = tex2D(_MainTex, i.uv); half3 outlineValue = ddx(col) + ddy(col); return half4(1 - outlineValue - _OutlineThreshold, 1); } ENDCG } } }