Городской дизайн и программа Blender
Городской дизайн в Blender'е
Адрес оригинальной статьи http://yorik.orgfree.com/tutorials/urbandesign-blender.html
©2007 Перевод Сафонова Т.П.
Городской дизайн в Blender'е
В этой статье я попытаюсь описать два широкомасштабных проекта по городскому планированию, которые были сделаны при помощи Blender, и различные техники используемые при этом. Это будет интересно для двух категорий специалистов - пользователей Blender без знания архитектуры и архитекторы (или городские планировщики) не использующие Blender. Эта статья больше похожа на иллюстрацию, пищу для творчества, чем на подробное руководство. Свободно копируйте, что вам нужно отсюда (но не копируйте проект, создавайте собственные!). Эти два проекта были сделаны Cabeza Sastre, San Paulo, Brazil.
Проект 1: Almoloya de Juarez (Mexico)
|
|
|
Проект 2: Ciudad de Mexico (Mexico)
|
|
|
|
1. Общие положения.
Эти проекты имеют очень большую площадь (первый – 29 млн. м2, второй «всего лишь» 1,2 млн. м2...), поэтому нам понадобились такие техники, чтобы избежать моделирование как таковое, и сохранить простые объекты. В случае проекта №2 мы также хотели быть точными из-за парочки «особых мест» (беговые дорожки, строения...), таким образом эта парочка мест должна была быть подробной. Эти чертежи показывают вам всю сложность имеющихся пейзажей:
Вверху у нас Almoloya, прежде всего, а внизу Mexico.
Тоже самое с деревьями:
Как вы видите объектов мало. В первом случае почти всё было смоделировано прямо в Blender (как, я объясню позже). Во втором случае у нас было много подробных чертежей в CAD, поэтому большая часть объектов была взята из AutoCAD и мы смоделировали только здания в Blender. В обоих случаях мы пытались избежать моделирования и использовать маппирование как можно чаще. В первом проекте только улицы и здания смоделированы. Всё остальное сделано только за счёт маппирования.
Помните, что Blender не любит пейзажи из более чем 1000 любых единиц измерения, и если ваши проекты имеют размеры больше, чем 1000 единиц (не важно метров, километров и т. д.), то лучше начать с уменьшения размеров на 10 или 100, а представлять себе, будто работаешь с единицами в 10 раз больше. В этих примерах мы работали в метрах, но в Blender каждая единица равна 10 метрам.
2. Основа
В наших примерах за основу была взята комбинация карт из Google Earth. Так как программа позволяет сохранить только маленькие изображения (если это не коммерческая версия), вам будет необходимо соединить все эти маленькие изображения в одно большое, что мы и сделали при помощи Gimp. В наших бесконечных попытках мы сделали несколько изображений с разным разрешением. Затем каждое изображение было использовано как карта на разных плоскостях с небольшим вертикальным зазором между плоскостями, чтобы избежать артифактов.
Подробная карта для центральной части, сделана из нескольких изображений Google Earth, склеенных вместе в Gimp. |
Карта со средним разрешением для границ первой, чуть больше первой. Служит мягким переходом между двумя другими |
Карта с низким разрешением. Это один образ Google Earth для всей площади. |
Важно: хорошее масштабирование изображений с самого начала. У Google Earth имеется точный измерительный инструмент (я мерил бассейн в 25 м, он выдал мне 25,15 м). Если на изображении есть расстояние между двумя точками, то вы сможете узнать его полные размеры. Если ваше изображение занимает площадь, скажем, 300 м х 400 м, вам придется сделать плоскость 300 х 400 (или 30 х 40) в Blender и применить изображение как маппирование и у вас будет точный масштаб для работы. На этой ступени работы хорошо бы сделать несколько тестов на предмет точности разрешения изображения (мы использовали максимальное разрешение, которое может дать Google Earth, и этого было достаточно).
3. Моделирование
Здесь мы использовали два разных метода. Первый – все смоделировано в Blender, другой – почти всё взято из AutoCAD (который мы используем в офисе, но процедура такая же как с любой CAD-программой).
Первый метод: все в Blender
|
|
|
|
Мы начали с карты Google Earth (1), сделали по слоям в Gimp черновой эскиз от руки (2), который у нас был изначально (если у вас нет, то переходите сразу к шагу 4 и рисуйте сразу на карте), и все это мы использовали как основу в Blender (3), вид сверху. В масштабированную плоскость легко вставить изображение-основу.
Затем вы просто чертите на плоскости как в любой CAD-программе (4). Вы начинаете работу на плоскости, выбираете грань или вершину угла и нажимаете Ctrl+LMB, чтобы вытянуть фигуру вверх. Всё происходит быстро и требует небольшого последующего редактирования. Мы сделали одну фигуру для дорог, другую – для зеленых насаждений, и ещё одну для зданий. Затем вы должны оставить небольшое пространство между фигурами, иначе Blender может перепутать последовательность фигур.
Здания моделируются также: простые фигуры на плоскости, которые слегка вытягивают:
Второй метод: перенос форм из CAD-программ.
Это несложно, нарисуйте ваши фигуры в любой CAD-программе используя закрытые полилинии, переведите их в области в AutoCad в твердые фигуры или в сети, если у программы нет областей. Возможно вам придется проверить какой тип объекта импортировался в Blender. Лучший способ передачи данных из чертежа CAD в Blender – формат 3DS, так как почти все CAD-программы могут экспортировать в него, а Blender – импортировать из него. Цель – импортировать плоские фигуры в Blender, так как двумерные фигуры проще начертить в CAD и быстрее вытянуть весь пакет в Blender. Напомним еще раз – если ваши фигуры в Blender – поднимите их одну над другой.
4. Маппирование
Вы забираете назад ваш Google Earth + эскиз-изображение, открываете его в Gimp, добавляете новые слои (один слой для одного объекта в Blender), например разные природные виды, деревья, озера, обочины дорог, песок, и т. д. Это очень удобно, когда вы все делаете в Blender, так как у вас еще нет объектов, только основа и дороги
На каждом слое вы можете рисовать только черным цветом, если собираетесь использовать это как трафарет для текстуры, что подойдет для больших площадей; вы можете рисовать цветом сразу, если вы добавляете детали.
Грубое изображение: это ваше базовое изображение. |
Первый слой: зеленые зоны. Это пока черные зоны, грубо нарисованные на белом слое. |
Следующий слой: завершение. Цвет на прозрачном слое. |
Растительность. |
Как только все будет сделано, сохраните каждый слой как отдельное изображение (формат *.png подойдет лучше, так как хранит альфа-значения) и используйте их как текстуру на нескольких копиях плоскостей-основ, отделяя их друг от друга небольшим промежутком. Вы можете смешать несколько текстур в одном материале, если это земельные материалы, или создать плоскости одна выше другой, например, для деревьев и деревья будут отбрасывать тень.
Слой растительности расположен немного выше, чем земля. |
Окончательный результат: первый слой – трафарет для травяной текстуры, следующий слой – цветная текстура для разнообразия. |
5. Растительность
В крупных архитектурных или градостроительных проектах мы сталкиваемся с проблемой растительности. Помимо зданий с парой деревьев (что выглядит достаточно убого) всегда хочется найти «дешевые» способы заполнить проект недорогой растительностью.
И опять мы используем два разных метода в зависимости от типа проекта и масштаба.
Метод горизонтальной плоскости.
В случае с Amoloya размер был так велик, что было бы невозможно отразит растительность пообъектно. Мы решили разместить слой больших деревьев над остальными слоями, так как когда находишься на высоте деревья образуют плоский слой. Используемая техника была описана выше.
Негативный момент – при съемке вы должны всегда находиться достаточно высоко, иначе деревья будут выглядеть плоскими.
|
Здесь вы отчетливо видите, что деревья представлены в виде большой горизонтальной плоскости, расположенной чуть выше чем здания. Таким образом происходит проекция тени на другие объекты |
Метод вертикальной плоскости.
этот метод легко понять, если вы до этого работали с объектами RealPeople в AutoCAD или 3D Max. Обычные вертикальные плоскости разворачиваются в сторону камеры (в Blender есть очень полезная функция locked rotation constraint). На эти плоскости маппируются деревья из изображений по альфа-каналу. Я не буду описывать все это, так как в сети есть подробные описания.
|
Изображение, которое вы маппируете на эти плоскости ведет себя подобно объекту, отбрасывает тень и т. д. Если вы сделаете несколько копий плоскостей с разными изображениями деревьев, то у вас получится база для маленького леса. Следующий шаг – произвольное размещение деревьев по проекту. |
Мы еще раз использовали наш проект в AutoCAD, экспортируя изображение jpg и используя его в качестве основы в Blender. Вверху вы чертите горизонтальную плоскую сеть, расставляя точки на месте деревьев друг против друга. У вас есть несколько многоугольников, по одному для каждого вида дерева. Вы просто вставляете дерево в многоугольник, делает дубликат и получаете по дереву в каждой вершине многоугольника лицом к камере:
После создания таких многоугольников вы можете легко усовершенствовать их под свои требования (дерево посреди тротуара и т.д.). Просто сделайте сеть и переместите нужную вершину. Слабая сторона этого метода – копия ориентирована на камеру, но не все клоны. Это создает определенные проблемы, когда камера уходит вглубь лесов (посмотрите на изображение).
6. Освещение
Эти два проекта такие громадные, что мы особо не заморачивались по поводу освещению, так как результат все равно был бы приблизительным. В проекте Almoloya есть только солнечные тени и полутени. В Mexico – тени, отбрасываемые от солнца, и два участка с мягким затенением на стенах зданий (см. выше).
|
Mexico |
7. Изюминки
Последний штрих – «живые объекты». Это старый трюк архитекторов, но он всегда срабатывает: нарисуйте несколько человек на чертеже и зрители вообразят все остальное сами. Мы нарисовали людей, припаркованные машины, движущиеся машины, уличное освещение, корче все, что может заполнить изображение без особых хлопот.
|
Люди
Это только вертикальные плоскости, ориентированные на камеру (функция Loced Track), с маппированными альфа-изображениями. Та же самая техника была применена к деревьям. |
|
Припаркованные машины
В Almoloya они были сделаны по подобию растительности. Одна большая плоскость, покрывающая всю территорию, на ней – альфа-шаблон (сделано в Gimp путем рисования маленьких черных прямоугольников на белом фоне). Потом я использовал очень насыщенную текстуру Magic в качестве карты цветов, чтобы сделать машины разных цветов. В Mexico это обычные модели машин, которые можно найти в сети. |
|
Уличное освещение
Оно сделано из простых вытянутых трубок, продублированных на плоской сетке. Та же самая техника, что и на деревьях. |
|
Движущиеся машины
Они представляют собой параллелепипеды с замкнутой кривой. Параллелепипед крепится к кривой, а затем дублируется. Каждой копии выделяется отдельный временной промежуток, таким образом они движутся на одинаковой скорости, но в разных местах дороги. |
8. Анимация
Чтобы сделать камеру подвижной надо применить обычную технику – камера движется по замкнутой кривой; получается так, что последний и первый кадры совпадают, что позволяет нам прокручивать это видео до бесконечности при проведении презентаций. Камера направлена в пустоту в одну точку, точно также как в 3D Max: у вас есть цель, которую вы должны анимировать.
Ну, вот вроде бы и все. На каждый проект было потрачено около двух недель, одна неделя – на 2d проектирование, вторая – на 3d проектирование и доработку (использовались все компьютеры в офисе, на доработку каждой анимации уходило два выходных). Прошу извинить меня, если что-то было непонятным, но мне кажется, что необязательно нас слепо копировать, каждый проект требует особых решений. Надеюсь, что я смог убедить вас как просто работать с крупномасштабными проектами в Blender.
Основная идея состоит в том, как заполнить пейзажи большим количеством объектов или по крайней мере создать такое впечатление при минимальных затратах времени, так как в архитектуре ни клиент, ни даже ваш босс не имеют представления о том, сколько времени уходит на создание сложных пейзажей, не говоря уже о доработке всего созданного, да ещё добавьте извечную привычку постоянно вносить изменения в проект.