![](https://habrastorage.org/getpro/habr/upload_files/a6b/6d5/95a/a6b6d595abd5a15c2bbdd814d7585849.png)
Всем привет!
Когда-то я уже начинал данный проект и писал об этом, вот даже пост нашёл. Потихоньку продолжал его развивать, но, из-за ограниченности своей системы, на время забросил, а потом уже окончательно, т.к. стало не до него. Но вот решил обратно за него взяться.
![ул. Исаковского 2к1 типовой дом П-47-12 ул. Исаковского 2к1 типовой дом П-47-12](https://habrastorage.org/getpro/habr/upload_files/6dc/8b9/131/6dc8b9131e53e92509bb5b4bb0f60a12.png)
Начнём. Раньше все дома делал в SketchUp, после экспортировал их в Blender. То теперь решил все типовые дома делать процедурно генерируемыми в самом Blender с помощью Geometry Nodes и потихоньку учиться с ними работать. Вот сделал 2 поста об этом: первый и второй.
![Пример дома ул. Неманской 5к1 Пример дома ул. Неманской 5к1](https://habrastorage.org/getpro/habr/upload_files/23d/758/c50/23d758c507ae19fe7a57925113acf757.png)
Пока с помощью Нодов не научился делать многоподъездные дома, поэтому сделал несколько подъездов и далее соединял их, т.к. есть дома у которых подъезд в 90 и 45 градусов. Модели этажей также делал в SketchUp, пользовался данным ресурсом, чтобы определить типовую модель дома, а уже здесь, искал чертежи и размеры:
На окнах использовал кубическую параллакс карту, взятую отсюда, которая создаёт «объёмный» интерьер внутри, но при этом не содержит полигонов:
Если в предыдущем проекте использовал карту высот от Радиолокационная топографическая миссия шаттла или SRTM, взятую из программы Global Mapper, то на этот раз хотел воспользоваться аддоном для Blender – Blosm, в которой можно получить карту рельефа от Google. Но чтобы загрузить их, необходим API ключ, для получения которого необходимо привязать карту Visa или MasterCard в GoogleCloud, которой у меня нет, поэтому решил загрузить только картинку без рельефа от OpenStreetMap и на ней расставлять дома:
![](https://habrastorage.org/getpro/habr/upload_files/f29/9eb/00c/f299eb00cf2d9dff087b9c9bb8c67d58.png)
Как и в прошлый раз так и в этот, я делал всё на нетбуке с такими параметрами (на Intel UHD 600):
![](https://habrastorage.org/getpro/habr/upload_files/277/cf8/c99/277cf8c9987caf850365045362538867.png)
Из-за чего не получилось полностью «застроить» район, т.к. Blender вылетал. Также сам рендер происходил очень долго, но я хотел сделать небольшую видео презентацию, поэтому воспользовался Google Colab (вот Notebook). При разрешении 720p, 24 кадрах и рендере в 25 sample, уходило около 4-5 минут на 1 кадр, то Colab на 1 кадр тратил 15-17 секунд:
![](https://habrastorage.org/getpro/habr/upload_files/6a1/2f2/5ae/6a12f25aefedafde65aaaf45149c0fb3.png)
И моя кривая видео презентация (я только учусь):
Если сравнить реальный дом и рендер, то можно увидеть, как дом выглядел первоначально, когда его построили. Своего рода взгляд в историю. На примере дома Неманский пр. 5к1 построенного в 1979:
![Прямо как до... Прямо как до...](https://habrastorage.org/getpro/habr/upload_files/dab/2f9/1c3/dab2f91c3aedfbf5a21dbd6da0c8950c.png)
![... и после ... и после](https://habrastorage.org/getpro/habr/upload_files/4c3/e96/29a/4c3e9629acecb42b998ca3090a02b3d9.png)
И ул. Маршала Катукова 3к1 в 1979:
![](https://habrastorage.org/getpro/habr/upload_files/abb/131/43b/abb13143b9d29e75a19ae189af5f845e.png)
![](https://habrastorage.org/getpro/habr/upload_files/31b/68a/009/31b68a009e0947ff97b67d4146bac43a.png)
И вот сама модель Строгино.
Итого
Как я уже писал в предыдущих постах, мои познания в программировании находятся на уровне формул в Excel и учитывая характеристики моей «мега» системы, как и сам проект с Москвой, где спальные районы состоят из серийных типовых панелек, размеры которых возможно найти, а уже ближе к центру, идут серии по индивидуальному проекту, размеры которых не известны, поэтому решил забросить первоначальную идею с Москвой в 3D.
Вместо неё, мне стало интересно попробовать реализовать процедурную генерацию улиц и двором, но со всеми стандартами.
Есть ГОСТы, СП, СНиПы улиц и дорог:
![](https://habrastorage.org/getpro/habr/upload_files/c9a/9c3/787/c9a9c378790cff68e27a62901942954b.png)
![](https://habrastorage.org/getpro/habr/upload_files/e88/133/5e3/e881335e36f2505b7d57008c0817fa0c.png)
Так же и дворов, с расположением домов:
![](https://habrastorage.org/getpro/habr/upload_files/e28/498/34c/e2849834cd4d9177260877f9439e2343.png)
![](https://habrastorage.org/getpro/habr/upload_files/c61/902/36b/c6190236beebf108b95b7ee02af25556.jpeg)
Как расположение деревьев и кустарников:
![](https://habrastorage.org/getpro/habr/upload_files/9d2/b22/ed0/9d2b22ed087067a6e8bba886bdd1f581.png)
По идеи, такое возможно реализовать с помощью Geometry Nodes в Blender. Да, есть уже различные аддоны, как и к Blender, так и к Unreal Engine 5, с помощью которых, можно процедурно генерировать города, но они идут без стандартов и без наших, «уныло» родных панелек. И со всеми этими тенденциями, я больше смотрю на Unigine 2.0. И лучше обучаться чему-то, когда у тебя есть цель для этого и интерес, поэтому и дальше буду изучать Geometry Nodes и пытаться реализовать, процедурную генерацию улиц и дворов.