Помогите придумать механизм динамического обрезания детали
02 сентября 2016 11:10
Привет! Ю-ху-ху! Настроение сегодня просто класс!
Такая вот возникла задача. Нужно обрезать деталь в загруженной сцене при помощи API.
Пример: Допустим у нас есть лестница длинной 10м и её нужно обрезать до 3м метров, при этом просто изменить scale нельзя, так как требуется сохранить пропорции объекта и его геометрию. Вот нужно придумать как это реализовать…
У меня есть идея, что можно лестницу поделить на маленькие секции и для получения нужной длинны копировать эти секции с привязкой к родительскому 3д-объекту. Правда не представляю на сколько это будет быстрый и удобный процесс…
Может у вас будут какие-нибудь идеи?
Такая вот возникла задача. Нужно обрезать деталь в загруженной сцене при помощи API.
Пример: Допустим у нас есть лестница длинной 10м и её нужно обрезать до 3м метров, при этом просто изменить scale нельзя, так как требуется сохранить пропорции объекта и его геометрию. Вот нужно придумать как это реализовать…
У меня есть идея, что можно лестницу поделить на маленькие секции и для получения нужной длинны копировать эти секции с привязкой к родительскому 3д-объекту. Правда не представляю на сколько это будет быстрый и удобный процесс…
Может у вас будут какие-нибудь идеи?
02 сентября 2016 11:15
02 сентября 2016 12:49
02 сентября 2016 14:27
В указанном примере это работает по глобальной маске, но можно использовать любые подходящие вектора: UV, Orco и тд.
Вот примеры других векторов) Прoсто делаете прозрачность Alpha Clip и подаете анимированную маску во вход Alpha.
Вектора можно разбивать на каналы - и каналы использовать как маску. Я точно не скажу, как работает каждое наложение, я просто эксперементирую)
Для UV я создал отдельную UV развертку - строго сбоку, Project from View.
Для орко просто взял синий канал)
Канал вектора как бы создает градиент от минуса к плюсу, размазывая его по поверхности. Я его зажимаю Multiply нодой и потом просто "езжу" по градиенту, плавно вычитая/добавляя какое-то зрначение
mask.html
mask.blend
Вот примеры других векторов) Прoсто делаете прозрачность Alpha Clip и подаете анимированную маску во вход Alpha.
Вектора можно разбивать на каналы - и каналы использовать как маску. Я точно не скажу, как работает каждое наложение, я просто эксперементирую)
Для UV я создал отдельную UV развертку - строго сбоку, Project from View.
Для орко просто взял синий канал)
Канал вектора как бы создает градиент от минуса к плюсу, размазывая его по поверхности. Я его зажимаю Multiply нодой и потом просто "езжу" по градиенту, плавно вычитая/добавляя какое-то зрначение
mask.html
mask.blend