Страница 1 из 1

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

СообщениеДобавлено: 04 ноя 2014, 06:39
RussianMan
Добрый день. Нужно сделать, что-то вроде такого:

Изображение

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

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

СообщениеДобавлено: 04 ноя 2014, 06:49
DbIMok
Если не шейдерами, то несколькими камерами можно попробовать. Но имхо проще с шейдерами разобраться.

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

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

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

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

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

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

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

Можно подробнее про 2 камеры?

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

СообщениеДобавлено: 15 ноя 2014, 22:44
DbIMok
Изображение
шейдеры http://docs.unity3d.com/Manual/SL-Stencil.html
по Z у всех 0

TestMask.zip

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

СообщениеДобавлено: 16 ноя 2014, 06:46
unregistered
а если просто слои? если это 2d. вокруг черного прямоугольника фон. быстрее чем шейдер?

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

СообщениеДобавлено: 16 ноя 2014, 12:02
RussianMan
unregistered писал(а):а если просто слои? если это 2d. вокруг черного прямоугольника фон. быстрее чем шейдер?

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

DbIMok, спасибо (3A4OT)