Помогите придумать механизм динамического обрезания детали

02 сентября 2016 11:10
Привет! Ю-ху-ху! Настроение сегодня просто класс!

Такая вот возникла задача. Нужно обрезать деталь в загруженной сцене при помощи API.

Пример: Допустим у нас есть лестница длинной 10м и её нужно обрезать до 3м метров, при этом просто изменить scale нельзя, так как требуется сохранить пропорции объекта и его геометрию. Вот нужно придумать как это реализовать…

У меня есть идея, что можно лестницу поделить на маленькие секции и для получения нужной длинны копировать эти секции с привязкой к родительскому 3д-объекту. Правда не представляю на сколько это будет быстрый и удобный процесс…

Может у вас будут какие-нибудь идеи?
02 сентября 2016 11:15
А не получится это решить, просто уведя кусок лестницы в прозрачность?


например как-то так
02 сентября 2016 12:49
Павел, это то, что нужно! Можете рассказать о принципе работы такого механизма? Надо в какую-то ноду воткнуть ноду-value и через неё скрывать или отображать лестницу?
02 сентября 2016 14:27
В указанном примере это работает по глобальной маске, но можно использовать любые подходящие вектора: UV, Orco и тд.

Вот примеры других векторов) Прoсто делаете прозрачность Alpha Clip и подаете анимированную маску во вход Alpha.

Вектора можно разбивать на каналы - и каналы использовать как маску. Я точно не скажу, как работает каждое наложение, я просто эксперементирую)

Для UV я создал отдельную UV развертку - строго сбоку, Project from View.

Для орко просто взял синий канал)

Канал вектора как бы создает градиент от минуса к плюсу, размазывая его по поверхности. Я его зажимаю Multiply нодой и потом просто "езжу" по градиенту, плавно вычитая/добавляя какое-то зрначение

mask.html

mask.blend
 
Пожалуйста, зарегистрируйтесь или войдите под своей учетной записью , чтобы оставлять сообщения.