Проблема с Transparent шейдером, помогите

Для экспериментальных разработок и тем "я нашел чужой исходник, почему он не работает?"

Проблема с Transparent шейдером, помогите

Сообщение Diab10 08 сен 2013, 15:27

Всем привет.
Меш с Transparent шейдером просвечивается сквозь билборды деревьев.
Прочитал, что нужно в коде шейдера объекта поменять "Queue"="Transparent" на "Queue"="Transparent-101"(ну или 200 - разницы нет). Поменял. Получилось не то, что нужно.

Вот скрины:

С "Queue"="Transparent" (тут видно, что сетка забора просвечивает сквозь деревья):
Изображение

С "Queue"="Transparent-101" (тут видно, что просвечивать перестало, но появилась новая проблема - забор исчез там, где забор находится ПЕРЕД билбордами. Перед деревьями(не билбордами, а мешами) - нормально):
Изображение



Подскажите плиз, как поступить в данном случае? :-\
Аватара пользователя
Diab10
Адепт
 
Сообщения: 3393
Зарегистрирован: 17 мар 2011, 20:42
Откуда: 123 RUS
Skype: diab1023

Re: Проблема с Transparent шейдером, помогите

Сообщение Diab10 09 сен 2013, 11:26

Никто не сталкивался? :(

Ну тогда есть ли возможность менять в зависимости от расстояния тег в шейдере(ну или весь шейдер)? Чтобы менялось Transparent на Transparent-101 на определённом расстояниии. Или это невозможно?
Аватара пользователя
Diab10
Адепт
 
Сообщения: 3393
Зарегистрирован: 17 мар 2011, 20:42
Откуда: 123 RUS
Skype: diab1023

Re: Проблема с Transparent шейдером, помогите

Сообщение artk 09 сен 2013, 13:13

Это, к сожалению, типичная проблема. Когда уже сделают риалтайм рэйтрайсинг... 8-|
Можно использовать Material.renderQueue, это тоже самое что и тэги.
А можно загнать текстуры в атлас и использовать один шейдер. Посмотри как реализована сортировка в NGUI.
Аватара пользователя
artk
Старожил
 
Сообщения: 749
Зарегистрирован: 22 май 2011, 12:22

Re: Проблема с Transparent шейдером, помогите

Сообщение Diab10 09 сен 2013, 15:13

artk писал(а):Это, к сожалению, типичная проблема. Когда уже сделают риалтайм рэйтрайсинг... 8-|
Можно использовать Material.renderQueue, это тоже самое что и тэги.
А можно загнать текстуры в атлас и использовать один шейдер. Посмотри как реализована сортировка в NGUI.


Дело в том, что деревья у меня юнитиевские встроенные, доступа к их билбордам нет. И забор единым мешем сделан.
В зависимости от расстояния не получится в шейдере тег менять?
Аватара пользователя
Diab10
Адепт
 
Сообщения: 3393
Зарегистрирован: 17 мар 2011, 20:42
Откуда: 123 RUS
Skype: diab1023

Re: Проблема с Transparent шейдером, помогите

Сообщение waruiyume 09 сен 2013, 15:33

Используйте Cutoff шейдеры.
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 4954
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Проблема с Transparent шейдером, помогите

Сообщение Diab10 09 сен 2013, 16:18

waruiyume писал(а):Используйте Cutoff шейдеры.


Получилось что то страшное:
Изображение


Во первых, прозрачность кривая, а во вторых - билборды всё равно перекрывают забор вблизи
Аватара пользователя
Diab10
Адепт
 
Сообщения: 3393
Зарегистрирован: 17 мар 2011, 20:42
Откуда: 123 RUS
Skype: diab1023

Re: Проблема с Transparent шейдером, помогите

Сообщение seaman 09 сен 2013, 22:08

Используйте первый шейдер и Лод, т.е. удаляйте рендер на большом расстоянии. Плюс расстояние до билбордов деревьев настройте так, чтобы они появлялись на расстоянии большем, чем пропадал рендер сетки. Плюс туман. И никаких проблем.
seaman
Адепт
 
Сообщения: 7489
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Проблема с Transparent шейдером, помогите

Сообщение artk 10 сен 2013, 09:00

Аватара пользователя
artk
Старожил
 
Сообщения: 749
Зарегистрирован: 22 май 2011, 12:22

Re: Проблема с Transparent шейдером, помогите

Сообщение Diab10 10 сен 2013, 15:22

seaman писал(а):Используйте первый шейдер и Лод, т.е. удаляйте рендер на большом расстоянии.


Это можно сделать внутри шейдера? Раньше с лодами шейдеров дела не имел, сейчас буду читать.
Если ГО удалять, то не катит, т.к. забор сделан единым мешем на весь уровень, нет желания с ним возиться для рассоединения.


seaman писал(а):Плюс расстояние до билбордов деревьев настройте так, чтобы они появлялись на расстоянии большем, чем пропадал рендер сетки.

Сильно много деревьев выйдет, ФПС ляжет)


seaman писал(а):Плюс туман


Сильно близко для тумана :)
Аватара пользователя
Diab10
Адепт
 
Сообщения: 3393
Зарегистрирован: 17 мар 2011, 20:42
Откуда: 123 RUS
Skype: diab1023

Re: Проблема с Transparent шейдером, помогите

Сообщение waruiyume 11 сен 2013, 07:15

Рисуйте забор 2 раза, 1- альфатест, 2- альфабленд.
http://docs.unity3d.com/Documentation/C ... aTest.html
Синтаксис:
Используется glsl
Shader "Vegetation" {
        Properties {
                _Color ("Main Color", Color) = (.5, .5, .5, .5)
                _MainTex ("Base (RGB) Alpha (A)", 2D) = "white" {}
                _Cutoff ("Base Alpha cutoff", Range (0,.9)) = .5
        }
        SubShader {
                // Set up basic lighting
                Material {
                        Diffuse [_Color]
                        Ambient [_Color]
                }
                Lighting On

                // Render both front and back facing polygons.
                Cull Off

                // first pass:
                //   render any pixels that are more than [_Cutoff] opaque
                Pass {
                        AlphaTest Greater [_Cutoff]
                        SetTexture [_MainTex] {
                                combine texture * primary, texture
                        }
                }

                // Second pass:
                //   render in the semitransparent details.
                Pass {
                        // Dont write to the depth buffer
                        ZWrite off
                        // Don't write pixels we have already written.
                        ZTest Less
                        // Only render pixels less or equal to the value
                        AlphaTest LEqual [_Cutoff]

                        // Set up alpha blending
                        Blend SrcAlpha OneMinusSrcAlpha

                        SetTexture [_MainTex] {
                                combine texture * primary, texture
                        }
                }
        }
}
 
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 4954
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону


Вернуться в Шейдерная кузня

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

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