Страница 1 из 1

Image Effects -> Edge Color

СообщениеДобавлено: 17 дек 2009, 13:03
pak
Цветной контур.
Edge.jpg

Код: Выделить всё
Shader "Hidden/Edge Color" {
Properties {
   _MainTex ("Base (RGB)", RECT) = "white" {}
}

SubShader {
   Pass {
      ZTest Always Cull Off ZWrite Off
      Fog { Mode off }

CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#pragma fragmentoption ARB_precision_hint_fastest
#include "UnityCG.cginc"

uniform samplerRECT _MainTex;
uniform float4 _MainTex_TexelSize;
uniform float _Treshold;

struct v2f {
   float4 pos : POSITION;
   float2 uv[5] : TEXCOORD0;
   float z ;
};

v2f vert( appdata_img v )
{
   v2f o;
   o.pos = mul (glstate.matrix.mvp, v.vertex);
   float2 uv = MultiplyUV( glstate.matrix.texture[0], v.texcoord );
   o.uv[0] = uv;
   o.uv[1] = uv + float2(-_MainTex_TexelSize.x, 0);
   o.uv[2] = uv + float2(+_MainTex_TexelSize.x, 0);
   o.uv[3] = uv + float2(0, -_MainTex_TexelSize.y);
   o.uv[4] = uv + float2(0, +_MainTex_TexelSize.y);
   return o;
}

half4 frag (v2f i) : COLOR
{
   half4 original = texRECT(_MainTex, i.uv[0]);

   // a very simple cross gradient filter
   half3 p1 = original.rgb;
   half3 p2 = texRECT( _MainTex, i.uv[1] ).rgb;
   half3 p3 = texRECT( _MainTex, i.uv[2] ).rgb;
   half3 p4 = texRECT( _MainTex, i.uv[3] ).rgb;
   half3 p5 = texRECT( _MainTex, i.uv[4] ).rgb;
   
   half3 p6 = (p2+p3+p4+p5)*0.25;
   half3 diff1 = abs(p1-p2);
   half3 diff2 = abs(p1-p3);
   half3 diff3 = abs(p1-p4);
   half3 diff4 = abs(p1-p5);
   half3 diff=diff1;
   if (diff2>diff) diff=diff2;
   if (diff3>diff) diff=diff3;   
   if (diff4>diff) diff=diff4;      
   diff=diff*2-diff*diff;
   diff=diff*2-diff*diff;
   original.rgb = diff;
      
   return original;
}
ENDCG
   }
}

Fallback off

}

Re: Image Effects -> Edge Color

СообщениеДобавлено: 17 дек 2009, 17:06
Neodrop
(3A4OT)

Re: Image Effects -> Edge Color

СообщениеДобавлено: 24 май 2010, 17:24
mvladlin
не могу подцепить текстуру в инспекторе для проверки шейдера
что это за RECT текстура такая особенная?

Re: Image Effects -> Edge Color

СообщениеДобавлено: 19 дек 2010, 19:12
Battou
Ха, церквушка из родного коломенского, у меня её из окна видно.)))) Сорри за оффтоп.

Re: Image Effects -> Edge Color

СообщениеДобавлено: 22 мар 2012, 16:33
Александр
Может кто знает, как сделать так, что бы контур одного объекта, выводился сквозь другие объекты? Уже голову сломал :((