Mesh в 3д максе это

Обновлено: 04.07.2024

Решил попробовать на своём канале поделиться опытом и начать публиковать новую серию обучающих статей, посвящённых геймдеву. Начнём с азов, а если эта тематика вам понравится, то буду писать ещё, всё более и более углубляясь в увлекательную область разработки игр.

Итак начнём с определения что же такое меш .

Меш ( анг. Mesh ) - это сетка полигонов, из которых состоит любой 3D объект в компьютерной графике. Полигон, в свою очередь, состоит из вершин (вертексов), рёбер (линий, соединяющих две вершины между собой) и граней (плоскости, образуемой между рёбрами). Во многих графических редакторах полигоном является многоугольник, чаще это четырёхугольник. Но игровой движок Unity производит так называемую триангуляцию каждого меша и разбивает полигоны 3D объекта на треугольники.

Поэтому в Unity полигоном считается именно треугольная плоскость с 3-мя вершинами.
Куб, состоящий из 12-ти полигонов (по 2 полигона на каждую грань)

Чтобы сделать более детализированный 3D объект необходимо использовать большее количество полигонов, но в то же время - чем больше полигонов на объекте, тем сложнее видеокарте его рендерить, что может привести к потере производительности. И хотя современные десктопные видеокарты способны рендерить до нескольких миллионов полигонов в кадре, без существенного снижения FPS, разработчикам игр всё же стоит стремиться, чтобы в кадре находилось несколько сотен тысяч полигонов, так как у игроков могут быть устаревшие видеокарты да и к тому же далеко не только большое количество полигонов загружает систему. Поэтому многим разработчикам приходится находить золотую середину между детальностью меша и количеством полигонов, особенно если разрабатывается мобильная игра.

Ниже представлен стандартный персонаж игрового движка Unity , состоящий из более чем 13 000 полигонов, что считается достаточным для модели персонажа, даже можно и поменьше, так как в играх, как правило, используется большое количество различных 3D объектов.

Модель персонажа, состоящая из более чем 13000 полигонов Модель персонажа без отображения полигональной сетки Модель персонажа, состоящая из более чем 13000 полигонов

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

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

Использование редактируемых поверхностей. Использование распределенных составных объектов и систем частиц в 3D Studio Max

Цель работы: В данном уроке по работе c 3D Studio Max вы получите отличные теоретические и практические навыки в области моделирования при помощи редактируемых поверхностей, а также моделирования с использованием систем частиц в связке с булевыми операциями.

Модификатор EDIT MESH (Редактирование Сетки)

Модификатор Edit Mesh (Редактирование сетки) является одним из ключевых инструментов редактирования геометрии. После применения модификатора Edit Mesh (Редактирование поверхности) объекты наделяются свойствами, идентичными объектам Editable Mesh (Редактируемая поверхность).

Кроме непосредственного редактирования его можно применять для выделения сеток или их подобъектов с целью применения различных модификаторов.

Создание 3D-модели «яблоко»

Рассмотрим пример создания модели яблока при помощи модификатора Edit Mesh (Редактирование поверхности).
Выполните следующие действия:

Шаг 1. Перезагрузите 3D Studio Max.

Шаг 2. В окне проекции Тор (Сверху) постройте объект Sphere (Сфера) с радиусом, равным 45.

Шаг 3. Из раскрывающегося списка модификаторов вкладки Modify (Изменение) командной панели выберите строку Edit Mesh (Редактирование поверхности).

Шаг 4. В свитке Selection (Выделение) перейдите в режим редактирования вершин, щелкнув на кнопке Vertex (Вершина).

Шаг 5. В окне проекции Perspective (Перспектива) выделите верхнюю вершину сферы.

Шаг 6. Разверните свиток Soft Selection (Плавное выделение) и укажите значения параметров плавного выделения, как показано на рисунке 1 (при этом дополнительно должно быть выделено цветом три ряда вокруг верхней точки сферы).
Рисунок 1. Свиток Soft Selection (Плавное выделение) с параметрами выделения вершин сферы.
Шаг 7. Щелкните на кнопке Select and Move (Выделить и переместить), расположенной на панели инструментов, затем в окне проекции Front (Спереди) переместите выделенную вершину немного вниз (рис. 2), сформировав углубление в месте крепления корешка яблока.
Рисунок 2. Изменение положения близлежащих вершин сферы в результате перемещения выделенной вершины.
Шаг 8. В окне проекции Front (Спереди) выделите две вершины, находящиеся в третьем ряду снизу и в середине объекта (одна на лицевой стороне, другая на противоположной).

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

Шаг 9. Не меняя настройки плавного выделения, переместите выделенные вершины немного вниз, сформировав таким образом нижнюю часть яблока (рис. 3).
Рисунок 3. Формирование нижней части яблока.
Шаг 10. К полученной модели яблока применим модификатор Noise (Шум). Модификатор Noise (Шум) помогает придать геометрии моделей неравномерность, присущую объектам реального мира.

Выделите модель яблока, созданную при помощи модификатора Edit Mesh (Редактирование поверхности). Из списка модификаторов вкладки Modify (Изменение) командной панели выберите строку Noise (Шум). Раскроется свиток Parameters (Параметры) настроек модификатора (рис. 4).

Укажите в полях X, Y и Z области Strength (Сила воздействия) значения смещения в направлении соответствующих осей глобальных координат. В области Noise (Шум) установите значение счетчика Scale (Масштабирование) для определения величины возмущения поверхности объекта. Большие значения ведут к более гладким возмущениям, малые – к более частым.

Параметр Seed (Случайная выборка) устанавливает положение генератора случайных величин. При необходимости установите флажок Fractal (Фрактальный) для включения режима генерации фрактальных возмущений.

Хочу открыть не конкретную тему. Я занимаюсь Максом 3 года, новичком себя не считаю. Хотя, безусловно, знаю на много меньше, чем не знаю.
Мой взгляд на различие между Poly и Mesh: Mesh более правильный с точки зрения геометрии, тем что всегда явно разбивает полигоны на треугольники.
Все.
Poly на пол порядка удобнее. Я почти не работаю с Mesh, но на первый взгляд многие вещи вообще технически невозможно сделать в Mesh.
Тем не менее, оба типа считаются равноценно полезными, в чем суть?
Может, я не те книги читал?


tarnoga



Просмотр профиля

mesh- оставлен для совместимости. ну и памяти мешьше требует, сцена легче получается. если приходится оптимизировать сцену, то лучше коллапсить в меш. а так я его, например больше не для чего не использую


Pancir



Просмотр профиля Мой взгляд на различие между Poly и Mesh: Mesh более правильный с точки зрения геометрии, тем что всегда явно разбивает полигоны на треугольники.


Shiva



Просмотр профиля

Красив как Бог, умен как Дъявол

Принципиальная разница только в Алгоритмах работы.

Мешь - это сетка из треугольников которые Фиксированы. Даже если их эджи скрыты и вы видите многоугольник то Внутренняя структура сетки все равно Фиксированная. Т.е. еджи всегда соединяют точки Одинаково. Тут возможны казусы, когда многоугольник, например, из Квадрата принимает форму, например, буквы "L" то, если внутреняя грань (невидимая) стоит Между двумя дальними точками то мы увидим "глюк" выглядет который будет как не буква L а как 2а Сопланарных треугольника. НО, мешь более "легкий" и пыстрее трасформируется при анимации.

Поли - принципиальное отличие в том что все внутренние треугольники входящие в полигон после каждого нашего изменения Перестраиваются заново. Что Значительно уменьшает количество глюков при деформации сетки.

И в том и в другом случае я предпочитаю Сам расставлять Критически еджи. Почему? да потому что часто те которые Пересчитываются Поли могут образовывать столь глючные и неудобные Длинные узкие треугольники.

Если все-еще не понятно в чем разница - могу показать на картинках. )


AlexandrG



Просмотр профиля

Значит, mesh- более примитивный Poly?
Возьмем хотябы Make Plane по осям, у меня нарезаны вершишины которые должны находиться на одном Z, их что в mesh по одной выравнивать. Да это только 1% удобства Poly перед Mesh.

Ага, вот Shiva назвал одно принципиальное отличие, правда не в пользу mesh. Даже не одно, 2- простота трансформации mesh при анимации.


Shiva



Просмотр профиля

Красив как Бог, умен как Дъявол

Изображение

Вот вам для наглядности.

Нет. вы не правы насчет Примитивности. Они просто Разные. Неправильно Сравнивать их по принцыпу "Этот хуже а этот лучше - давайте все пользоватся тем что лучше" )) Это глупо.
Да, в максе инструменты для работы с Меш давно не обновлялись. Но, это и не нужно. Моделировать удобнее в Поли - это однозначно. НО, помимо моделирования есть еще куча всего. и тут уже спорно что лучше. Нужно использовать в каждом варианте то что более удобно.
К примеру в Лоу поли моделировании Именно по этому и Надо перегонять все модели в Меш и тестировать анимацию на Меше потмоу что в игре движек Не пересчитывает сетку, т.е. использует Меш. (чтобы там не говорили)
Я например для сложных анимаций с тяжелой деформируемой сеткой тоже использую меш - быстрее анимируется.
Или для архитктурной визуализаци где много обьектов ТОже лучше использовать меш - сцена весит меньше и освобождается много памяти.
Но в мешь я перевожу После того как замоделю все в Поли.


AlexandrG



Просмотр профиля

Shiva, вы пожалуй довольно понятно объяснили отличия. Спасибо.

Я то не занимаюсь ни анимацией ни низкополигональным моделированием. Зато каждые несколько месяцев обновляю железо. Сцены тяжелее, тяжелее и еще раз тяжелее.

Это правила хорошей топологии. Их трудно найти, легко потерять и лучше не забывать.

Основные задачи правильной топологии: правильные деформации во время анимации; использование минимального количества полигонов для описания нужной формы

Правила хорошего тона в 3D-моделировании 3D моделирование, Топология, Длиннопост

Правила хорошего тона в 3D-моделировании 3D моделирование, Топология, Длиннопост

Полигоны, больше чем с 4 сторонами возможны только на не-анимируемых плоских мешах.

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

Правила хорошего тона в 3D-моделировании 3D моделирование, Топология, Длиннопост

Если точки не совмещены, то при анимации они, скорее всего, порвут меш.

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

Правила хорошего тона в 3D-моделировании 3D моделирование, Топология, Длиннопост

Из-за таких ошибок с большой вероятностью появятся артефакты при рендере.

Правила хорошего тона в 3D-моделировании 3D моделирование, Топология, Длиннопост

Я это называю - "рисуем дополнительную топологию". При заломах квадов обязательно будут артефакты при рендере, так как у рендер-процессора не достаточно информации о гранях!

Точки в полигоне желательно должны быть компланарны.

Правила хорошего тона в 3D-моделировании 3D моделирование, Топология, Длиннопост

Полигон, похожий на стрелку, желательно разбить на треугольники.

Правила хорошего тона в 3D-моделировании 3D моделирование, Топология, Длиннопост

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

Правила хорошего тона в 3D-моделировании 3D моделирование, Топология, Длиннопост

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

Интересные, но спорные комментарии:

"из-за нехватки полигонов на поверхности рельеф (текстура дисплейса) может отображаться некорректно."

"Машине быстрее обработать один меш с 1000 полигонов, чем 10 объектов с 100 полигонами"


Лига Разработчиков Видеоигр

4.4K постов 19.1K подписчиков

Правила сообщества

ОБЩИЕ ПРАВИЛА:

- Уважайте чужой труд и используйте конструктивную критику

- Не занимайтесь саморекламой, пишите качественные и интересные посты

- Не употребляйте мат без необходимости

СТОИТ ПУБЛИКОВАТЬ:

- Посты о Вашей игре с историей её разработки и описанием полученного опыта

- Обучающие материалы, туториалы

- Интервью с опытными разработчиками

- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе

НЕ СТОИТ ПУБЛИКОВАТЬ:

- Только гифки/арты/скриншоты из игры. Такие материалы могут сопровождать рассказ об игре или обучающий туториал, но не должны являться основой поста

- Посты, содержащие только идею игры

- Посты, единственная цель которых - набор команды для разработки игры, для этих целей больше подойдёт Discord-сервер сообщества

- Посты, не относящиеся к тематике сообщества

Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.

ЗАПРЕЩЕНО:

- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции

- Выдавать чужой труд за свой

Подобные посты будут перемещены из сообщества в общую ленту, а их авторы по решению администрации могут быть внесены в игнор-лист сообщества.

О РАЗМЕЩЕНИИ ССЫЛОК:

Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:

- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества

- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз

Про пересекающиеся объекты - ой спорный пункт. В частности для игровой графике: если объекты именно пересекаются (а не касаются) и нормально настроены параметры камер - ничего плохого не будет, а сшивание мешей, особенно сложной формы, значительно увеличивает поликаунт модели. Как раз оптимальнее в большинстве случаев делать пересечение.

Я думаю надо оговориться что половина этих правил ситуационная. и применяется в той или иной части индустрии. А некоторые как по мне и вовсе устарели.

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

Хороший пост. Вставлю 5 копеек по поводу спорных комментариев: первое лечится subD iterations в рендер опциях mesh'а, а второе instance, но, опять же,если вопрос в нагрузке вьюпорта, arnold/prman/mantra глубоко пофиг сколько там полигонов\объектов лишь бы железо вывозило на преобработке кадра,да и никто не мешает юзать clarisse для сцен с миллиардами полигонов=) Это работает не для геймдэва, могу говорить только за синематик продакшн.

Комментарий удален. Причина: данный аккаунт был удалён

как хочу, так и дрочу (с)

Полигон не имеет толщины.

Про некорректное отображение при схождении большого числа ребер в одну точку еще не указали.

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

Случайно наткнулся и не смог пройти мимо. Знаю, что поздновато, но всё-таки.

1. Полигон может иметь столько сторон, сколько это необходимо. В реалтайме моделлер волен срать треугольниками в топологию до тех пор, пока это требует меньше ресурсов и адекватно шейдится. Причём с приходом Normal Map почти на все модели в сцене - это стало значить ещё меньше т.к. дерьмовый шейдинг можно просто закрыть картой нормали, запечённой с корректного участка.

3. Вершины могут находиться в одной позиции. Это абсолютно нормально. Когда твой объект состоит из 100500 кусков - сшивание вершин - верный способ отбить себе желание эту модель когда-либо исправлять, да и просто проторчать над простенькой конструкцией несколько суток ради ничего. Падение производительности от такого приёма не так велики и целиком и полностью перекрывается удешевлением производства модели, да и ты сам сможешь приступить к следующей задаче, что бы не страдать от однообразия.

4. Опять-таки карты нормалей, Custom Normals.

5. Пересечение мешей - отличная возможность сэкономить драгоценный поликаунт и сохранить удобство редактирования моделей. Единственная причина сшить полигоны кроме анимации и Soft Body - жёсткий напряг по пространству на UV, где тебе лишние пустоты не упали, но и там есть свои нюансы и никто не запрещает поместить поверх перекрытого полигона какие-то другие элементы. Разве что с текстурированием чутка запаришься.

6. В 3Ds Max есть возможность управлять триангуляцией (да и в Blender тоже). Насчёт Maya не знаю. Впрочем - создать жёсткое ребро действительно лучшее решение. Ещё лучше - не допускать вершин в одной плоскости и перестать плодить бесполезную геометрию, не принимающую участие в образовании формы, сделав этот элемент изначально правильно.

8. Размер полигона в реалтайм графике определяется на на глаз и эстетические предпочтения, а от задачи. Есть ряд причин, требующих контроля размеров полигона, а именно:

1. Запекание освещения и текстурирование. Для того, что бы корректно упаковать lightmap (да и вообще любую текстуру) - нужно помнить о плотности пикселей и разбивать куски в соответствии с размером карты - иначе у полигона будет нарушена плотность пикселей и он будет выделяться большей степенью шакалов.
Скажем, при текселе в 512 пикселей на метр на 4к текстуре - максимальная длинна ребра - 8 метров.
2. Заметные места изгибов (анимация и soft body). Для равномерного загиба без проседания по детализации - стоит потрудиться.
В остальных случаях можно смело класть болта. Сетка в реалтайме должна делать только 2 вещи - адекватно бликовать (и то не всегда - иногда и забивают) и быстро работать. Лучше сэкономить и добавить полигонов туда, где это будет видно.

В заключение скажу - 3D в реалтайм графике - не так уж и тесно связано с 3D под визуализацию или каким-либо другим. Твои полигончики должны бегать по модели как муравьи, собираясь в интересных местах и редея на плоских, скучных поверхностях. Особенно в статике. Так же и с texel density, если это не будет выглядеть сильно странно.

Читайте также: