You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
93 lines
2.2 KiB
Plaintext
93 lines
2.2 KiB
Plaintext
Shader "QO/Effect/Mosaic" {
|
|
Properties {
|
|
_tex0 ("_tex0 : Original Image (RGBA)", 2D) = "white" {}
|
|
_tex1 ("_tex1 : Transform Image (RGBA)", 2D) = "white" {}
|
|
_X ("x pixels", Float) = 0
|
|
_Y ("y pixels", Float) = 0
|
|
_MX ("min x pixels", Float) = 16
|
|
_MY ("min y pixels", Float) = 9
|
|
_time ("time rate", Range(0,1)) = 0
|
|
}
|
|
SubShader {
|
|
LOD 200
|
|
Tags { "QUEUE"="Transparent" "RenderType"="Transparent" }
|
|
Pass {
|
|
Tags { "QUEUE"="Transparent" "RenderType"="Transparent" }
|
|
Blend SrcAlpha OneMinusSrcAlpha
|
|
Program "vp" {
|
|
SubProgram "gles " {
|
|
"!!GLES
|
|
|
|
|
|
#ifdef VERTEX
|
|
|
|
varying mediump vec4 xlv_TEXCOORD0;
|
|
varying lowp vec4 xlv_COLOR0;
|
|
uniform highp mat4 glstate_matrix_mvp;
|
|
attribute vec4 _glesMultiTexCoord0;
|
|
attribute vec4 _glesVertex;
|
|
void main ()
|
|
{
|
|
gl_Position = (glstate_matrix_mvp * _glesVertex);
|
|
xlv_COLOR0 = vec4(1.0, 1.0, 1.0, 1.0);
|
|
xlv_TEXCOORD0 = _glesMultiTexCoord0;
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
#ifdef FRAGMENT
|
|
|
|
varying mediump vec4 xlv_TEXCOORD0;
|
|
uniform mediump float _time;
|
|
uniform mediump float _MY;
|
|
uniform mediump float _MX;
|
|
uniform mediump float _Y;
|
|
uniform mediump float _X;
|
|
uniform sampler2D _tex1;
|
|
uniform sampler2D _tex0;
|
|
void main ()
|
|
{
|
|
mediump float tmpvar_1;
|
|
tmpvar_1 = (1.0 - sin((_time * 3.14)));
|
|
mediump float tmpvar_2;
|
|
tmpvar_2 = ((tmpvar_1 * _X) + _MX);
|
|
mediump float tmpvar_3;
|
|
tmpvar_3 = ((tmpvar_1 * _Y) + _MY);
|
|
mediump vec2 tmpvar_4;
|
|
tmpvar_4.x = max (0.0, min (1.0, (floor((xlv_TEXCOORD0.x * tmpvar_2)) / tmpvar_2)));
|
|
tmpvar_4.y = max (0.0, min (1.0, (floor((xlv_TEXCOORD0.y * tmpvar_3)) / tmpvar_3)));
|
|
lowp vec4 tmpvar_5;
|
|
tmpvar_5 = texture2D (_tex0, tmpvar_4);
|
|
mediump float tmpvar_6;
|
|
mediump float t_7;
|
|
t_7 = max (min ((((1.0 - _time) - 0.45) / 0.11), 1.0), 0.0);
|
|
tmpvar_6 = (t_7 * (t_7 * (3.0 - (2.0 * t_7))));
|
|
mediump vec4 tmpvar_8;
|
|
tmpvar_8.xyz = tmpvar_5.xyz;
|
|
tmpvar_8.w = tmpvar_6;
|
|
lowp vec4 tmpvar_9;
|
|
tmpvar_9 = texture2D (_tex1, tmpvar_4);
|
|
mediump vec4 tmpvar_10;
|
|
tmpvar_10.xyz = tmpvar_9.xyz;
|
|
tmpvar_10.w = (1.0 - tmpvar_6);
|
|
mediump vec4 tmpvar_11;
|
|
tmpvar_11.xyz = ((tmpvar_8.xyz * tmpvar_6) + (tmpvar_10.xyz * tmpvar_10.w));
|
|
tmpvar_11.w = (tmpvar_6 + tmpvar_10.w);
|
|
gl_FragData[0] = tmpvar_11;
|
|
}
|
|
|
|
|
|
|
|
#endif"
|
|
}
|
|
}
|
|
Program "fp" {
|
|
SubProgram "gles " {
|
|
"!!GLES"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
Fallback "VertexLit"
|
|
} |