04_Соединение объектов в Сверчке.

И снова, внимание! Эти операции можно сделать уже при помощи нескольких новых узлов, Join mesh в модификаторах, и ещё почистить с Delete Loose. И зачем вам это надо? Но потому что следует знать принципы работы сверчка, описание этого процесса может оказаться полезным.

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

Вначале мы имеем три объекта, которые как-то двигали, вращали, масштабировали.

Затем для глаз применяем Vector on Matrix чтобы применить вращение, положение, аналогично ctrl+A. Соединяем модифицированные вершины и вершины головы List Join на втором уровне (jion level lists) - на уровне вершин. И сразу всовываем в выходной сокет. Настоящую геометрию лучше спрятать на всякий случай.

Но получаем только вершины. Для получения полигонов надо сделать ещё пару узлов. Мы соединим списки полигонов через ListJoin также на втором уровне, уровне полигонов, но этого мало, потому что все три объекта индексировали свои вершины с нулевой, то есть у нас будет накладка, и мы не соединим наши глаза полигонами.

Мы должны достать узел ListLength для определения длины списка вершин чтобы на основании этой длины считать индексы глаз, просто прибавляя этот индекс к индексам глаз. Но для определения индексов второго глаза нам нужно прибавить уже две длины списков, первого глаза и головы. В формуле это выглядит как x+n[0] для левого глаза и x+n[0]+n[1] для правого, где n - это входные значения длинн списков. К сожалению, мы вынуждены подкорректировать данные от длины списка, потому что они находятся не на том уровне, мы их опустим на уровень ниже, при помощи узла ListJoin, уровня 2 в галочкой wrap, которая как бы обернёт наши данные ещё в один уровень, подобно большей матрёшке.

Можно поэкспериментировать в соединении разных списков в разном порядке, посмотреть в каком случае выдаёт ошибку (появятся артефакты в 3Д окне, которые легко убераются, когда войдут адекватные данные).

Когда мы соединим всё в надлежащем порядке, то и цветовое решение в 3Д окне изменится, жёлтый соответствует более ранним полигонам, в начале списка, а синие полигоны - в конце списка полигонов, так мы соединяя в разном порядке эти полигоны можем менять их цвет. Ниже представлен правильный вариант соединения. Но рекомендую на досуге поэкспериментировать со значениями в формулах, в уровнях данных (в узлах соединения списков list join), с тем, что будет если не применять Vector on Matrix, а соединять без учёта матрицы. Готовую сцену с раскладкой можно скачать здесь.

Ещё один вариант - сначала уменьшить количество уровней, затем увеличить, обернув вторым узлом. Хотя то же самое можно сделать узлом объединения если соединять второй уровень, как показано в уроке.

Да пребудет с вами сила Сверчка.

  • Development!
  • Development!!
  • Development!!!
  • /Steven Anthony Ballmer/
  • Архитектор, дизайнер и Человек...
  • Все права защищены (с)
    • Земля
    • 2013 г.