|
|
|
|
|
// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'
|
|
|
|
|
|
|
|
|
|
|
|
Shader "Hidden/ColoredPencilsShader"
|
|
|
|
|
|
{
|
|
|
|
|
|
Properties
|
|
|
|
|
|
{
|
|
|
|
|
|
_MainTex ("Texture", 2D) = "white" {}
|
|
|
|
|
|
_MainTexMip ("Texture", 2D) = "white" {}
|
|
|
|
|
|
_RandTex("Texture", 2D) = "white" {}
|
|
|
|
|
|
}
|
|
|
|
|
|
SubShader
|
|
|
|
|
|
{
|
|
|
|
|
|
// No culling or depth
|
|
|
|
|
|
Cull Off ZWrite Off ZTest Always
|
|
|
|
|
|
//Blend One One
|
|
|
|
|
|
Pass
|
|
|
|
|
|
{
|
|
|
|
|
|
CGPROGRAM
|
|
|
|
|
|
#pragma vertex vert
|
|
|
|
|
|
#pragma fragment frag
|
|
|
|
|
|
|
|
|
|
|
|
#include "UnityCG.cginc"
|
|
|
|
|
|
|
|
|
|
|
|
sampler2D _MainTex;
|
|
|
|
|
|
sampler2D _RandTex;
|
|
|
|
|
|
float4 _RandTex_TexelSize;
|
|
|
|
|
|
float4 _MainTex_TexelSize;
|
|
|
|
|
|
int _FrameCount;
|
|
|
|
|
|
float flipY;
|
|
|
|
|
|
|
|
|
|
|
|
#define iChannel0 _MainTex
|
|
|
|
|
|
#define iChannel1 _RandTex
|
|
|
|
|
|
#define iChannel2 _MainTex
|
|
|
|
|
|
|
|
|
|
|
|
#include "glsl2Cg.cginc"
|
|
|
|
|
|
#include "shaderoo.cginc"
|
|
|
|
|
|
#define SHADEROO
|
|
|
|
|
|
#define __UNITY_3D__
|
|
|
|
|
|
#define NEW_METHOD
|
|
|
|
|
|
#include "coloredpencil.cginc"
|
|
|
|
|
|
|
|
|
|
|
|
struct appdata
|
|
|
|
|
|
{
|
|
|
|
|
|
float4 vertex : POSITION;
|
|
|
|
|
|
float2 uv : TEXCOORD0;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
struct v2f
|
|
|
|
|
|
{
|
|
|
|
|
|
float2 uv : TEXCOORD0;
|
|
|
|
|
|
float4 vertex : SV_POSITION;
|
|
|
|
|
|
//float4 vertex : TEXCOORD4;
|
|
|
|
|
|
#ifdef SHADEROO_GEOM
|
|
|
|
|
|
float4 vertAttr0: TEXCOORD1;
|
|
|
|
|
|
float4 vertAttr1: TEXCOORD2;
|
|
|
|
|
|
float4 vertAttr2: TEXCOORD3;
|
|
|
|
|
|
#endif
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
v2f vert (appdata v)
|
|
|
|
|
|
{
|
|
|
|
|
|
v2f o;
|
|
|
|
|
|
#ifdef SHADEROO_GEOM
|
|
|
|
|
|
float4 vertAttr[3] = { float4(0,0,0,0), float4(0,0,0,0), float4(0,0,0,0) };
|
|
|
|
|
|
/*vertAttr[0]=float4(0,0,0,0);
|
|
|
|
|
|
vertAttr[1]=float4(0,0,0,0);
|
|
|
|
|
|
vertAttr[2]=float4(0,0,0,0);*/
|
|
|
|
|
|
int vIdx=int(v.vertex.x+.1);
|
|
|
|
|
|
mainGeom(o.vertex,vertAttr,vIdx);
|
|
|
|
|
|
o.vertAttr0=vertAttr[0];
|
|
|
|
|
|
o.vertAttr1=vertAttr[1];
|
|
|
|
|
|
o.vertAttr2=vertAttr[2];
|
|
|
|
|
|
#else
|
|
|
|
|
|
//o.vertex = UnityObjectToClipPos(float4(v.vertex.xyz, 1.0));
|
|
|
|
|
|
o.vertex = v.vertex;
|
|
|
|
|
|
o.vertex.xy=o.vertex.xy*2.-1.;
|
|
|
|
|
|
o.uv = v.uv;
|
|
|
|
|
|
#endif
|
|
|
|
|
|
return o;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
fixed4 frag (v2f i) : SV_Target
|
|
|
|
|
|
{
|
|
|
|
|
|
float4 c;
|
|
|
|
|
|
#ifdef SHADEROO_GEOM
|
|
|
|
|
|
float4 vertAttr[3];
|
|
|
|
|
|
vertAttr[0]=i.vertAttr0;
|
|
|
|
|
|
vertAttr[1]=i.vertAttr1;
|
|
|
|
|
|
vertAttr[2]=i.vertAttr2;
|
|
|
|
|
|
mainFragment(c,i.vertex+vec4(.5,.5,0,0),vertAttr);
|
|
|
|
|
|
//mainFragment(c,vec4((i.vertex.xy*.5+.5)*iResolution.xy,i.vertex.zw),vertAttr);
|
|
|
|
|
|
#else
|
|
|
|
|
|
if(flipY>.5) i.uv.y=1.-i.uv.y;
|
|
|
|
|
|
mainImage(c,i.uv*iResolution.xy);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
return c;
|
|
|
|
|
|
}
|
|
|
|
|
|
ENDCG
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|