Hello everyone, I'm currently having an issue with Universial Render Pipeline. I am newbie to Shader and I need to have this Underlay Imposter shader from Oculus to create a hole that allows the underlay OVROverlay to show thorough. It works nicely with Unity build in setup, but it turns into all pink after URP is enabled .I have tried to compare the code with URP Lit shader , but no luck so far. Is there any way to make this shader work in URP? Code (CSharp): /* This shader is used to render the impostor while clearing out the alpha of the eye buffer The important details here are: - the use of the Geometry+1 queue to make sure the impostor is drawn after all other opaque objects but before alpha - the keepalpha parameter that allow unity to actually write the alpha we return at the end of the shader. */ Shader "Oculus/Underlay Impostor" { Properties{ _Color("Color", Color) = (1,1,1,1) _MainTex("Albedo (RGB)", 2D) = "white" {} _Glossiness("Smoothness", Range(0,1)) = 0.5 _Metallic("Metallic", Range(0,1)) = 0.0 } SubShader{ Tags { "Queue" = "Geometry+1" "RenderType" = "Opaque" } LOD 200 CGPROGRAM // Physically based Standard lighting model, and enable shadows on all light types #pragma surface surf Standard fullforwardshadows keepalpha // Use shader model 3.0 target, to get nicer looking lighting #pragma target 3.0 sampler2D _MainTex; struct Input { float2 uv_MainTex; }; half _Glossiness; half _Metallic; fixed4 _Color; void surf(Input IN, inout SurfaceOutputStandard o) { // Albedo comes from a texture tinted by color fixed4 c = tex2D(_MainTex, IN.uv_MainTex) * _Color; o.Albedo = c.rgb; // Metallic and smoothness come from slider variables o.Metallic = _Metallic; o.Smoothness = _Glossiness; o.Alpha = 0.f; } ENDCG } FallBack "Diffuse" }
Hello, I had the exact same problem as you Try this shader : Code (CSharp): Shader "Unlit/NewUnlitShader" { Properties { _MainTex ("Texture", 2D) = "white" {} } SubShader { Tags { "Queue" = "Transparent" "RenderType"="Opaque" } LOD 200 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; 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 { return 0; } ENDCG } } }