Техническое и художественное задание на создание 3D-моделей

ТТХ и задание на геометрию

Задание на геометрию

Необходимо создать низкополигональную модель здания (без территории и окружения), упростив геометрию и переработав баланс детализации.

При просмотре на разных масштабах карты должен передаваться характерный и узнаваемый образ здания, но при этом детали не должны «шуметь» и загрязнять картинку.

Геометрия должна соответствовать нашим рекомендациям из дальнейших разделов, а общий вид должен быть консистентен уже имеющимся моделям на карте.

*Мосты, дорожные эстакады, биллборды, фонари и прочие объекты, не являющиеся зданиями, или памятниками, мы не делаем.

Основные принципы:

  1. Основные габариты здания (пятно застройки на карте, ширина, высота, глубина и т. д.) должны соблюдаться точно
  2. Геометрия элементов не обязана быть точной копией реального здания. Нужно найти золотую середину между оптимальной адаптацией и корректным масштабом по отношению к соседним объектам. Важно помнить, что пятно застройки, габариты и основные пропорции здания должны совпадать с реальностью
  3. Здания нужно моделировать без перепада высоты ландшафта, так как карта не имеет рельефа
  4. Моделирование происходит от общего к частному. Сначала делаются основные узнаваемые элементы здания, а затем добавляются более мелкие
  5. Детали можно увеличивать относительно реального размера, чтобы они лучше считывались при отдалении карты. Однако гипертрофированные детали должны быть в балансе друг с другом и с остальными частями здания
  6. Количество элементов здания (окна, этажи, колонны и пр.) можно уменьшать в пользу чистоты картинки и считываемости образа. Правила уменьшения количества элементов описаны в следующих пунктах
  7. Некоторые элементы, например входы, лестницы и окна, обязаны подчиняться общим принципам, описанным в дальнейших разделах
  8. Вывески на здании делаются только в случае, если они не являются коммерческими и имеют достаточно большой для считывания в модели на карте размер например: «Государственный музей им. Пушкина»
  9. Заборы, деревья, придомовую территорию, детские площадки и прочие элементы, не являющиеся непосредственной физической частью здания делать не нужно

Технические требования

Геометрия:
До 15 000 треугольников (tris).

Сетка: желательно не триангулировать и оставлять N-gon’ы.

Нормали: следить за правильным направлением нормалей в модели. Двусторонний рендеринг нормалей не допускается движком.

Группы сглаживания: необходимо следить за правильной настройкой групп сглаживания для округлых элементов и острых граней там, где необходимо.

Один меш (mesh) в иерархии
Все вершины модели должны быть «слиты» в один меш / одну конструкцию, имеющую один общий материал белого цвета

Без текстур
Модели не должны содержать текстур или карт освещения

Как сдавать модели
В виде zip-архива, содержащего модель в трёх форматах:

.gltf + bin (gLTF Separate, без геометрической компрессии)

.glb (с геометричекой компрессией)

Например, такой можно сохранить в Blender, выбрав опцию Geometry Compression

.fbx (сохранить отдельно)

Модель без текстур

Модель создаётся без текстур и раскраски материалов, как на примере слева ниже.

Цветные модели на картах — это результат работы профессиональных студий, отбора объектов командой Яндекс Карт с учётом выбора жителей города. Для их создания запекаются цветные текстуры для дневной и ночной версий карты.

Однако для создания однотонных моделей текстурирование не требуется, что значительно сокращает процесс работы над ней

Слева: как будет отображаться ваша модель без текстур на карте
Справа: модель с запечёнными текстурами

Общие принципы моделирования

Дисклеймер:

В большинстве примеров, описанных в разделах ниже, используются цветные модели в качестве понятной иллюстрации процесса. Однако, как было описано в предыдущем разделе, модели сдаются без текстур и разбивки на цвета

Масштабы просмотра

Основные сценарии просмотра находятся между масштабами карты 17.0 и 20.0.

На обзорном 17.0 должен считываться общий образ здания, а мелкие детали не должны скрадываться.

На более близком 20.0 пользователь будет рассматривать здание в деталях, искать входы и лестницы. Поэтому мелкие важные детали должны быть различимы, а мелкие незначительные детали можно удалять.

Стоит помнить, что разные размеры зданий могут подразумевать разные масштабы просмотра. Если здание очень маленькое или очень большое, то масштабы просмотра могут измениться

Масштабы карты 17.0 и 20.0

Масштаб и упрощение деталей

Не все детали здания нужны для передачи его общего уникального образа.

Оптимизация начинается с крупных деталей: общих габаритов, колонн, арок, окон, входов, лестниц, карнизов, капителей, фронтонов и т. д. Эти детали могут быть укрупнены, сглажены, упрощены, но должны оставаться в модели.

Мелкие детали (барельефы, фрески, паттерны, плитки и прочие) удаляются. Плоскость окрашивается в один тон со зданием

Слева: пример чрезмерной детализации. Детали слишком мелкие, они «шумят» при динамичном просмотре карт. При статичном просмотре детали сливаются

Справа: пример правильной оптимизации этого здания. Количество деталей сокращено, они увеличены в размере, и в то же время общий облик здания остаётся узнаваемым

Гипертрофирование

Чтобы некоторые детали были заметнее на разных масштабах, можно гипертрофировать их размеры.

Например, увеличить толщину колонн и карнизов, габариты фронтонов и толщину их скатов, диаметр колонн, размер ступеней и окон.

Это помогает сосредоточить внимание на важных элементах, подчеркнуть их в образе здания. Также позволяет им не ломаться и не скрадываться при отзуме на обзорных масштабах просмотра.

Однако нужно быть аккуратнее и следить за общим балансом масштабов между элементами. Излишнее гипертрофирование множества деталей нарушает восприятие здания на карте относительно других объектов и создаёт слишком игрушечный образ

Слева: здание чрезмерно гипертрофировано, выглядит игрушечным и сильно врёт с собственным масштабом относительно карты

Справа: здание находится в балансе

Технические требования

Геометрия:
До 15 000 треугольников (tris).

Сетка:
желательно не триангулировать и оставлять N-gon’ы.

Нормали:
следить за правильным направлением нормалей в модели. Двусторонний рендеринг нормалей не допускается движком.

Группы сглаживания:
необходимо следить за правильной настройкой групп сглаживания для округлых элементов и острых граней там, где необходимо.

Один меш (mesh) в иерархии
Все вершины модели должны быть «слиты» в один меш / одну конструкцию, имеющую один общий материал белого цвета

Без текстур
Модели не должны содержать текстур или карт освещения

Как сдавать модели
В виде zip-архива, содержащего модель в трёх форматах:

.gltf + bin (gLTF Separate, без геометрической компрессии)

.glb (с геометричекой компрессией)

Например, такой можно сохранить в Blender, выбрав опцию Geometry Compression

.fbx (сохранить отдельно)

Усреднение количества деталей

Большое количество повторяющихся элементов может создавать шум и грязь на картинке. Это будет усложнять восприятие здания для пользователей карт.

Чаще всего приходится сокращать количество этажей, секций, а также окон, колонн, ступеней лестниц, декоративных элементов и т. д.

При прореживании элементов необходимо немного гипертрофировать размеры оставшихся.

Однако это стоит делать аккуратно, подбирая баланс так, чтобы не навредить индивидуальности здания.

К основным принципам можно отнести:

  • Прореживать элементы стоит с учётом чётности/нечётности их изначального количества. 12 окон можно сократить до 10, а 16 колонн можно превратить в 14. Однако, каждое здание индивидуально. В некоторых случаях не стоит сокращать число колонн, если это может навредить образу и узнаваемости здания
  • Крупные элементы не стоит прореживать, если их число изначально не больше 5–8
  • Несколько элементов можно объединить, если изменение пропорций итогового элемента не изменит восприятие объекта в целом
  • Оставшиеся после прореживания элементы нужно подогнать по размерам. Заложенные архитектором симметричность и пропорции не должны нарушаться. Например, при сокращении количества колонн соотношение ширины колонны и интерколумния должно сохраниться
  • Нужно внимательно следить за ритмами и общей сеткой в случае прореживания. Общий вид, концепция и узнаваемость архитектуры должны сохраняться

Слева: оригинал здания
Справа: модель без прореживания детализации
Модель с упрощением геометрии по принципам из этого раздела

Упрощение геометрии

Колонны

Не стоит уменьшать основное количество колонн, если их не очень много и они не «шумят» при просмотре карт
Плохие примеры: сокращено количество колонн, здание потеряло оригинальные пропорции и свою характерную узнаваемость
Если колонны слишком тонкие и расположены редко, то имеет смысл их увеличить. Так геометрия здания будет лучше считываться при просмотре и пропадёт эффект ряби
Слева: колонны реальной толщины выглядят плохо
Справа: утолщённые, скорректированные под масштаб просмотра

Однако утолщение колонн стоит использовать осторожно. Излишне гипертрофированные колонны портят восприятие масштаба объекта и делают его слишком игрушечным по отношению к остальным зданиям на карте


Капители

Некрупные элементы колонн (капители, базы, декоративные элементы) стоит упрощать до примитивов. Это позволит значительно сократить количество полигонов и вписаться в технические требования

Ступени и лестницы

Нужно показывать лестницы и ступени, так как они являются не только деталями архитектурного проекта, но и функциональной частью для пользователей, которую мы предоставляем в продукте.

Чтобы добиться лучшей читаемости, можно сокращать количество ступеней. Однако делать это нужно аккуратно, чтобы не сломать восприятие масштаба объекта, как и с колоннами выше.

Например, если лестница небольшая и состоит из пяти ступеней, то можно нарисовать все пять. Если у лестницы много ступеней, то лучше упростить

Пример: у входной группы три ступени, нет смысла сокращать их количество
Пример: у входной группы три ступени, нет смысла сокращать их количество

Окна

Окна вдавливаются в фасад на фиксированную глубину. Исключением могут быть здания, где степень вдавленности окон отражает архитектурный замысел.

После уменьшения количества окон (если было) оставшиеся окна можно увеличить для сохранения читаемости на дальних масштабах. Важно сохранять пропорции близкие к изначальным, чтобы не искажался образ архитектуры.

При техническом уменьшении полигонажа окон мы не искажаем их форму. Если где-то были округлые оконные арки — такими они и должны оставаться.

Карнизы и декоративные элементы вокруг окон мы сохраняем и упрощаем, если они важны для архитектуры. Если же эти детали для узнаваемости образа здания не так важны, то их можно сократить, а высвобожденные полигоны отдать на более важные части

Карнизы

Для лучшего восприятия здания часто используем приём сокращения числа ступеней у карнизов. Это позволяет убрать шум на картинке, а также сократить количество полигонов модели.

К такому приёму стоит подходить индивидуально. Сокращать ли все ступени до гладкости или оставлять крупные характерные перепады, должен решить исполнитель
Хороший пример: уменьшение деталей карниза Большого Театра

Квадратура круга

Круглые объекты должны оставаться круглыми

При оптимизации полигональной сетки нужно учитывать, что чем более крупный объект, тем сильнее будет заметна угловатость на округлых частях
Плохие примеры: постамент и арки дома являются большими, ключевыми деталями, на которых фокусируется взгляд.
Экономить полигоны в таких местах нужно, но менее активно, чтобы круглые части казались круглыми и угловатость не резала глаз
Хорошие примеры: характерная плавность арок сохранена в модели здания

Группы сглаживания

Для создания более плавного эффекта скругления граней в условиях малого их количества, нужно следить за правильной настройкой групп сглаживания нормалей.

Слева: хороший пример, к граням применено сглаживание по модели Phong и форма получается округлой, как и должна быть у здания.


Справа: сглаживание не применено, форма повторяет грубость упрощения геометрии, искажая реальный образ здания.

Входные группы

Особое внимание уделяется входным группам, так как они важны для задачи навигации и последней мили.

Всегда должны иметься все входы, лестницы и пандусы в здании, с которыми может взаимодействовать пешеход (нетехнические, служебные, пожарные и т. д.)

Дизайн стандартизирован и должен соответствовать гайдлайнам ниже

  • Входы вдавливаются в фасад
  • Дверной проём вдавливается внутрь фасада на фиксированную для всех моделей глубину (если иная глубина не подразумевается архитектурой)
  • Арки делаются сквозными
  • У подъездов стоит делать упрощённые козырьки, если они есть
  • Можно показывать реальное количество ступеней, а не упрощённое, если позволяет лимит по полигонажу

Барельефы и скульптуры

Большие барельефы и скульптуры на здании мы не сокращаем, но оптимизируем. Чтобы вписаться в необходимый поликаунт, нужно преобразовывать округлости и кривые скульптур в треугольники и прямоугольники.

Однако важно при этом сохранить узнаваемость образа.

Создание скульптур и барельефов является самой сложной частью моделинга. Если вы не уверены в своих силах и видите, что скульптура не получается похожей на реальную, то лучше не делать её совсем

Хороший пример модель с красивой оптимизацией скульптуры
Плохой пример: модель угловатая, детализация неконсистентная, не похожа на оригинал — упрощение модели только усложнило восприятие скульптуры и исказило образы

Кресты, месяцы и шпили

Такие элементы здания особенно важны либо сакрально, либо архитектурно. Чтобы они не были тонкими, маленькими и незаметными, надо их утолщать и укрупнять.

Необходимо следить за правильностью отображения самой символики и точностью её расположения на здании (направление)
Слева: неудачный пример — оригинальный размер креста не подходит для карт

Справа: удачный пример — кресты чуть-чуть увеличили и утолщили так, чтобы они читались при обзорном масштабе

Геометрия снизу

Важно проектировать даже ту геометрию, которую скрывает ракурс карт.

В будущем будем опускать камеру почти параллельно к горизонту. Нужно проверять модели на предмет Back face у геометрии. Если где-то нормаль смотрит не в камеру — там будет дыра, так как движок рендерит только ту сторону полигона, где расположена нормаль
Слева: забыли добавить грани у козырька — в будущем он будет отображаться как сквозная дыра
Справа: грани на месте — проблемы не будет

Проверка нормалей

Геометрию модели нужно делать без двухсторонних стенок. Все нормали геометрии должны быть вывернуты на лицевую сторону
Плохие примеры: слева — модель с двойной стенкой и нормалями. Справа — модель с вывернутыми (выделены красным) наизнанку нормалями, в этом месте будет сквозная дыра вместо двери