Почему в 2018.2 Beta отвалился Replacement Shader?

Общие вопросы о Unity3D

Почему в 2018.2 Beta отвалился Replacement Shader?

Сообщение Shock 08 июл 2018, 04:25

Всем привет. У меня прекрасно работал небольшой скрипт в предыдущей версии, но в текущей бете он совершенно никак не влияет на рендеринг, словно SetReplacementShader вообще не вызывается. Там довольно много изменений в Rendering Pipeline было, но что могло реально стать причиной и как её пофиксить? Подскажите, куда можно копнуть?

Код довольно прост:

Синтаксис:
Используется csharp
using UnityEngine;

namespace Assets.Asimov.Utils
{
        [RequireComponent(typeof(Camera))]
        public class CameraShaderReplacement : MonoBehaviour
        {
                [SerializeField]
                private Shader ReplacementShader;

                public void Start ()
                {
                        Debug.Log("Activate replacement shader");
                        GetComponent<Camera>().SetReplacementShader(ReplacementShader, "RenderType");
                }
        }
}


Синтаксис:
Используется csharp
Shader "ColorReplacement" {

    Properties {
        ReplacementColor ("ReplacementColor", Color) = (0,0,0,1)
                _MainTex ("Base (RGB) Alpha (A)", 2D) = "white" {}
    }
        SubShader
        {
                Tags { "RenderType"="Opaque" }
                LOD 100
                Pass
                {
                        CGPROGRAM
                        #pragma vertex vert
                        #pragma fragment frag

                        struct appdata
                        {
                                float4 vertex : POSITION;
                        };

                        struct v2f
                        {
                                float4 vertex : SV_POSITION;
                        };
                        float4 ReplacementColor;
                       
                        v2f vert (appdata v)
                        {
                                v2f o;
                                o.vertex = UnityObjectToClipPos(v.vertex);
                                return o;
                        }
                       
                        fixed4 frag (v2f i) : SV_Target
                        {
                                return ReplacementColor;
                        }
                        ENDCG
                }
        }
}
Аватара пользователя
Shock
UNIт
 
Сообщения: 60
Зарегистрирован: 10 окт 2016, 18:22

Re: Почему в 2018.2 Beta отвалился Replacement Shader?

Сообщение Shock 09 июл 2018, 21:00

Ребят, дело в новом Hd Rendering Pipeline. Там SetReplacementShader просто не работает.

Вот чистый тестовый проект для обычной 2018.2 Beta, тут все работает клево:
https://drive.google.com/open?id=1TJxIG ... vGdpKRO6Uu
Изображение

Если те же настройки сделать в экспериментальном пайплайне, то реплейсмента словно не происходит:
Изображение

Это временный баг или так оно и работает? Если так оно и должно работать (хотя об этом нигде не сказано), то как с этим жить? Подскажите
Аватара пользователя
Shock
UNIт
 
Сообщения: 60
Зарегистрирован: 10 окт 2016, 18:22

Re: Почему в 2018.2 Beta отвалился Replacement Shader?

Сообщение Shock 11 июл 2018, 04:44

Коротко: это фича. Теперь, при использовании - метод не работает. Вместо него необходимо использовать SRP.
Аватара пользователя
Shock
UNIт
 
Сообщения: 60
Зарегистрирован: 10 окт 2016, 18:22


Вернуться в Общие вопросы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7