Diffuse и Transparent/Diffuse (alpha = 1).

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

Diffuse и Transparent/Diffuse (alpha = 1).

Сообщение tr1te 05 сен 2012, 11:17

Хочу сделать плавное исчезновение объекта. Понятно что надо делать это изменяя альфу у любого Transparent шейдера.
Transparent шейдер с максимальной альфой он конечно непрозрачный для других объектов, но он прозрачный для собственных полигонов.

Как добиться чтобы Diffuse и transparent/Diffuse (alpha = 1) выглядели одинокого? Или есть более правильное решение проблемы?

TransparentShader.jpg
У вас нет доступа для просмотра вложений в этом сообщении.
Аватара пользователя
tr1te
UNец
 
Сообщения: 27
Зарегистрирован: 04 апр 2012, 12:20

Re: Diffuse и Transparent/Diffuse (alpha = 1).

Сообщение tr1te 06 сен 2012, 13:31

Решение:
Такой эффект происходит в том случае если объект состоит из нескольких блоков и они неправильно сортируются. В Transparent шейдере не используется Z сортировка.

После пары изменений, И добавления строки ZWrite On, все отлично сортируется. Вот обертка стандартного Transparent/diffuse шейдера:

Синтаксис:
Используется csharp
Shader "Transparent/Diffuse with ZWrite" {
        Properties {
                _Color ("Main Color", Color) = (1,1,1,1)
                _MainTex ("Base (RGB) Trans (A)", 2D) = "white" {}
        }

        SubShader {
                Tags {"Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent"}
                LOD 200

                // extra pass that renders to depth buffer only
                Pass {
                        ZWrite On
                        ColorMask 0
                }
               
                UsePass "Transparent/Diffuse/FORWARD"
        }

        Fallback "Transparent/VertexLit"
}
Аватара пользователя
tr1te
UNец
 
Сообщения: 27
Зарегистрирован: 04 апр 2012, 12:20

Re: Diffuse и Transparent/Diffuse (alpha = 1).

Сообщение Battle Angel Alita 06 сен 2012, 22:59

>Или есть более правильное решение проблемы?
DX11 & OIT
Мозг рака
Изображение
Аватара пользователя
Battle Angel Alita
UNIверсал
 
Сообщения: 476
Зарегистрирован: 25 ноя 2009, 14:52

Re: Diffuse и Transparent/Diffuse (alpha = 1).

Сообщение tr1te 07 сен 2012, 07:48

Battle Angel Alita писал(а):>Или есть более правильное решение проблемы?
DX11 & OIT


Unity3d 4 еще не вышел, а пребету я не заказывал. А вот про OIT можно поподробней. По запросу гугл находит данный топик. :)
Аватара пользователя
tr1te
UNец
 
Сообщения: 27
Зарегистрирован: 04 апр 2012, 12:20


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

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

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