シェーダーを勉強中です。
タイトルの通りですが、下記コードの★の部分でalpha = 0としているのですが、
期待では全透明になるはずが半透明になってしまいます。なぜでしょうか?
HLSL
1// Unity built-in shader source. Copyright (c) 2016 Unity Technologies. MIT license (see license.txt) 2 3Shader "Sprites/TestShader" 4{ 5 Properties 6 { 7 [PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {} 8 _Color ("Tint", Color) = (1,1,1,1) 9 [MaterialToggle] PixelSnap ("Pixel snap", Float) = 0 10 [HideInInspector] _RendererColor ("RendererColor", Color) = (1,1,1,1) 11 [HideInInspector] _Flip ("Flip", Vector) = (1,1,1,1) 12 [PerRendererData] _AlphaTex ("External Alpha", 2D) = "white" {} 13 [PerRendererData] _EnableExternalAlpha ("Enable External Alpha", Float) = 0 14 15 [Space] 16 17 } 18 19 SubShader 20 { 21 Tags 22 { 23 "Queue"="Transparent" 24 "IgnoreProjector"="True" 25 "RenderType"="Transparent" 26 "PreviewType"="Plane" 27 "CanUseSpriteAtlas"="True" 28 } 29 30 Cull Off 31 Lighting Off 32 ZWrite Off 33 Blend One OneMinusSrcAlpha 34 35 Pass 36 { 37 CGPROGRAM 38 #pragma vertex vert 39 #pragma fragment frag 40 #pragma target 2.0 41 #pragma multi_compile_instancing 42 #pragma multi_compile _ PIXELSNAP_ON 43 #pragma multi_compile _ ETC1_EXTERNAL_ALPHA 44 #include "UnitySprites.cginc" 45 46 struct v2fCustom 47 { 48 float4 vertex : SV_POSITION; 49 fixed4 color : COLOR; 50 float2 texcoord : TEXCOORD0; 51 float2 position : TEXCOORD1; 52 UNITY_VERTEX_OUTPUT_STEREO 53 }; 54 55 v2fCustom vert(appdata_t IN) 56 { 57 v2fCustom OUT; 58 59 UNITY_SETUP_INSTANCE_ID (IN); 60 UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(OUT); 61 62 OUT.vertex = UnityFlipSprite(IN.vertex, _Flip); 63 OUT.vertex = UnityObjectToClipPos(OUT.vertex); 64 OUT.texcoord = IN.texcoord; 65 OUT.color = IN.color * _Color * _RendererColor; 66 OUT.position = IN.vertex.xy * 2; 67 68 #ifdef PIXELSNAP_ON 69 OUT.vertex = UnityPixelSnap (OUT.vertex); 70 #endif 71 72 return OUT; 73 } 74 75 fixed4 frag(v2fCustom IN) : SV_Target 76 { 77 fixed4 c = SampleSpriteTexture (IN.texcoord) * IN.color; 78 79 float alpha = 0; // ★ 0にすると全透明になると期待するが半透明になってしまう 80 c.a = alpha; 81 82 return c; 83 } 84 ENDCG 85 } 86 } 87}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/20 23:11
2021/01/21 03:48
2021/01/21 04:00