- Home /
GLSL shader adding UV offset
So I'm using a small community shader called SoftEdge+ but I'm not able to access the UV offset within this shader, I'm not very "clued in" when it comes to shader programming but I'm assuming its missing a function from it's pass.
Could anyone guide me on how to get control over the UV offset with this shader?
Thank you, Caius.
Shader "Transparent/Cutout/Soft Edge Unlit " {
Properties {
_MainTex ("Base (RGB) Alpha (A)", 2D) = "white" {}
_Cutoff ("Base Alpha cutoff (Use Script)", Float) = 1
_CutoffInverseQuarter ("Cutoff inverse / 4 (Use Script)", Float) = 1
}
Category {
Tags {"Queue"="AlphaTest" "IgnoreProjector"="True" "RenderType"="TransparentCutout"}
SubShader {
Pass {
GLSLPROGRAM
varying mediump vec2 uv;
#ifdef VERTEX
void main() {
gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
uv = gl_MultiTexCoord0.xy;
}
#endif
#ifdef FRAGMENT
uniform lowp sampler2D _MainTex;
uniform lowp float _Cutoff;
void main() {
vec4 texture = texture2D(_MainTex, uv);
if (texture.a < _Cutoff) discard;
gl_FragColor = texture;
}
#endif
ENDGLSL
}
Pass {
ZTest Less ZWrite Off
Blend SrcAlpha OneMinusSrcAlpha
GLSLPROGRAM
varying mediump vec2 uv;
#ifdef VERTEX
void main() {
gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
uv = gl_MultiTexCoord0.xy;
}
#endif
#ifdef FRAGMENT
uniform lowp sampler2D _MainTex;
uniform lowp float _Cutoff;
void main() {
vec4 texture = texture2D(_MainTex, uv);
gl_FragColor = vec4(texture.rgb, texture.a / _Cutoff);
}
#endif
ENDGLSL
}
}
SubShader {
Pass {
AlphaTest GEqual[_Cutoff]
SetTexture[_MainTex]
}
Pass {
ZTest Less ZWrite Off
Blend SrcAlpha OneMinusSrcAlpha
SetTexture[_MainTex] {
ConstantColor(0,0,0, [_CutoffInverseQuarter])
Combine texture, texture * constant Quad
}
}
}
}
}
Comment
Answer by Jessy · Aug 06, 2012 at 08:14 AM
You'd have to edit your vertex shaders to this:
#ifdef VERTEX
uniform mediump vec4 _MainTex_ST;
void main() {
gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
uv = gl_MultiTexCoord0.xy * _MainTex_ST.xy + _MainTex_ST.zw;
}
#endif
Your answer
Follow this Question
Related Questions
ES2.0 Diffuse Shader? 0 Answers
clipping shader for OpenGL quad 0 Answers
Uniform variable fails on the android 0 Answers
converting HLSL to GLSL. 0 Answers
Shader error: Shader program of type 'vp' already exists at line .... 1 Answer