如何解决URP中的自定义着色器无法升级
我在有LWRP的2018 Unity版本中使用了自定义着色器,现在我已升级到带有URP的最新Unity,并且不再可以使用此着色器。都是粉红色的。我什至尝试过进行设置和升级项目资料,但是会引发错误There's no upgrader to convert Custom/OnTop shader to selected pipeline
。如何在URP中重用此着色器?
Shader "Custom/OnTop" {
Properties {
_Color ("Color",Color) = (1,1,1)
_MainTex ("Albedo (RGB)",2D) = "white" {}
_Glossiness ("Smoothness",Range(0,1)) = 0.5
_Metallic ("Metallic",1)) = 0.0
[NoScaleOffset] _EmissionMap ("Emission",2D) = "black" {}
//_Emission ("Emission",Color) = (0,0)
[HDR] _EmissionColor ("Emission Color",0)
}
SubShader {
Tags {"Queue" = "Transparent" "RenderType"="Transparent" }
Blend SrcAlpha OneMinusSrcAlpha
LOD 200
ZWrite Off
CGPROGRAM
#pragma surface surf Standard fullforwardshadows alpha:fade
#pragma target 3.0
sampler2D _MainTex;
struct Input {
float2 uv_MainTex;
};
half _Glossiness;
half _Metallic;
fixed4 _Color;
sampler2D _EmissionMap;
fixed4 _EmissionColor;
UNITY_INSTANCING_BUFFER_START(Props)
// put more per-instance properties here
UNITY_INSTANCING_BUFFER_END(Props)
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 = c.a;
o.Emission = tex2D(_EmissionMap,IN.uv_MainTex) * _EmissionColor;
c.rgb += o.Emission.rgb;
}
ENDCG
}
FallBack "Diffuse"
}
解决方法
尝试更改
[NoScaleOffset] _EmissionMap ("Emission",2D) = "black" {}
//_Emission ("Emission",Color) = (0,0)
[HDR] _EmissionColor ("Emission Color",0)
到
_EmissionMap ("Emission",0)
_EmissionColor ("Emission Color",0)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。