我正在开发Unity 2D平台游戏。 我正在使用着色器找到here,但是当我翻转我的精灵(比例-1)时, 精灵消失了,我对着色器编码了解不多, 我没有在谷歌上找到任何帮助,任何人都可以帮助修复着色器吗? 这是着色器:
Properties {
[PerRendererData] _MainTex ("Main texture", 2D) = "white" {}
_DissolveTex ("Dissolution texture", 2D) = "gray" {}
_Threshold ("Threshold", Range(0., 1.01)) = 0.
}
SubShader {
Tags { "Queue"="Transparent" }
Blend SrcAlpha OneMinusSrcAlpha
Pass {
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
struct v2f {
float4 pos : SV_POSITION;
float2 uv : TEXCOORD0;
};
sampler2D _MainTex;
v2f vert(appdata_base v) {
v2f o;
o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
o.uv = v.texcoord;
return o;
}
sampler2D _DissolveTex;
float _Threshold;
fixed4 frag(v2f i) : SV_Target {
float4 c = tex2D(_MainTex, i.uv);
float val = tex2D(_DissolveTex, i.uv).r;
c.a *= step(_Threshold, val);
return c;
}
ENDCG
}
}
答案 0 :(得分:1)
精灵呈现为一个矩形,其中两个三角形为正索引顺序:顺时针。
如果你翻转精灵(比例-1),精灵的两个三角形将变为逆时针。并且,GPU不会呈现逆时针三角形。这就是你的精灵消失的原因。另请参阅what is a clockwise face in openGL。
如果您想要查看精灵,即使它被翻转,您也可以