Исключение шейдера из рендера

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

Исключение шейдера из рендера

Сообщение MF_Andreich 14 июл 2015, 11:11

Вот волнует вопрос, пока сугубо академический. Есть ли способ исключить из рендера автоматически определенный набор шэейдеров? Костыльные способы я знаю:
1. Разносим по разным слоям - рендерим разными камерами.
2. Пишем пустышки с рендер тегами, рендерим с реплэйсмент шейдером.
А есть ли более человеческие способы, чтоб и слои не задействовать, и с пустышками не мучаться?
Holly Shovel Team
Аватара пользователя
MF_Andreich
Старожил
 
Сообщения: 924
Зарегистрирован: 20 июн 2013, 10:09
Откуда: Барнаул
Skype: mf_andreich
  • ICQ

Re: Исключение шейдера из рендера

Сообщение alt3d 27 июл 2015, 12:25

3. Сделать шейдеры прозрачными и переключать alpha одним махом во всех материалах через Shader.SetGlobalFloat()
alt3d
Старожил
 
Сообщения: 687
Зарегистрирован: 04 сен 2011, 21:19
  • Сайт
  • ICQ

Re: Исключение шейдера из рендера

Сообщение MF_Andreich 27 июл 2015, 12:44

alt3d писал(а):3. Сделать шейдеры прозрачными и переключать alpha одним махом во всех материалах через Shader.SetGlobalFloat()

О_О
Исключить из рендера значит не рендерить! То что вы предлагаете... вообще использовать нельзя. Никакого эффекта для картинки с лишней нагрузкой.
Holly Shovel Team
Аватара пользователя
MF_Andreich
Старожил
 
Сообщения: 924
Зарегистрирован: 20 июн 2013, 10:09
Откуда: Барнаул
Skype: mf_andreich
  • ICQ

Re: Исключение шейдера из рендера

Сообщение Woolf 27 июл 2015, 13:44

MF_Andreich писал(а):
alt3d писал(а):3. Сделать шейдеры прозрачными и переключать alpha одним махом во всех материалах через Shader.SetGlobalFloat()

О_О
Исключить из рендера значит не рендерить! То что вы предлагаете... вообще использовать нельзя. Никакого эффекта для картинки с лишней нагрузкой.


А смотрели что-то есть типа Rendering with Replaced Shaders? Я не разбирался, но по названию звучит интригующе..
http://docs.unity3d.com/ru/current/Manu ... ement.html
Разработчик theFisherOnline - там, где клюёт
Разработчик Atom Fishing II - Первая 3D MMO про рыбалку
Разработчик Atom Fishing - Рыбалка на поплавок, донку, нахлыст, блесну в постъядерный период.
Аватара пользователя
Woolf
Адепт
 
Сообщения: 7179
Зарегистрирован: 02 мар 2009, 16:59

Re: Исключение шейдера из рендера

Сообщение MF_Andreich 27 июл 2015, 14:32

Woolf писал(а):
MF_Andreich писал(а):
alt3d писал(а):3. Сделать шейдеры прозрачными и переключать alpha одним махом во всех материалах через Shader.SetGlobalFloat()

О_О
Исключить из рендера значит не рендерить! То что вы предлагаете... вообще использовать нельзя. Никакого эффекта для картинки с лишней нагрузкой.


А смотрели что-то есть типа Rendering with Replaced Shaders? Я не разбирался, но по названию звучит интригующе..
http://docs.unity3d.com/ru/current/Manu ... ement.html


Да ничего интригующего. Как всегда полумера =)
Можно отрендерить объекты без всяких распределений по лэйерам с определенным тэгом ОДНИМ шейдером... при этом исключить из предварительного рендера их нельзя =)
Хочется получить некий способ, что одни шейдеры идут в одну камеру, другие в другую, при этом слои не задействованы... функционал получения тэга есть... можно костылей своих накрутить, но обидно блин.
Holly Shovel Team
Аватара пользователя
MF_Andreich
Старожил
 
Сообщения: 924
Зарегистрирован: 20 июн 2013, 10:09
Откуда: Барнаул
Skype: mf_andreich
  • ICQ

Re: Исключение шейдера из рендера

Сообщение jetyb 28 июл 2015, 08:06

Не вижу в способе с Replacement шейдерами особой костыльности. Был бы на руках исходный код юнити - можно было бы сделать лучше, а так...
Любая достаточно сложная система выходящая за рамки юнитивского API будет костыльной.

Могу еще предложить способ через отсечение шейдеров по уровням детали (LOD). Ненужные шейдеры можно отсекать через Shader.maximumLod (Shader.globalMaximumLOD) в коде. LOD у стандартных шейдеров известен, у своих можно прописать.
http://docs.unity3d.com/ru/current/Manu ... erLOD.html
jetyb
Адепт
 
Сообщения: 1486
Зарегистрирован: 31 окт 2011, 17:21

Re: Исключение шейдера из рендера

Сообщение alt3d 29 июл 2015, 09:47

MF_Andreich писал(а):
alt3d писал(а):3. Сделать шейдеры прозрачными и переключать alpha одним махом во всех материалах через Shader.SetGlobalFloat()

О_О
Исключить из рендера значит не рендерить! То что вы предлагаете... вообще использовать нельзя. Никакого эффекта для картинки с лишней нагрузкой.


Поэтому я и написал его как костыль номер 3, в вашем списке. :)
И мне кажется что он самый простой - без камер и пустышек, регулируется одной переменной.
Производительность - это другой вопрос, если таких объектов не сотни - на PC, например, можно забить, мне кажется.
alt3d
Старожил
 
Сообщения: 687
Зарегистрирован: 04 сен 2011, 21:19
  • Сайт
  • ICQ

Re: Исключение шейдера из рендера

Сообщение MF_Andreich 29 июл 2015, 10:19

alt3d писал(а):
MF_Andreich писал(а):
alt3d писал(а):3. Сделать шейдеры прозрачными и переключать alpha одним махом во всех материалах через Shader.SetGlobalFloat()

О_О
Исключить из рендера значит не рендерить! То что вы предлагаете... вообще использовать нельзя. Никакого эффекта для картинки с лишней нагрузкой.


Поэтому я и написал его как костыль номер 3, в вашем списке. :)
И мне кажется что он самый простой - без камер и пустышек, регулируется одной переменной.
Производительность - это другой вопрос, если таких объектов не сотни - на PC, например, можно забить, мне кажется.

Забивать в геймдеве нельзя, никогда и ни на что. У нас и так слишком много игр вааще без оптимизации выходит. Тут маленько, там маленько... в итоге 15 фпс =)
Holly Shovel Team
Аватара пользователя
MF_Andreich
Старожил
 
Сообщения: 924
Зарегистрирован: 20 июн 2013, 10:09
Откуда: Барнаул
Skype: mf_andreich
  • ICQ

Re: Исключение шейдера из рендера

Сообщение alt3d 29 июл 2015, 12:59

MF_Andreich писал(а):Забивать в геймдеве нельзя, никогда и ни на что. У нас и так слишком много игр вааще без оптимизации выходит. Тут маленько, там маленько... в итоге 15 фпс =)


Нормально. Видеокарту купят помощнее.
Ребятам из Nvidia тоже нужно есть.)
alt3d
Старожил
 
Сообщения: 687
Зарегистрирован: 04 сен 2011, 21:19
  • Сайт
  • ICQ

Re: Исключение шейдера из рендера

Сообщение Woolf 29 июл 2015, 13:03

Тут маленько, там маленько... в итоге 15 фпс =)

Или, как у меня - фпс вроде 100, но карта ревет как лайнер на взлет идущий. И что делать - фиг его знает..
Разработчик theFisherOnline - там, где клюёт
Разработчик Atom Fishing II - Первая 3D MMO про рыбалку
Разработчик Atom Fishing - Рыбалка на поплавок, донку, нахлыст, блесну в постъядерный период.
Аватара пользователя
Woolf
Адепт
 
Сообщения: 7179
Зарегистрирован: 02 мар 2009, 16:59


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

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

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