3D-моделлеры, простите: я сделал город одним промтом
Настало время рассказать про использование нейросетей для генерации карт местности и зданий.
Как все начиналось
Недавно мой товарищ взялся за создание модели города, чтобы потом можно было ее распечатать и повесить на стену.
Однако, мы так хорошо зарубились в Civilization VI, что дедлайн был почти что полностью просран. Но все под контролем - существует плагин на Blender, позволяющий парсить данные из OpenStreetMap. Такой подход позволяет избежать унылого расположения сотен домиков поверх спутникового снимка.
И именно в тот злополучный вечер накрылось API, которым пользовался плагин, а показывать работу уже завтра.
Некоторое время друг безуспешно пытался его оживить, после чего совсем приуныл. Меня же посетила мысль - а что если закинуть запрос GPT в режиме "Работа"?
Ранее, у меня уже был опыт в режиме обычного чата, и там получалось.. что-то похожее...
На сцене выступает GPT Sol 5.6 (Очень высокий)
По соображениям приватности заказчика, вместо оригинальной локации, приведу пример оцифровки Котора, Черногория, 42.4247, 18.7712.
Промт может быть примерно таким:
Сгенерируй 3D карту местности по координатам 42.4247, 18.7712, Котор, Черногория, радиусом 1км. Результатом должен быть .stl файл, который можно будет применить для фотополимерной печати. Обязательно уточни данные о рельефе и высоте зданий из открытых источников. Здания должны иметь объемные модели. Также, расположи модели деревьев и другой растительности, на свое усмотрение. Это же касается яхт на воде. Раздели на отдельные меши: красные крыши, озеленение, яхты, водную поверхность, крепостную стену.
У современных текстовых нейросетей 3D моделирование происходит примерно так:
- Собираются данные
- Пишется скрипт на Python;
- Запускается;
- Полученный .stl или .obj результат выдают пользователю
Когда это касается простых форм: зданий, мебели или инженерных деталей, результат получается очень неплохим. И, на удивление, оцифровка местности очень хорошо в это вписывается.
Конкретно в этом случае, нейросеть опрашивает открытые источники (тот же OpenStreetMap), формирует базу данных с привязкой по координатам, и уже потом начинает генерацию.
Что меня особенно порадовало, можно добиться разделения элементов на отдельные меши. Это может пригодиться для многоцветной печати.
Когда ставил на печать, я попросил убрать деревья и объединить все модели в один меш для красоты и удобства.
А где предел?
После предыдущего эксперимента, я был просто обязан проверить способности GPT в скульптинге. В качестве референса, был взят небезызвестный вампир из популярного аниме.
И одним движением руки...
Результат оказался обескураживающе-отрезвляющим:)
При этом, не стоит забывать, что ИИ - ИИ рознь! Взять хотя бы специализированные модели: Hunyuan 2.1 или 3.1
И здесь мы натыкаемся на современную проблематику генеративных ИИ - они создают неплохие, но совершенно сырые продукты. Их можно использовать, как заготовки для дальнейшей работы, но совершенно точно нельзя оставлять в изначальном качестве.
С другой стороны, текстовые нейронки способны генерировать готовые к печати модели, но только с простой геометрией:)
Вывод?
Современные нейросети оказались полезны не только разработчикам, но и 3D-моделистам, как инструмент, способный значительно сократить объем рутины, ускорить прототипирование и запуск MVP.
В частности, я буду пытаться печатать подарочные конструкторы для DnD и развивать modellocation - проект по созданию архитектурных макетов и объемных карт.
А у меня на этом все. Кто слушал - молодец, возьми с полки пирожок.
Кстати, буду рад предложениям для будущих постов.