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

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

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

Сообщение Keyne 17 апр 2018, 15:23

Написал код который передает альфа канал цвета в альфа шейдера ; В итоге объект становится прозрачным но появилась другая проблема - объекты находящиеся сзади теперь отображаются поверх "полупрозрачного" объекта. Думал это может помочь 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
                }
        }
}
 
Аватара пользователя
Keyne
UNец
 
Сообщения: 29
Зарегистрирован: 24 фев 2018, 09:18

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

Сообщение snezhok_13 17 апр 2018, 15:45

Попробуйте сделать
Tags { "RenderType"="Transparent" }
Разработка игр, немножко игровая журналистика, сейчас делаем Календарь: даты выхода игр
Аватара пользователя
snezhok_13
UNIверсал
 
Сообщения: 450
Зарегистрирован: 09 сен 2013, 11:12
Skype: s.coremission
  • Сайт

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

Сообщение Keyne 17 апр 2018, 16:26

snezhok_13 писал(а):Попробуйте сделать
Tags { "RenderType"="Transparent" }

Пробовал нет . Не в этом дело ...
Аватара пользователя
Keyne
UNец
 
Сообщения: 29
Зарегистрирован: 24 фев 2018, 09:18

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

Сообщение waruiyume 17 апр 2018, 23:20

Tags { "Queue" = "Transparent" }
Прозрачные шейдеры обычно не пишут в z буффер, поэтому из нужно выводить после непрозрачных объектов и сортировать в обратном порядке.
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

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

Сообщение Keyne 19 апр 2018, 09:12

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

Вообщем разобрался , кроме Transparent надо еще "Queue"="Geometry+1" прописать :ymsigh:
Аватара пользователя
Keyne
UNец
 
Сообщения: 29
Зарегистрирован: 24 фев 2018, 09:18

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

Сообщение Keyne 19 апр 2018, 09:15

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

вообщем разобрался / кроме Transparent надо еще "Queue"="Geometry+1" :ymsigh:
Аватара пользователя
Keyne
UNец
 
Сообщения: 29
Зарегистрирован: 24 фев 2018, 09:18


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

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

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