Всем привет!
Продолжаем изучать работу с Geometry Nodes. На этот раз один из самых не простых панельных домов, т.к. с этажи с 1 по 6 идут уникальными друг от друга, а дальше повторяются 3 этажа (4, 5 и 6), не так, как в предыдущем, где были 1 этаж, крыша и чётные и не чётные этажи, которые шли с рандомом. В данном доме идти этажи так же будут с рандомом, кроме 1 и крыши.
![Как дом выглядит в SketchUp Как дом выглядит в SketchUp](https://habrastorage.org/getpro/habr/upload_files/789/24b/0f6/78924b0f6b9885b4c58348a804630d08.png)
Начнём
Будем делать по предыдущему Ноду, поэтому первым делам скопируем его, нажав на кнопку в верхней панели окна Geometry Nods на Copy Geometry Nods Group, после к имени Нода добавятся «.001», его можно переименовать на нужный. Далее выделяем с зажатым Shift следующие ноды: Index, Compare (Not Equal), Separate Geometry, и в правой части: Random Value, Collection Info (Нод с коллекцией нишей модели) и Instance on Point.
![](https://habrastorage.org/getpro/habr/upload_files/8ac/dc0/db4/8acdc0db47bf73993339a2cadf9296a7.png)
Нажимаем Shift+D, чтобы создать дубликат и ставим их в стороне, после из Нода Separate Geometry соединяем ячейку Selection с ячейкой Points Нода Instance on Point, а из Random Value ячейку Value c Instance Index. Далее опять выделяем их все вместе и нажимаем Ctrl+G или через ПКМ:
![](https://habrastorage.org/getpro/habr/upload_files/a1b/2ff/a3f/a1b2ffa3f032e59fb03b8787211aa4a5.png)
Слева будет Group Input от которой нужно протянуть связь к ячейке Geometry у Separate Geometry, а справа от Instance on Point из ячейки Instances к Group Output:
![](https://habrastorage.org/getpro/habr/upload_files/726/dd7/481/726dd7481d0b96af8477b1f1d523c0e1.png)
И далее, в Collection Info выбираем коллекцию с нашими моделями, после чего их выделяем и создаём дубликаты ещё 4 дубликата с помощью Shift+D. В Ноде Collection Info выбираем поочерёдно коллекции с нашими моделями. После последовательно соединяем из Separate Geometry ячейку Inverted с следующим Separate Geometry ячейкой Geometry.
![](https://habrastorage.org/getpro/habr/upload_files/a39/4e4/e11/a394e4e1153730b3244470638dc0628e.png)
И главное, не забыть соединить ячейку Inverted Separate Geometry с Group Output:
![](https://habrastorage.org/getpro/habr/upload_files/9bb/2a8/af8/9bb2a8af8d511196936a8e1359cd1465.png)
Далее соединяем 5 верхних ячеек с Нодой Join Geometry, а нижнюю с ячейкой Geometry Separate Geometry:
![](https://habrastorage.org/getpro/habr/upload_files/e56/ab9/032/e56ab90325f7bae386056c9ac7b2a464.png)
Далее идут последовательность из 3 этажа, которые повторяются, по мере роста «этажности» дома. Тут тоже пришлось повозиться, т.к. в предыдущем посте я упомнил, что мои познания в программировании на уровне формул Excel. В отличии от предыдущего, где была последовательность из чётных и не чётных этажей, здесь идёт последовательность из 3. Методом проб и ошибок, был добавлен Нод Math Subtract (вычитание) и значением 1 от Нода Math Floored Modulo со значением 3. А разность между этажами делается левым Нодом Math Subtract где значения идут от 0 до 2:
![](https://habrastorage.org/getpro/habr/upload_files/749/5ed/224/7495ed224571564d293fcac6bd184767.png)
![](https://habrastorage.org/getpro/habr/upload_files/9fe/2c1/79f/9fe2c179fb4138df98d15b36ab3f05fe.png)
В общем, вот такой дом получается, и генерация работает между этажами:
![](https://habrastorage.org/getpro/habr/upload_files/78d/6e3/6f2/78d6e36f24b96cd7ea67d36f6e0cd3e6.png)
![Разные этажи, с другим зерном генерации Разные этажи, с другим зерном генерации](https://habrastorage.org/getpro/habr/upload_files/bfa/295/b93/bfa295b93921f6a6693d1eb937d18ef3.png)
После чего я захотел добавить «живости» дому и с внутренней стороны этажа добавил параллакс карту с интерьером взятую отсюда. Сам я тоже пытался её делать, но все гайды шли на старую версию Blender из-за чего их не получилось реализовать (в дальнейшем хочу научиться делать их):
![](https://habrastorage.org/getpro/habr/upload_files/b35/235/886/b35235886fc9dfb59c2b4967c9b70468.png)
Вообще хотелось бы ещё научиться делать интерьеры, с помощью 3d print method, которые реализовали в техно-демо The Matrix Avengers, и показан способ реализации ролике (начинается с 39:45), там используются 2 карты глубины, но пока что я с этим не смог реализовать и пример, с их реализацией, не нашёл:
![Метод 3d print Метод 3d print](https://habrastorage.org/getpro/habr/upload_files/e85/bc3/ef7/e85bc3ef724d69a0049557d3b0485870.png)
В общем, вот такой вод дом у меня получился:
![](https://habrastorage.org/getpro/habr/upload_files/886/524/8c5/8865248c51c7ca8a3a0dbf52e7a90944.png)
Далее хочу с помощью Нодов делать много подъездные дома, т.к. данный тип дома идёт ещё с подъездом в 90 градусов и под 45, и при этом подъезды могут идти как внутрь, так и наружу:
![Модель дома в SkethUp Модель дома в SkethUp](https://habrastorage.org/getpro/habr/upload_files/45e/7bb/64d/45e7bb64d65863e71812383a18f944b8.png)
Итого
Пока что сложно сказать как будет удобнее, попытаться реализовать многоподъездный дом или несколько Нодов с отдельными, уникальными подъездами (в донном случае их 4 будет). И вот сама модель дома (в месте с предыдущем).
Комментарии (8)
AZhbrlgn
23.05.2024 11:38+3Достойно. Знакомо чувство когда что-то изучаешь и остановиться не можешь судя по недавней дате предыдущей публикации. Продолжай!
piton_nsk
23.05.2024 11:38Внутренняя планировка с реального проекта или из головы?
SucArch Автор
23.05.2024 11:38+1Из реального, брал отсюда: https://vk.com/page-1618109_3215553, https://gsps.ru/home_series/ii-68.php.
ssj100
а что за угловой короб ? пожарная лестница ?
SucArch Автор
Где именно? Если по последней картинке, то это коммерческая пристройка с магазинами
ssj100
На первой
SucArch Автор
Угловой подъезд по 90 градусов