首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >URP中的自定义着色器不可升级

URP中的自定义着色器不可升级
EN

Stack Overflow用户
提问于 2020-10-15 08:14:32
回答 1查看 1.1K关注 0票数 0

我使用自定义着色器在2018年的统一版本,其中有LWRP,现在我已经升级到最新的团结与URP,我再也不能使用这个着色器。全是粉红色的。我甚至尝试去设置和升级的项目材料,但它抛出一个错误的There's no upgrader to convert Custom/OnTop shader to selected pipeline。如何在URP中重用此着色器?

代码语言:javascript
复制
Shader "Custom/OnTop" {
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
    [NoScaleOffset] _EmissionMap ("Emission", 2D) = "black" {}
        //_Emission ("Emission", Color) = (0, 0, 0)
        [HDR] _EmissionColor ("Emission Color", Color) = (0,0,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"
}
EN

回答 1

Stack Overflow用户

发布于 2020-10-16 11:13:23

试着改变

代码语言:javascript
复制
[NoScaleOffset] _EmissionMap ("Emission", 2D) = "black" {}
//_Emission ("Emission", Color) = (0, 0, 0)
[HDR] _EmissionColor ("Emission Color", Color) = (0,0,0)

代码语言:javascript
复制
_EmissionMap ("Emission", 2D) = "black" {}
//_Emission ("Emission", Color) = (0, 0, 0)
_EmissionColor ("Emission Color", Color) = (0,0,0)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64367438

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档