Как стать автором
Обновить

Процедурный панельный дом Тип П-47-12 в Blender

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров2.8K

Всем привет!

Продолжаем изучать работу с Geometry Nodes. На этот раз один из самых не простых панельных домов, т.к. с этажи с 1 по 6 идут уникальными друг от друга, а дальше повторяются 3 этажа (4, 5 и 6), не так, как в предыдущем, где были 1 этаж, крыша и чётные и не чётные этажи, которые шли с рандомом. В данном доме идти этажи так же будут с рандомом, кроме 1 и крыши.

Как дом выглядит в SketchUp
Как дом выглядит в SketchUp

Начнём

 Будем делать по предыдущему Ноду, поэтому первым делам скопируем его, нажав на кнопку в верхней панели окна Geometry Nods на Copy Geometry Nods Group, после к имени Нода добавятся «.001», его можно переименовать на нужный. Далее выделяем с зажатым Shift следующие ноды: Index, Compare (Not Equal), Separate Geometry, и в правой части: Random Value, Collection Info (Нод с коллекцией нишей модели) и Instance on Point.

Нажимаем Shift+D, чтобы создать дубликат и ставим их в стороне, после из Нода Separate Geometry соединяем ячейку Selection с ячейкой Points Нода Instance on Point, а из Random Value ячейку Value c Instance Index. Далее опять выделяем их все вместе и нажимаем Ctrl+G или через ПКМ:

Слева будет Group Input от которой нужно протянуть связь к ячейке Geometry у Separate Geometry, а справа от Instance on Point из ячейки Instances к Group Output:

И далее, в Collection Info выбираем коллекцию с нашими моделями, после чего их выделяем и создаём дубликаты ещё 4 дубликата с помощью Shift+D. В Ноде Collection Info выбираем поочерёдно коллекции с нашими моделями. После последовательно соединяем из Separate Geometry ячейку Inverted с следующим Separate Geometry ячейкой Geometry.

И главное, не забыть соединить ячейку Inverted Separate Geometry с Group Output:

Далее соединяем 5 верхних ячеек с Нодой Join Geometry, а нижнюю с ячейкой Geometry Separate Geometry:

Далее идут последовательность из 3 этажа, которые повторяются, по мере роста «этажности» дома. Тут тоже пришлось повозиться, т.к. в предыдущем посте я упомнил, что мои познания в программировании на уровне формул Excel. В отличии от предыдущего, где была последовательность из чётных и не чётных этажей, здесь идёт последовательность из 3. Методом проб и ошибок, был добавлен Нод Math Subtract (вычитание) и значением 1 от Нода Math Floored Modulo со значением 3. А разность между этажами делается левым Нодом Math Subtract где значения идут от 0 до 2:

В общем, вот такой дом получается, и генерация работает между этажами:

Разные этажи, с другим зерном генерации
Разные этажи, с другим зерном генерации

После чего я захотел добавить «живости» дому и с внутренней стороны этажа добавил параллакс карту с интерьером взятую отсюда. Сам я тоже пытался её делать, но все гайды шли на старую версию Blender из-за чего их не получилось реализовать (в дальнейшем хочу научиться делать их):

Вообще хотелось бы ещё научиться делать интерьеры, с помощью 3d print method, которые реализовали в техно-демо The Matrix Avengers, и показан способ реализации ролике (начинается с 39:45), там используются 2 карты глубины, но пока что я с этим не смог реализовать и пример, с их реализацией, не нашёл:

Метод 3d print
Метод 3d print

В общем, вот такой вод дом у меня получился:

Далее хочу с помощью Нодов делать много подъездные дома, т.к. данный тип дома идёт ещё с подъездом в 90 градусов и под 45, и при этом подъезды могут идти как внутрь, так и наружу:

Модель дома в SkethUp
Модель дома в SkethUp

Итого

Пока что сложно сказать как будет удобнее, попытаться реализовать многоподъездный дом или несколько Нодов с отдельными, уникальными подъездами (в донном случае их 4 будет). И вот сама модель дома (в месте с предыдущем).

Теги:
Хабы:
Всего голосов 7: ↑7 и ↓0+9
Комментарии8

Публикации

Истории

Ближайшие события

12 – 13 июля
Геймтон DatsDefense
Онлайн
19 сентября
CDI Conf 2024
Москва