мне во все из них нужно:
1. Добавить одну ноду, запихнуть результат ее выполнения в Opacity Mask
2. Выставить Blending Mode в Masked.
Вопрос: как это сделать быстро и безболезненно?
Material Functions?
Ну это ведь просто функция. Проблема в том, что нужно каждый материал открывать и изменять, руками. Может есть способ автоматизировать это
примитивный вариант — записать макрос тип macro recorder который это будет делать за тебя протестить его и запустить с циклом повторения 400 раз чтобы по закрытии окна нажимал в контент браузере ➡️ и открывал новый материал
ОЇОХОХХОХООХ, жоско Возьму на вооружение
Изначальная проблема которую решал: Сделать плоскость, которая разрезает пространство на две части: - всё, что под плоскостью — не видно - всё, что над плоскостью — видно К примеру, если у нас есть карта с высокими зданиями, то мы ставим эту плоскость параллельно земле и таким образом срезаем часть зданий, как лезвием. Важно, чтобы меш именно разрезался и было видно его часть, а не чтобы он весь полностью пропадал при соприкосновении с плоскостью. Плоскость имеет бесконечные размеры
Я бы через пиксель депф оффсет делал. Как минимум это уберет лишний шаг перевода материала в маскед и засейвит производительности
но ведь pixel depth offset привязан к камере если я ничего не путаю. А тут нужно, чтобы всё определяла плоскость, которую мы разместим на уровне, а не то, куда мы смотрим
ну там не совсем так его просто юзаешь - все тож самое шо и маскедом скрываешь, тока не скрываешь а смещаешь далеко. от камеры получается практически не зависит, выглядит как маскед, а стоит как опак.
Посмотрел примеры в ContentExamples — какая-то лютая лють. Где хоть можно доходчиво про всю эту штуку посмотреть?
Правда там та же проблема — чтобы объект мог быть срезанным, он должен иметь соотв. материал
на ютубе че-нить типа pixel depth offset disolve
Может есть у кого идеи как еще это можно сделать. Желательно, чтобы не модифицировать все существующие материалы
Решил добавить такие строчки в BasePassPixelShader. В итоге оно работает только если в эдиторе в настройках конкретного материала выставить AlphaComposite (Premultiplied Alpha). Иначе -- ничего. Пробовал разные комбинации, пробовал даже просто выставлять цвет в 0 -- никакой разницы. При этом добавленный мною код ни под каким дефайном не находится (: Также для теста пробовал возвращать 0 из DiscardMaterialWithPixelCoverage -- тоже никакого эффекта. Почему так?
ну можно вместо этого сделать clip(SvPositionToWorld(In.SvPosition)) но рисковано. Попытки поменять альфу и Coverage по идее особо ни к чему не приведут кроме транслюцент материалов, поскольку альфа дальше едет в OM с блендингом, которого для opaque мешей нет
Как мне тогда зафорсить прозрачность некоторых пикселей?
Обсуждают сегодня