Stencil buffer в unity за 5 минут. Как сделать маску в 3Д?

  Рет қаралды 10,263

Максим Крюков

Максим Крюков

3 жыл бұрын

В этом видео мы рассмотрим stencil buffer и как с его помощью сделать маску. Узнаем как в поверхностном шейдере использовать несколько проходов и как менять свойства материала в определенной области.
Ресурсы с ассет стора - assetstore.unity.com/packages...
assetstore.unity.com/packages...
#unity #stencil #геймдев

Пікірлер: 46
@paviga1590
@paviga1590 3 жыл бұрын
Такие каналы на вес золота. Жаль их очень тяжело найти. Спасибо!
@gaitavr1992
@gaitavr1992 3 жыл бұрын
Если есть знакомые, которым интересно - приглашайте)
@MrArtrynk
@MrArtrynk 3 жыл бұрын
монументально полезная информация. ТУт ни прибавить ни убавить.Причем доступно.
@user-hn1bw2xp6m
@user-hn1bw2xp6m 2 жыл бұрын
С шейдерами ещё не работал, но после таких видео прям вдохновение ловишь, спасибо
@govdamikhaylo4183
@govdamikhaylo4183 3 жыл бұрын
Большущее спасибо очень долго это искал)
@vsevolodmetelsky1275
@vsevolodmetelsky1275 3 жыл бұрын
Отличное видео, спасибо.
@SilverEchoDreamer
@SilverEchoDreamer 2 жыл бұрын
Огромное тебе спасибо, нереально выручил.
@Bald_Panther
@Bald_Panther 2 жыл бұрын
очень полезная информация. спс
@KarinaFPV
@KarinaFPV Жыл бұрын
Спс! То что надо!
@daemonstergames716
@daemonstergames716 Жыл бұрын
Два дня искал это, искал как сделать стены невидимым при перекрытии игрока как в Диабло, и надумал что надо воспользоваться шейдеров и маской, но точного нигде не нашёл а тут решил интуитивно глянуть, может будет то что ищу и ура, спасибо тебе большое за видос. Мир во всём мире.
@antonbaidzionak8282
@antonbaidzionak8282 2 жыл бұрын
Спасибо за урок. Очень помогло. Делал через Амплифай, но там тоже всё это настраивается и тоже работает.
@nokia_n-gage
@nokia_n-gage 2 жыл бұрын
Круто!
@evgeniy4472
@evgeniy4472 2 жыл бұрын
Ваши уроки просто прекрасны! Можете посоветовать какую-нибудь документацию по описанию функций?
@unityalexdev
@unityalexdev 2 жыл бұрын
Спасибо,мне помогло! Как думаешь это можно как-то с URP соеденить?
@noob681
@noob681 2 жыл бұрын
Отличное видео. В примере на 3:00 можно как-то узнать и задать текстуру месту соприкосновения двух объектов? В результате хочу получить "фейковое" вычитание одной фигуры из другой. Или это можно как-то проще реализовать? Интересует именно видимость, без изменение геометрии.
@g.radovilskiy
@g.radovilskiy 3 жыл бұрын
Спасибо огромное! Есть у меня один ассет в котором таким или подобным образом некоторые объекты сцены отображаются, но так как в шейдерах я ничего не понимаю, никак не мог разобраться. Надо только проверить теперь так же ли в моем ассете эта задача решена.
@gaitavr1992
@gaitavr1992 3 жыл бұрын
Григорий Радовильский напишите потом про результат) или ссылку на ассет скиньте
@slavalopalo128
@slavalopalo128 3 жыл бұрын
Лучше не использовать альфа смешивание, если нужно только записать в стенсил буфер. И для этого не обязательно писать шейдер Так красивше будет: Pass { ColorMask 0 ZWrite Off Stencil { Ref 1 Comp always Pass replace } }
@gaitavr1992
@gaitavr1992 3 жыл бұрын
Slava Lopalo давно тебя не видно было)
@DeepBunnyHole
@DeepBunnyHole 2 жыл бұрын
Как сделать подобное в HDRP проекте на объектах HDRPLit?
@ivanfilatov5482
@ivanfilatov5482 2 жыл бұрын
А как отрендерить текстуру маски в одном объекте/шейдере, и считать её в другом шейдере(постпроцесс) Например на асфальте следы от колес, а постпроцессом снег накладывается и там где машины ездили нужно меньше снега. Не четко 0 или 1 а плавно 0,1 - 0,75 чтобы тоже было
@itsmakar2412
@itsmakar2412 10 ай бұрын
Кто нибудь может объяснить можно ли сделать чтобы тест срабатывал только с одной стороны объекта?
@tarasklymenko5211
@tarasklymenko5211 3 жыл бұрын
Недавно хотел сделать Маску для UI , Invert/Reverse Mask, потому что стандартная маска работает только на reverse, подойдет ли этот шейдер под UI?
@gaitavr1992
@gaitavr1992 3 жыл бұрын
Юайный шейдер будет сложнее, лучше прочекать сорсы юнити, они на битбакете лежат. Я еще не выпускал роликов по юаю, думаю попозже это сделать
@onlymediator3492
@onlymediator3492 3 жыл бұрын
Как я понял можно так проверить что один объект полностью перекрыт другим. И передать информацию в скрипт или получить из шэйдора скриптом?
@gaitavr1992
@gaitavr1992 3 жыл бұрын
Так это врядли будет работать
@AlexStraga
@AlexStraga 3 жыл бұрын
Хм. Я правильно понимаю что можно делать "дырки" в стене просвечивающие в месте пересечения? Если да, то нечто такое мне и нужно) Правда остается проблема как дорисовать в стене стенки в месте нового "окна")
@gaitavr1992
@gaitavr1992 3 жыл бұрын
Если я правильно понял вопрос - то можно создать 3д объект дыры(шар или куб), навесить на него шейдер, пишущий в стенсил буффер, а стена будет считывать из стенсил буффера
@AlexStraga
@AlexStraga 3 жыл бұрын
@@gaitavr1992 идея такая. Пушка стреляет в стену шаром который создает этакое окно в стене. Но по идее кроме дыры нужно еще визуализировать кусок стены внутри. Или же сделать другой шар с текстурой внутрь и этот же стенсил при пересечении визуализирует это?
@gaitavr1992
@gaitavr1992 3 жыл бұрын
Нужно попробовать, при коллизии со стеной там создается обьект, пишущий в маску. Стена считывает и не рендерит себя в тех пикселях. Но если смотреть сбоку то будет забавный эффект, попробуйте и отпишите о результатах
@AlexStraga
@AlexStraga 3 жыл бұрын
@@gaitavr1992 Пока чуть другие дела, но эту идею давно хотел попробовать реализовать, так что как сделаю напишу ) + в шейдерах я еще нубоват немного
@AlexStraga
@AlexStraga 3 жыл бұрын
@@gaitavr1992 Вот че нашел по этой теме кстати. Прям что надо. Осталось понять как это работает ) В 19 версии у меня чет нет текстур, а в 18.20 норм все. github.com/hecomi/UnityScreenSpaceBoolean
@IamVFXguy
@IamVFXguy Ай бұрын
hdrp?
@Sv9zlsT
@Sv9zlsT 3 жыл бұрын
Супер полезная инфа! что то я смотрю у тебя райдер синтаксис как то лучше подсвечивает шейдеров чем у меня, и интеллисинс в шейдере как будто не работает((( плагин какой то или как)?
@gaitavr1992
@gaitavr1992 3 жыл бұрын
Нет плагина, только лицензия райдера
@Sv9zlsT
@Sv9zlsT 3 жыл бұрын
@@gaitavr1992 ах так вон оно как... я то думаю чего у меня в палёном райдере нету подсветки шейдер синтаксиса... хотя справедливости ради отмечу, что у меня их 30 дневный триал, и вот после таких приколов перед его покупкой и думаешь а работает ли оно в платной версии, но судя по твоему ответу, работает) вот и нашли отличие триальной от платной версий
@unitynavigator3328
@unitynavigator3328 3 жыл бұрын
А могли бы вы показать маленький пример реализации паттерна ecs (не фреймворка или встроенного в юнити, а как это на с# можно сделать... Прям совсем малюсенький - чтобы просто перемещение реализовать... Недавно интересуюсь программированием и не могу понять как там под капотом устроено определение сущностей по компонентам)
@gaitavr1992
@gaitavr1992 3 жыл бұрын
Если вы разрабатываете на юнити, то лучше ECS там же изучать. И если программируете недавно, то возможно имеет смысл проработать обычный ООП подход, чтобы понимать зачем нужен ECS)
@MrArtrynk
@MrArtrynk 3 жыл бұрын
так вагон же в йотубе инфы по ECS в DOTS? или там не то чтото??
@unitynavigator3328
@unitynavigator3328 3 жыл бұрын
@@gaitavr1992 Я понимаю зачем, не понимаю как. И чтобы разобраться интересуюсь примером на С#
@gaitavr1992
@gaitavr1992 3 жыл бұрын
@@unitynavigator3328 В юнити будет пример на шарпе, в общем я как-нибудь тоже до этого доберусь. Когда я использовал эту систему в юнити, фича выглядела довольно сырой
@unitynavigator3328
@unitynavigator3328 3 жыл бұрын
@@MrArtrynk Мне не попадался пример чтобы человек сел и написал с нуля сущность, компонент, систему и продемонстрировал как это работает (на C#, на русском, без всяких фреймворков и встроенного в юнити функционала)
@DmitryTimofeev_general
@DmitryTimofeev_general 3 жыл бұрын
В кнопки UI модельки вписывали. Красатулички всякие.
Как сделать sprite outline в Unity3D
6:25
Максим Крюков
Рет қаралды 9 М.
Playing hide and seek with my dog 🐶
00:25
Zach King
Рет қаралды 31 МЛН
Does size matter? BEACH EDITION
00:32
Mini Katana
Рет қаралды 20 МЛН
ЧУТЬ НЕ УТОНУЛ #shorts
00:27
Паша Осадчий
Рет қаралды 8 МЛН
Разработка мобильной дрифт игры в Unity | Часть 12 - Переход между сценами
17:00
Rodar - игровая студия и школа программирования
Рет қаралды 215
Unity Shader Graph Basics (Part 4 - The Depth Buffer)
8:36
Daniel Ilett
Рет қаралды 12 М.
Процедурная генерация меша в юнити. Часть 1
7:22
Максим Крюков
Рет қаралды 16 М.
Impossible Geometry with Stencil Shaders in Unity URP
7:02
Daniel Ilett
Рет қаралды 46 М.
Паттерн наблюдатель в unity3D
6:56
Максим Крюков
Рет қаралды 25 М.
Битовые маски в Unity
9:48
Leksay's Development
Рет қаралды 1,6 М.