Unity URP使用后处理Render Texture无法变透明解决方法
直接用不透明纯黑然后用Shader把黑色部分变透明Shader Custom/BlackToTransparent { Properties { _MainTex (Texture, 2D) white {} _BlackThreshold (Black Threshold, Range(0, 1)) 0.01 } SubShader { // 核心开启透明混合支持Alpha通道 Tags { QueueTransparent RenderTypeTransparent IgnoreProjectorTrue } LOD 100 Blend SrcAlpha OneMinusSrcAlpha ZWrite Off Pass { CGPROGRAM #pragma vertex vert #pragma fragment frag #include UnityCG.cginc // 顶点输入结构 struct appdata { float4 vertex : POSITION; float2 uv : TEXCOORD0; }; // 顶点输出结构 struct v2f { float2 uv : TEXCOORD0; float4 vertex : SV_POSITION; }; sampler2D _MainTex; float4 _MainTex_ST; float _BlackThreshold; // 顶点着色器 v2f vert (appdata v) { v2f o; o.vertex UnityObjectToClipPos(v.vertex); o.uv TRANSFORM_TEX(v.uv, _MainTex); return o; } // 片元着色器 fixed4 frag (v2f i) : SV_Target { // 采样RT里的像素颜色 fixed4 col tex2D(_MainTex, i.uv); float brightness (col.r col.g col.b) / 3; if (brightness _BlackThreshold) { col.a 0; } return col; } ENDCG } } }如果角色身上有黑色你也可以指定一个颜色变透明比如2550255
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2433841.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!