Страница 1 из 1

Как прописать полупрозрачность в шейдере

СообщениеДобавлено: 17 апр 2018, 15:23
Keyne
Написал код который передает альфа канал цвета в альфа шейдера ; В итоге объект становится прозрачным но появилась другая проблема - объекты находящиеся сзади теперь отображаются поверх "полупрозрачного" объекта. Думал это может помочь https://docs.unity3d.com/ru/520/Manual/SL-Blend.html но так и не понял как с этим работать ; Помогите с кодингом шейдеров ранее не сталкивался /:)
Синтаксис:
Используется csharp
Shader "Custom/Px1" {
        Properties {
                _Col ("_ColorAmb", Color) = (1,1,1,1)
        }
        SubShader {
                Tags { "RenderType"="Opaque" }
                Pass {

                #pragma surface surf BlinnPhong alpha

                CGPROGRAM
               
                struct Input
                {
                float4 color : COLOR;
                };
       
                fixed4 _Col;

                void surf (Input IN, inout SurfaceOutput o)
                {
                        o.Albedo = _Col.rgb;
                        o.Alpha = _Col.a;
                }
                ENDCG
                }
        }
}
 

Re: Как прописать полупрозрачность в шейдере

СообщениеДобавлено: 17 апр 2018, 15:45
snezhok_13
Попробуйте сделать
Tags { "RenderType"="Transparent" }

Re: Как прописать полупрозрачность в шейдере

СообщениеДобавлено: 17 апр 2018, 16:26
Keyne
snezhok_13 писал(а):Попробуйте сделать
Tags { "RenderType"="Transparent" }

Пробовал нет . Не в этом дело ...

Re: Как прописать полупрозрачность в шейдере

СообщениеДобавлено: 17 апр 2018, 23:20
waruiyume
Tags { "Queue" = "Transparent" }
Прозрачные шейдеры обычно не пишут в z буффер, поэтому из нужно выводить после непрозрачных объектов и сортировать в обратном порядке.

Re: Как прописать полупрозрачность в шейдере

СообщениеДобавлено: 19 апр 2018, 09:12
Keyne
waruiyume писал(а):Tags { "Queue" = "Transparent" }
Прозрачные шейдеры обычно не пишут в z буффер, поэтому из нужно выводить после непрозрачных объектов и сортировать в обратном порядке.

Вообщем разобрался , кроме Transparent надо еще "Queue"="Geometry+1" прописать :ymsigh:

Re: Как прописать полупрозрачность в шейдере

СообщениеДобавлено: 19 апр 2018, 09:15
Keyne
Keyne писал(а):
waruiyume писал(а):Tags { "Queue" = "Transparent" }
Прозрачные шейдеры обычно не пишут в z буффер, поэтому из нужно выводить после непрозрачных объектов и сортировать в обратном порядке.

вообщем разобрался / кроме Transparent надо еще "Queue"="Geometry+1" :ymsigh: