Шейдер прозрачных дырок (дырки от пуль!)

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

Шейдер прозрачных дырок (дырки от пуль!)

Сообщение Magnitofon 01 янв 2016, 14:06

Сегодня весь день искал вариант создания сквозных дырок от пуль в объектах. Представьте: игрок изрешетил дверь или тонкую стенку и через нее видно, как по ту сторону в ужасе бегают враги. Это же здорово!
Вариант разбиения меша на кусочки отмел сразу. Я уверен, что есть вариант более элегантный. Второй вариант- ставить камеру с противоположной стороны объекта и рендерить с нее изображение на "дырку"- тоже не подходит по причине производительности (представьте сотни таких объектов на карте!). Я посчитал лучшим вариант использования шейдеров прозрачности. Даже нашел в сети рабочий вариант Depth Mask вот здесь- http://answers.unity3d.com/questions/704763/does-anyone-know-how-to-implement-these-depth-mask.html! Помещаешь шейдер на сплайн, сплайн ставишь перед объектом- имеем имитацию дырки.

Проблема в том, что я НИЧЕРТА не разбираюсь в шейдерах! Для меня это темный лес. В приведенном по ссылке примере шейдер глючит- при вращении камеры вокруг сплайна прозрачность то пропадает, то появляется. В общем, ведет себя безобразно. Прошу помочь мне разобраться в тонкостях прозрачных масок, буду очень признателен!

Почему прозрачность пропадает при вращении камеры?

Может у вас найдется в запасниках подходящий шейдер и вы сможете выложить пример сюда? Это был бы идеальный вариант!
Magnitofon
UNIт
 
Сообщения: 63
Зарегистрирован: 10 сен 2013, 16:50

Re: Шейдер прозрачных дырок (дырки от пуль!)

Сообщение alexanya11 01 янв 2016, 22:32

думаю, что можно это сделать модифицированными декалями с transparent-объектами.
Только вот тогда для того, чтобы receive и cast shadows нужно будет писать дополнительный шейдер.
В принципе, могу помочь, но для начала вопрос: а может сделать сначала simple игру, а потом уже добавлять фишки?)
alexanya11
UNIт
 
Сообщения: 64
Зарегистрирован: 24 июн 2013, 22:14

Re: Шейдер прозрачных дырок (дырки от пуль!)

Сообщение Magnitofon 02 янв 2016, 18:38

alexanya11, я как раз пришел сюда за помощью, так что конечно! Буду очень рад, если вы мне поможете.

Что касается второго вопроса, то не хочется терять время- если что-то можно сделать сейчас, зачем откладывать?
Последний раз редактировалось Magnitofon 03 янв 2016, 13:48, всего редактировалось 1 раз.
Magnitofon
UNIт
 
Сообщения: 63
Зарегистрирован: 10 сен 2013, 16:50

Re: Шейдер прозрачных дырок (дырки от пуль!)

Сообщение waruiyume 02 янв 2016, 19:21

Может быть это можно реализовать, через шаманизм, со стенсил буфером, а может и не быть?)
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Шейдер прозрачных дырок (дырки от пуль!)

Сообщение IDoNotExist 03 янв 2016, 01:13

Можно сделать с помощью булевых операций как вариант https://www.assetstore.unity3d.com/en/#!/content/18544
Аватара пользователя
IDoNotExist
Адепт
 
Сообщения: 1432
Зарегистрирован: 23 мар 2011, 09:18
Skype: iamnoexist

Re: Шейдер прозрачных дырок (дырки от пуль!)

Сообщение Magnitofon 04 янв 2016, 18:37

IDoNotExist писал(а):Можно сделать с помощью булевых операций как вариант https://www.assetstore.unity3d.com/en/#!/content/18544

Вряд ли- слишком накладно по производительности.

alexanya11 писал(а):думаю, что можно это сделать модифицированными декалями с transparent-объектами.
Только вот тогда для того, чтобы receive и cast shadows нужно будет писать дополнительный шейдер.
В принципе, могу помочь, но для начала вопрос: а может сделать сначала simple игру, а потом уже добавлять фишки?)


Ну так как, поможете?
Кстати, кто-нибудь может сказать, на сколько скажется на производительности такое решение? В игре может быть одновременно и 100 таких декалей, и 1000...
Magnitofon
UNIт
 
Сообщения: 63
Зарегистрирован: 10 сен 2013, 16:50

Re: Шейдер прозрачных дырок (дырки от пуль!)

Сообщение Woolf 04 янв 2016, 18:44

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

Re: Шейдер прозрачных дырок (дырки от пуль!)

Сообщение alexanya11 05 янв 2016, 03:19

Woolf писал(а):Так что, не ломайте себе моск, пишите игру без дырок. Тем более, что на геймплей они не влияют.

+, если только это не игра, где нужно за девушками в раздевалке подглядывать.

Хоть сегодня напишу пару шейдеров с комментариями, но тк я больше дружу с glsl, нежели hlsl/cg, ничего особо не обещаю. Да и ненавидеть порядком буду себя да это)
И да, думаю, что пр. 20-30 уже будет тормозить (как вариант - играть с лайфтаймом).
alexanya11
UNIт
 
Сообщения: 64
Зарегистрирован: 24 июн 2013, 22:14

Re: Шейдер прозрачных дырок (дырки от пуль!)

Сообщение bojlahg 05 янв 2016, 10:55

Woolf писал(а):А вы не задавались вопросом, почему ни в одном ААА шутере нет такого? Думаете, просто так? А я объясню - потому, что делать правильно - это никаких ресурсов не хватит, а делать фейково, через кутаут - будет выглядеть криво и коряво. Так что, не ломайте себе моск, пишите игру без дырок. Тем более, что на геймплей они не влияют.

Есть такое в Rainbow six siege
Мои проекты: MahJah Star Factory Cop Car Swash! Spline Editor
Аватара пользователя
bojlahg
UNIверсал
 
Сообщения: 392
Зарегистрирован: 13 авг 2011, 10:57
Откуда: Сатка
Skype: bojlahg
  • Сайт

Re: Шейдер прозрачных дырок (дырки от пуль!)

Сообщение IDoNotExist 05 янв 2016, 14:10

Magnitofon писал(а):
IDoNotExist писал(а):Можно сделать с помощью булевых операций как вариант https://www.assetstore.unity3d.com/en/#!/content/18544

Вряд ли- слишком накладно по производительности.

Это зависит от кривизны ваших рук.

В left 4 dead ранения зомби сделаны именно так. В Cry Engine так же сделано простреливание веток деревьев.
http://habrahabr.ru/post/256771/
Аватара пользователя
IDoNotExist
Адепт
 
Сообщения: 1432
Зарегистрирован: 23 мар 2011, 09:18
Skype: iamnoexist

Re: Шейдер прозрачных дырок (дырки от пуль!)

Сообщение waruiyume 06 янв 2016, 02:01

Это зависит от кривизны ваших рук.

Чтобы из варианта с изменением меша со стора, прейти к отбрасыванию точек в фрагментном шейдере, как в L4D, руки нужны примерно такие, как в том анекдоте, где из деталей холодильника, всё время собирался Автомат Калашникова
[curved_hands]
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Шейдер прозрачных дырок (дырки от пуль!)

Сообщение IDoNotExist 07 янв 2016, 09:56

waruiyume писал(а):
Это зависит от кривизны ваших рук.

Чтобы из варианта с изменением меша со стора, прейти к отбрасыванию точек в фрагментном шейдере, как в L4D, руки нужны примерно такие, как в то анекдоте, где из деталей холодильника, всё время собирался Автомат Калашникова
[curved_hands]

Речь идет не об инструменте со стора, а о методе.
Аватара пользователя
IDoNotExist
Адепт
 
Сообщения: 1432
Зарегистрирован: 23 мар 2011, 09:18
Skype: iamnoexist

Re: Шейдер прозрачных дырок (дырки от пуль!)

Сообщение MANMANA 14 янв 2016, 03:45

Magnitofon писал(а):
IDoNotExist писал(а):Кстати, кто-нибудь может сказать, на сколько скажется на производительности такое решение? В игре может быть одновременно и 100 таких декалей, и 1000...


alexanya11 писал(а):+, если только это не игра, где нужно за девушками в раздевалке подглядывать.

VIP пипшоу какое-то...
косоглазия не избежать. пардон за оффтоп - не удержался
_3dbuffer.com
MANMANA
UNIверсал
 
Сообщения: 475
Зарегистрирован: 31 июл 2014, 10:32
Откуда: Moscow
  • Сайт


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

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

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