Ссылка на предыдующую часть: https://3ddd.ru/blog/post/arkhviz_iznutri_chast_tretia_modelirovanie_arkhitektury
Рано или поздно каждому архитектурному визуализатору приходится сталкиваться с работой над масштабными сценами. Жилой микрорайон, коттеджный посёлок, большой парк и т.д. И именно к получению таких проектов нужно стремиться, т.к. чем больше проект, тем лучше соотношение время/деньги.
В работе над таким проектом важно организовать сцены так, чтобы не упереться в предел мощностей компьютера и комфортно работать со сценой. Два самых важных инструмента для этого – это XRef и Proxy.
XRef Scene позволяет разбивать геометрию по разным файлам для удобства работы и распределения ресурсов. Обычно в отдельный файл (или в несколько файлов) выносятся дома. Можно в отдельный файл выносить и ландшафт, а потом собирать всё в пустой сцене, где только настраивать камеры и свет, но я предпочитаю иксрефить дома прямо в сцену с ландшафтом. Так проще изменять элементы ландшафта под конкретные ракурсы.
Что касается моделирования строений, то к нему применимы все методы, описанные в прошлой статье. Старайтесь моделировать дома в районе нулевых координат и параллельно осям координат. Следите за уровнем проработки геометрии, всё должно быть максимально простым, никаких чамферов, фасок и т.д.
Для перемещения и поворота иксрефнутой геометрии нужно использовать функцию Bind. С её помощью происходит привязка к выбранному объекту (я обычно использую обычный Dummy), двигая и поворачивая который вы можете двигать привязанную к нему геометрию из XRef-файла.
Функция Bind также полезна, если у вас в сцене есть несколько повторяющихся домов. Для их размещения достаточно сделать в отдельном файле модель одного дома, а затем просто иксрефить его несколько раз, привязывая к разным хэлперам и двигая в нужные места генплана.
Все объекты в XRef-файлах должны быть помещены в слои, отдельные от слоёв основного файла.
Очень полезная и при этом очень редко используемая в широких кругах функция 3dsmax – это XRef Material. Если вам необходимо менять материалы сразу в нескольких файлах, например, одновременно менять материал фасада на разных домах, то XRef Material – это именно то, что нужно. Для этого создаётся отдельный файл с материалами, откуда потом эти материалы забираются в другие файлы по аналогии с XRef’ом файлов.
К примеру, нам нужно сделать несколько вариантов кирпича на жилом комплексе, который состоит из кучи домов, смоделированных в разных файлах и затем подгруженных в общую сцену как XRef’ы. И вместо того, чтобы каждый раз открывать файлы с домами и в каждом из них менять материал, можно сделать отдельный файл с общими материалами. Назовём его Materials.max, в нём будут любые объекты, к примеру, просто обычные Box’ы, с наложенными материалами. Желательно для удобства сразу назвать эти объекты в соответствии с материалом. Наложенные на них материалы далее будут забираться в другие сцены.
В сценах с домами вместо обычного материала на все фасады накладываем XRef Material. Его настройки максимально просты – выбирается только файл и объект, с которого берётся материал. И теперь для того, чтобы сразу на всех домах поменять материал фасада, достаточно просто поменять материал на объекте Brick в файле Materials.max.
Иногда при сжатых сроках при моделировании можно обойтись просто текстурами. На этом примере практически все дома сделаны текстурами с дисплейсментом и картой отражений. Застройка всей этой огромной территории была сделана за день, при этом даже на близких ракурсах и в большом разрешении она смотрится прилично.
Далее по моделированию ландшафта.
Как я уже писал в прошлой части, если ландшафт плоский, то надо моделировать его на нулевой отметке. В комментариях там предлагали даже плоский ландшафт моделировать на уровне реальной отметки, но с этим я не согласен. Отсчёт уровней от нуля значительно упрощает дальнейшую работу по расстановке различной зелени, машин, установке камер с их понятной высотой относительно земли, правильному уровню линии горизонта при использовании HDRI и т.д.
Если же ландшафт с рельефом, то его надо моделировать уже в соответствии с высотными отметками. Но для начала надо понять, нужен ли вам вообще рельеф, будет ли он заметен на каких-либо ракурсах и имеет ли какое-то важное значение. Потому что на видах масштабных территорий с воздуха рельеф даже с большими перепадами будет практически не виден.
Существуют различные способы моделирования ландшафтов. Недавно мне попался ландшафт, который вообще полностью смоделирован одним объектом под сглаживание. Картинка ниже показывает сетку до сглаживания и после.
Выглядит это красиво, но такой ландшафт совершенно непригоден для редактирования. Добавить новый проезд или передвинуть существующую дорогу нереально. Поэтому для внесения даже небольших изменений данную территорию мне пришлось перемоделивать заново с нуля.
Поэтому я предпочитаю моделировать ландшафт сплайнами по-максимуму. Причём, если при моделировании архитектуры желательно всё моделировать с нуля, а чертежи использовать только для привязок, то с ландшафтами всё наоборот. Практически всегда чертежи ландшафта пригодны для того, чтобы можно было использовать линии из автокадовского чертежа, только важно обязательно делать им Reset XForm. При этом, используя модификаторы на сплайнах (например, Sweep), можно пользоваться автоматической генерацией маппинга по сплайну. Вот примерно то же самое место, которое на скринах выше, перемоделенное сплайнами.
Для видов с воздуха не надо для травы использовать дисплейсмент и тем более скаттеры травинок. Отличного результата можно добиться просто хорошей текстурой без явного тайла, и это сохранит кучу лишней оперативки и сократит время рендера. Если же вам всё же необходимо где-то использовать дисплейсмент, то помните, что он очень тормозно рендерится на больших по площади полигонах. И поэтому желательно накладывать на них модификатор Subdivide с не очень большим шагом, обычно достаточно 3-5 метров.
Теперь о Proxy.
Proxy – это ссылка на геометрию объекта в другом файле, которая подгружается только во время рендера. В рабочем файле геометрия никак не присутствует и не занимает никаких ресурсов, только самый минимум на отображение превью объекта. Это позволяет рендерить намного большее количество геометрии, чем 3dsmax может переварить в виде обычных Poly-объектов. На Proxy-объекты нельзя накладывать никаких модификаторов, они будут просто игнорироваться.
При работе с экстерьерными сценами в прокси нужно переводить все высокополигональные объекты сцены, повторяющиеся многократно, такие, как деревья и иная растительность, люди, машины, различные МАФы. Перед переводом в прокси нужно объединить разные элементы объекта в один объект для удобства.
Если у вас в сцене большое количество однотипных домов, как, например, на картинке ниже, то тут уже XRef’ами обойтись не получится. Надо переводить домики также в Proxy.
Отдельные слова насчёт растительности.
Сейчас появилось множество сборников с качественной растительностью. Но, как правило, в таких сборниках наложены излишне сложные материалы. Однако, на рендере вида с воздуха вы вряд ли увидите разницу между деревом, на листья которого наложен сложный 2-sided материал с Translucency, и деревом, в материале которого только базовые карты Diffuse и Reflect/Glossiness. Но при этом первое будет рендериться в пять раз дольше, чем второе. Поэтому перед переводом в прокси обязательно оптимизируйте материалы объектов.
Вся растительность рассаживается с помощью различных скаттеров. Сейчас наиболее распространены MultiScatter, CoronaScatter и ForestPack. По настройкам особо расписывать не буду, по ним есть уже много информации в интернете, сложностей там нет.
Людей также можно расставлять скаттерами. Но имейте в виду, что людей не надо расставлять по площади просто с одинаковой плотностью, как солдат на параде. Они должны располагаться группами, концентрироваться в местах притяжения на улицах и т.д. Также в 3dsmax включён модуль Populate, предназначенный для расстановки людей в сценах, но как-то у меня с ним не сложилось, он жутко тормозной, работает с не всегда понятной логикой, плюс довольно странно ведёт себя с текстурами.
С окружающей застройкой есть три варианта - полный моделинг, текстуры на боксах и просто боксы. Первый я практически не использую, т.к. практически никогда в этом нет нужды, и не стоит на это тратить время. Разве что для совсем близких ракурсов, если рядом стоят. Для общих видов либо второй вариант, либо третий. Зависит от того, что вы хотите показать. Если вам надо выделить здание из окружения, то лучше годятся просто бело-серые болванки. Если наоборот, показать, что здание вписывается в окружающую застройку и теряется в ней, то можно нарезать текстуры с фоток или панорам Google/Yandex/Bing.
Для видов с воздуха я почти всегда дополнительно рендерю карту гугла, собранную для участка. Причём не накладываю её сразу на ландшафт, а делаю отдельный рендер плоскости с наложенной картой, а потом этот рендер миксую в Фотошопе с рендером, где на ландшафте обычная трава. Получается как-то так:
Вот вроде и всё, что я хотел написать о работе с большими сценами. Если о чём-то я забыл, напишите, пожалуйста, в комментариях, и я добавлю интересующую информацию.
Также отпишитесь, если вы с какими-то моментами несогласны или ваш пайплайн как-то отличается от описанного выше. Всё написанное в статье не является какими-то строгими правилами и основано только на моём опыте, и я всегда рад выслушать другие точки зрения и что-то в своей работе улучшить и оптимизировать.
Ссылка на пятую часть: https://3ddd.ru/blog/post/arkhviz_iznutri_chast_piataia_fotomontazh