You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

119 lines
4.3 KiB

// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'
Shader "Hidden/Buff_AShader"
{
Properties
{
_MainTex ("Texture", 2D) = "white" {}
//_MainTexMip ("Texture", 2D) = "white" {}
//_RandTex("Texture", 2D) = "white" {}
//_FrameCount("framecount", Int) = 0;
//flipY("Flip Y", Float) = 0.;
//###ShaderUniforms
}
SubShader
{
// No culling or depth
Cull Off
//ZWrite Off
//ZTest Always
//Blend One One
//###RenderAttribs
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
sampler2D _MainTex;
float4 _MainTex_TexelSize;
//sampler2D _RandTex;
//float4 _RandTex_TexelSize;
int _FrameCount;
float flipY;
//#define iChannel0 _MainTex
//#define iChannel1 _RandTex
//#define iChannel2 _MainTex
#include "glsl2Cg.cginc"
#include "shaderoo.cginc"
#define __UNITY3D__
#define SHADEROO
#define __SHADEROO_GEOM
// define this, so that frag only funcs are also compiled
#define SHADEROO_FRAGMENT_SHADER
#include "Buff_A.cginc"
#undef SHADEROO_FRAGMENT_SHADER
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;
//FIXME: is +.5 really needed?
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
//FIXME: is +.5 really needed?
vec2 res=(i.vertex.xy/*+.5*/)/i.uv.xy;
if(flipY>.5) i.uv.y=1.-i.uv.y;
mainImage(c,i.uv*res.xy);
//mainImage(c,i.uv*512.0);
//if(flipY>.5) i.vertex.y=1.-i.vertex.y;
//mainImage(c,i.vertex.xy+vec2(.5,.5));
#endif
return c;
}
ENDCG
}
}
}