Обрезание спрайта по маске

Посты сомнительного качества на тему шейдеров (для истории)

Обрезание спрайта по маске

Сообщение RussianMan 04 ноя 2014, 06:39

Добрый день. Нужно сделать, что-то вроде такого:

Изображение

Красный пунктир - это продолжение красного прямоугольника. Т.е. есть красный прямоугольник и он должен отображаться только в этом чёрном прямоугольнике. А все части красного, которые находятся за пределами чёрного не должны отображаться (совсем). Сколько ни гуглил результат один - шейдеры, причём без каких либо подробностей и объяснений. Хотелось бы это реализовать без шейдеров. Собственно вопрос очевиден - как это реализовать? Чуть не забыл: будет несколько красных прямоугольников, а ещё в чёрном прямоугольнике будут несколько объектов (кроме красного прям.), и на них обрезание не должно влиять.
RussianMan
UNец
 
Сообщения: 42
Зарегистрирован: 17 авг 2013, 09:16

Re: Обрезание спрайта по маске

Сообщение DbIMok 04 ноя 2014, 06:49

Если не шейдерами, то несколькими камерами можно попробовать. Но имхо проще с шейдерами разобраться.
правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.6k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05

Re: Обрезание спрайта по маске

Сообщение Salamandr 04 ноя 2014, 11:33

прямоугольники из чего состоят? или чем они являться будут?
шейдер единственная вещь, быстрее которого, просто не существует выполняемого кода (так как выполняется он на стороне видео карты)
возможно всё, вопрос лишь в том, есть ли у тебя на это время
группа вк: _ttp://vk.com/sector5661
Аватара пользователя
Salamandr
UNITрон
 
Сообщения: 228
Зарегистрирован: 30 июл 2014, 13:04
Откуда: Астрахань, Каменск-Уральский
Skype: zzzubec
  • ICQ

Re: Обрезание спрайта по маске

Сообщение RussianMan 15 ноя 2014, 11:11

Вообщем, последние несколько дней пытался разобраться с шейдерами и найти решение. Больше всего подходит это (второй ответ). Но, как не пытался, так и не смог заставить написанные там скрипт и шейдер работать. Может у кого есть идеи?

Salamandr писал(а):прямоугольники из чего состоят? или чем они являться будут?
шейдер единственная вещь, быстрее которого, просто не существует выполняемого кода (так как выполняется он на стороне видео карты)

Прямоугольники - обычные спрайты. Вопрос о быстроте не стоит. Пока что мне главное хоть, как-то добиться желаемого результата.

DbIMok писал(а):Если не шейдерами, то несколькими камерами можно попробовать. Но имхо проще с шейдерами разобраться.

Можно подробнее про 2 камеры?
RussianMan
UNец
 
Сообщения: 42
Зарегистрирован: 17 авг 2013, 09:16

Re: Обрезание спрайта по маске

Сообщение DbIMok 15 ноя 2014, 22:44

Изображение
шейдеры http://docs.unity3d.com/Manual/SL-Stencil.html
по Z у всех 0

TestMask.zip
У вас нет доступа для просмотра вложений в этом сообщении.
правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.6k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05

Re: Обрезание спрайта по маске

Сообщение unregistered 16 ноя 2014, 06:46

а если просто слои? если это 2d. вокруг черного прямоугольника фон. быстрее чем шейдер?
unregistered
UNIт
 
Сообщения: 104
Зарегистрирован: 23 июн 2014, 20:01

Re: Обрезание спрайта по маске

Сообщение RussianMan 16 ноя 2014, 12:02

unregistered писал(а):а если просто слои? если это 2d. вокруг черного прямоугольника фон. быстрее чем шейдер?

Быстрее, но в моём случае это не подходит, т.к. чёрных прямоугольников будет несколько и они будут перемещаться. Т.е. фон должен быть по всему экрану, а тогда уже не работает.

DbIMok, спасибо (3A4OT)
RussianMan
UNец
 
Сообщения: 42
Зарегистрирован: 17 авг 2013, 09:16


Вернуться в Шейдер-флуд

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

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