Самый простой шейдер

Шейдеры и все-все-все.

Самый простой шейдер

Сообщение denprox 15 ноя 2019, 12:50

Доброго времени суток! Подскажите, как в данном примере добавить возможность изменять цвет :

Синтаксис:
Используется csharp
Shader "Custom/Backobject" {
        Properties
        {
                _Color("Main Color", Color) = (1,1,1,1)
        }

        SubShader{
                Pass{
                        Stencil{
                                Ref 1
                                Comp Equal
                        }
                }
        }
        //Fallback "Diffuse"
}
 
Аватара пользователя
denprox
UNIт
 
Сообщения: 107
Зарегистрирован: 25 май 2017, 09:06
  • Сайт

Re: Самый простой шейдер

Сообщение denprox 15 ноя 2019, 15:33

Делаю так, но тогда не выполняются параметры Stencil

Синтаксис:
Используется csharp
Shader "Custom/Backobj_2" {
        Properties
        {
                _Color("Main Color", Color) = (1,0.5,0.5,1)
        }
                SubShader{
                        Pass{
                        Stencil{

                        Ref 1
                        Comp Equal
                }
                        Tags{ "RenderType" = "Opaque" }
                        LOD 200
                }
                                CGPROGRAM
                                #pragma surface surf Standard fullforwardshadows

                                #pragma target 3.0

                        struct Input
                        {
                                float4 color : COLOR;
                        };

                        fixed4 _Color;

                        void surf(Input IN, inout SurfaceOutputStandard o)
                        {
                                fixed4 c = _Color;
                                o.Albedo = c.rgb;
                        }
                       
                        ENDCG
        }
                //Fallback "Diffuse"
}
 
Аватара пользователя
denprox
UNIт
 
Сообщения: 107
Зарегистрирован: 25 май 2017, 09:06
  • Сайт

Re: Самый простой шейдер

Сообщение jetyb 12 дек 2019, 07:27

1. Попробовать перенести блок
Stencil
в блок SubShader (где стоит #pragma surface surf). Сейчас он в другом блоке Pass.
2. Если не сработает, то создать Unlit shader с 1 блоком Pass и туда вставить блок Stencil.
jetyb
Адепт
 
Сообщения: 1486
Зарегистрирован: 31 окт 2011, 17:21


Вернуться в Shader Lab

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

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