Полигональные модели: полигональное, сплайновое и NURBS моделирование.
Что такое полигон, Vertex, Edge, Border и Element в 3ds Max.
Нажмите стрелку на командной панели во вкладке Modify перед названием Editable Poly, чтобы перейти на уровень подобъектов. Их мы и будем сейчас разбирать.
Каждому подобъекту соответствует цифровое обозначение на клавиатуре от 1 до 5
Чтобы работать с этим уровнем подобъектов, нажмите клавишу 1 на клавиатуре. Вершина — это одномерный объект (точка) в пространстве. Если соединить, например, две вершины, получится ребро.
Vertex (вершины)
Нажмите на клавишу 2 на клавиатуре, чтобы работать с этим уровнем подобъектов. Ребро — это двумерный объект, который определяется двумя вершинами и представляет собой линию. Три ребра и более образуют многоугольник.
Edge (ребро)
Нажмите на клавишу 3 на клавиатуре, чтобы работать с этим уровнем подобъектов.
В том виде, в котором сейчас представлен наш объект, Border выделить не получится. Border — это граница, где что-то должно заканчиваться, а у нас объект замкнутый.
Перейдите на подобъект, выделите любой видимый полигон и удалите его по нажатию на Del на клавиатуре. Теперь края удалённого полигона и будут тем самым бордером.
Border (граница)
Polygon вызывается по клавише 4 на клавиатуре. Состоит из трёх и более рёбер.
Polygon (полигон)
Element вызывается по клавише 5 на клавиатуре. Этот подобъект необходим в случае, когда нужно выделить целиком весь объект.
Element (элемент)
В свитке Selection иконками представлены все подобъекты Editable Poly. Когда вы выбираете один из подобъектов, там активируется нужная иконка, и наоборот: когда вы нажимаете на какую-либо из иконок, у вас будет выделяться один из подобъектов в списке.
Активировать подобъекты можно или из списка, или по клику на соответствующую иконку
Все эти подобъекты нужны при создании полигональной сетки 3D—объекта. Чтобы выполнять с ними какие-либо действия, нужно использовать базовые инструменты для работы с подобъектами, которые находятся на командной панели во вкладке Modify ниже окна объекта Editable Poly.
Основные свитки в свёрнутом виде
Полигональное моделирование: технология, виды, методики
На сегодняшний момент разработано множество компьютерных программ, позволяющих работать с 3D графикой. Люди разных профессий: дизайнеры, конструкторы, визуализаторы, применяют их в проектировании. Самый первый метод, используемый в конструировании 3D объектов – полигональное моделирование, оно же самое распространённое при проектировании интерьеров, зданий, среды обитания человека.
Программы полигонального моделирования часто используется в архитектуре, проектировании предметов интерьера, в дизайне среды и конструировании малых объёмных форм.
Что собой представляет эта технология?
Специфика метода заключается в построении 3D объектов, с помощью специальных плоскостей (полигонов). С его помощью в 3D Max, можно создавать ряд объектов, без которых любой интерьер был бы пустым. В 3D Max полигональное моделирование, выполняет основную функцию, без этого способа построение объектов становится не возможным.
Любые полигональные фигуры, состоят из граней плоскостей (полигонов), объединённых в один элемент с помощью вершин:
- Ребро – представляет собой линию, выступающую за границу грани;
- Грань (полигон) – плоскость, состоящая из треугольных или четырёхугольных ячеек, образующих сетку. Количество ячеек неограниченное;
- Вершина – точка, соединяющая рёбра.
Все объёмные тела имеют свой каркас, который составляет основу модели: с его помощью можно редактировать изделие, менять форму, вытягивать, передвигать и т. п.
В проектировании архитектурных сооружений, дизайне малых форм и т. п, там, где требуется передать точное сходство с прототипом, часто применяется метод полигонального моделирования.
В зависимости от поставленных задач, 3D объекты могут иметь различное количество полигонов.
На начальном этапе конструирования, создаются низкополигональные модели, что даёт возможность сократить время на обработку данных. При этом уровень детализации будет невысоким.
Что бы создать модель с более проработанной детализацией, необходимо увеличить число полигонов, такое изделие будет называться высокополигональным. Метод применяется, когда необходимо создать точную копию объекта.
Конструирование происходит в несколько уровней, по стандартной схеме, путём постепенного увеличения полигонов.
- Сначала, создаётся базовая форма изделия.
- После этого, добавляются фаски для уточнения формы.
- И в завершении, прорабатываются все детали, поверхность сглаживают.
Несмотря на то, что полигональное моделирование считается самым распространённым способом построения 3D объектов, но это не единственный метод, используемый в создании трёхмерных изображений. Так, например: при проектировании объектов животного мира или растений, лучше всего использовать сплайновое моделирование.
Сплайновое и полигональное моделирование, основные отличия
Сплайновое моделирование – создание объёмных фигур, с применением специального лекала (сплайнов). Сплайнами могут быть кривые, имеющие любую геометрическую форму: дуги, окружности, прямоугольники и т.п. Каркас, служит основой для создания огибающей поверхности. Метод позволяет создавать модели, с высокой степенью детализации, при этом, поверхность становится боле гладкой. В отличие от полигонов, сплайновое моделирование не требует больших затрат энергии, необходимой для обработки информации. Поэтому, этот способ, часто используют при создании, сложных объектов. Всегда есть возможность вернуться к исходному состоянию.
Нередко, эти виды сравнивают с векторной и растровой графикой. В первом случае, фигуры создаются из точек и направляющих, такое изображение получается плоским, но зато при изменении масштаба, качество картинки не изменяется. Графика на основе растров кажется объёмной, но при увеличении масштаба, качество картинки ухудшается, детали становятся размытыми.
То же самое можно сказать и о моделировании с помощью лекал. Точно так же, как и векторная графика, сплайны способны передавать точность объекта, так как форма создаётся с помощью кривых, неоднократно описывающих экватор. Для точной проработки деталей, поверхность увеличивают в масштабе.
Объекты, созданные на основе полигонов, имеют разную степень детализации.
Чтобы добиться максимального сходства с прототипом, изделие должно иметь как можно больше полигонов, к примеру: объект, состоящий из 250 полигонов, будет иметь степень детализации в 35 градусов, кода аналогичный образец, но уже с 1500 полигонами, 10 градусов.
Хоть расстояние между гранями будет небольшим, и поверхность объекта будет казаться сглаженной, при увеличении масштаба на плоскости появятся шероховатости.
Методики построения полигональных моделей
В 3D Max полигональное моделирование – применяется при проектировании трёхмерных изображений. Способ позволяет создавать реалистичные модели с высокой степенью детализации, что даёт преимущество перед другими редакторами.
Создать полигональную модель можно разными способами:
- Путём соединения примитивов, когда за основу берётся простое геометрическое тело: шар, куб тор, т.п. При необходимости, можно изменить количество граней, таким образом можно задавать любые размеры примитива.
- Когда другие методы не подходят, объекты создаются путём прорисовывания, ручным способом.
- Объекты можно создавать путём вытягивания новых граней из исходного полигона.
Полигональное моделирование так же предусматривает и другие способы построения объектов.
- Производя манипуляции с вершинами, перемещая, удаляя, вращая в разные стороны, можно менять геометрию поверхности.
- Что бы придать изделию нужную форму, можно работать с рёбрами, изменяя или перемещая их.
- Иногда, необходимо изменить геометрию модели, сгладить поверхность или наоборот, сделать шероховатой, в этом случае, моделирование осуществляется с помощью полигонов.
Редактирование полигональных моделей осуществляется в окне одного меню Polygons Edit, с помощью этих окон, можно осуществлять другие команды. Они составляют основу любого 3D редактора. Кроме базовых окон, существуют дополнительные панели, без которых получить качественную модель невозможно, к ним относятся:
- Инструмент Edit Polygons – предназначен перемещать рёбра, грани или вершины, таким образом, меняется форма изделия.
- Extrude Face – обеспечивает выдавливание граней или вершин;
- Split Polygon Tool – разбивает грани, путём создания дополнительных рёбер;
Для достижения удачного процесса моделирования следует помнить основное правило построения:
- Лишние подобъекты не нужные для создания формы, желательно удалить, так как это замедляет процесс обработки. К примеру, некоторые вершины могут оказаться лишними от них избавляются, переключив режим редактирования, что бы удалить не нужные;
- Симметричные модели желательно создавать из одной половины, после генерируется зеркальная копия. Далее объекты сливаются в одно целое, получившееся изделие сглаживается.
- Чтобы добиться гладкой поверхности, используют инструмент (Smooth), однако метод заключается в увеличении числа полигонов, по этому, злоупотреблять этим не желательно. В противном случае на обработку детали уйдёт много времени, что затруднит процесс проектирования.
Приемы моделирования объектов
Конструирование с помощью вершин
Основу сетки составляют прямоугольные ячейки, каждая имеет свои вершины, с их помощью происходит редактирование. Что бы создать другой объект, необходимо произвести манипуляции с точками вершин.
В качестве наглядного примера, используется куб, затем, активировав F9, не снимая выделения, переходят в режим редактирования вершин. Задействовав инструмент Move Tool, верхние точки перемещаются, так, что бы примитив принял другую форму. При необходимости сохранить симметрию, удобней всего воспользоваться инструментом Scale Tool. Воспользовавшись различными инструментами можно добиться совершенно уникальных результатов, например, при вращении, вершинах приобретут спиралевидную форму.
Кроме всего прочего, для вершин существует уникальный метод стёсывания, позволяющий создавать множество граней из одной.
Использование рёбер в проектировании
Этот метод схож с предыдущим, редактирование рёбер осуществляется по тому же принципу, что и с вершинами. На практике это работает следующим образом: в качестве базового элемента создаётся куб, при нажатии клавиш F10 активизируется редактор рёбер. Далее, в качестве примера вытягивается одна и противоположных граней ребра. После чего, появится дополнительная плоскость, такую же операцию можно повторить и с соседними рёбрами.
Проектирование моделей с помощью полигонов
Сразу стоит отметить, это наиболее распространённый метод создания сложных объёмных конструкций. В этом случае работа проводится с полигонами, производя различные манипуляции можно менять форму, размер, создавать более сложные объекты. Как и в предыдущих примерах, редактирование происходит по аналогичному сценарию. Активизировав клавишу F11, запускается редактирование полигонов, предварительно выделив один из примитивов, можно работать с гранями, меняя их положение.
Дополнительно доступно множество приёмов по преобразованию граней.
При разбивании грани на две части, создаётся ещё одно ребро. После активации команды правка, курсор мыши изменится, после этого стоит выделить вершины нового ребра и выйти из режима правки, кликнув на пустом поле. После этого можно совершать любые действия относительно новых рёбер.
Применение полигонального моделирования
Область применения полигонального моделирования весьма обширная, от проектирования фигур человека, растений, животных, до создания сложных архитектурных форм, хотя могут применяться и сплайны, в зависимости от конкретных целей.
Недостатки метода
Несмотря на массу положительных качеств метода, недостатки всё же присутствуют.
- Сложность построения объектов требует определённой квалификации от специалиста, наличие знаний по компьютерному моделированию;
- Объекты с большим количеством полигонов требуют дополнительного времени на обработку;
- В отличие от сплайнов, полигональные модели нельзя масштабировать без потери качества.
Применяемые программы
На сегодняшний день, существует множество зd редакторов, трудно найти более популярный, чем Autodesk 3D Max. Программа подходит для создания трёхмерной графики, с её помощью были созданы спецэффекты ко многим фильмам. Сюда же можно добавить не менее известную программу Autodesk Maya, Autodesk Softimage и множество похожих редакторов.
Дизайн низкополигональных персонажей / Хабр
Персонаж — это личность. Без истории нет индивидуальности. Каждый хороший персонаж начинается с истории, а дизайн персонажа должен рассказать эту историю.
В своей предыдущей статье How To Make Low Poly Look Good я говорил, что главная цель низкополигонального (low poly) дизайна — донести сообщение через наименьшее количество форм.
Это особенно справедливо, когда вы создаёте низкополигонального персонажа. Нужно рассказать историю, использовав как можно меньше форм.
Изложенная ниже концепция подходит для дизайна персонажа игры, фильма, иллюстрации или любого другого личного проекта.
Я буду работать в Blender. В Maya, Max и других 3D-редакторах есть похожие инструменты, так что не беспокойтесь об этом.
Намечаем персонажа
Дизайн персонажей в целом сам по себе заслуживает отдельной статьи, поэтому здесь мы не будем в него углубляться, но, по крайней мере, рассмотрим некоторые базовые понятия, которые помогут нам в дальнейшем.
Прежде чем приступать к созданию персонажа, нам нужно определиться, кем и чем будет являться персонаж.
Необязательно писать о нём целый рассказ, просто подумайте над тем, что определяет вашего персонажа.
Но разве это нужно делать, если мы хотим всего лишь выложить несколько красивых изображений на Artstation? Вообще-то нет, но именно из-за этого там в основном встречаются модели типа «грудастая воительница» и «мужчина в эпичном космоскафандре».
Разумеется, в них нет ничего плохого, но мы бы хотели избежать стереотипности наших персонажей.
Обычно вдаваться в подробности не нужно, но чем больше информации у вас есть о персонаже, тем большая опора у вас будет в процессе дизайна.
Какой тип персонажа мы создаём? Что с ним происходило, что будет происходить? В какой он находится ситуации? Каков его социальный статус? Всё это достаточно общие вопросы, но на них легко ответить, и они позволят развивать персонаж, задавая более подробные вопросы.
Дизайн
Я отношусь к low poly как к удалению как можно большего количества деталей без утери сущности того, что мы создаём.
Именно поэтому я считаю важным сначала наметить персонажа, а уже затем погружаться в процесс дизайна.
Если мы ограничиваем себя в количестве полигонов и текстур, то нам нужно очень чёткое понимание того, что хотим показать.
Хоть мы и хотим максимально упростить модель, нам всё же нужно сохранить достаточно форм, чтобы передать её выразительность. Существует множество способов передачи выразительности персонажа. Это не обязательно значит, что ему нужны глаза. Выразительность часто можно передать через движение, цвета и формы.
Мы хотим добавлять детали только там, где они действительно важны. Давайте взглянем на простой пример:
Как видите, чтобы показать персонажа, нам нужно очень мало черт. Нам даже не нужны кисти, ступни и даже лицо, и тем не менее мы понимаем, что это женщина на службе. Возможно, это стюардесса или полицейский?
Вот ещё один пример:
На рисунке показаны 4 уровня сложности — от лица с носом, глазами и бровями до почти отсутствующих черт.
И тем не менее, очевидно, что на каждом изображении запечатлён молодой мужчина. Здесь нам нужно принять решение: какой объём информации НЕОБХОДИМ, чтобы донести наш посыл.
Лично я выбираю здесь человека без лица. Если мне не нужно создавать для него выразительную мимику, то я скорее всего остановлюсь на безликом варианте. Он позволяет зрителю задействовать своё воображение и добавляет ощущение загадки.
Далее мы обсудим формы, но прежде чем приступим к этому, я хотел бы сделать краткое отступление, чтобы вы поняли, что такое на самом деле low poly.
Low Poly и мультфильмы
Не волнуйтесь, мы скоро вернёмся к низкополигональному дизайну.
Низкополигональная графика обычно идёт рука об руку с мультфильмами. В сущности, я считаю, что графика low poly и является своего рода мультфильмом, или, по крайней мере, его близким родственником.
Я имею в виду, что в мультфильмах обычно используются упрощённые формы, преувеличенные и с яркими привлекательными цветами. Существуют и более печальные вариации, но они всё равно основаны на этих фундаментальных свойствах мультфильма.
Одна студия сделала особый вклад в то, как выглядят сегодня почти все мультфильмы. И вы знаете, какую студию я имею в виду… разумеется, я говорю о Disney.
Disney Studios всегда умела мастерски брать самые абсурдные концепции и превращать их в нечто, что мы любим и во что верим.
Давайте на секунду взглянем на это отстранённо. Микки Маус — это говорящая мышь, одетая только в шорты и ботинки сорок пятого размера. Тем не менее, нам он не кажется странным, это просто делает его забавным и запоминающимся.
Его друг Гуфи — это пёс, а ещё у Микки есть собака-питомец по имени Плуто… Хм, а почему же Гуфи не домашняя собака? Он пёс, как и Плуто, но почему нас это не озадачивает?
Каждому говорящему персонажу дана одежда, придающая ему социальный статус, то есть они интеллектуальны и цивилизованы. Плуто считается домашним питомцем, а потому у него нет одежды, только ошейник.
Это превосходный пример того, как художники определяют каждому персонажу социальный статус и встраивают его в дизайн.
Настойчиво рекомендую вам приглядеться к работам Disney и других студий, которые вам нравятся, и изучить то, как они отображают своих персонажей.
Формы и силуэт
Я вспомнил Disney потому, что эта студия очень хорошо создаёт дизайн чётких, читаемых форм.
Правильно будет начать с силуэта. Придумав идею персонажа, начните набрасывать приблизительные формы и экспериментировать с пропорциями и позами.
Если вы плохо рисуете от руки, то могу посоветовать делать черновики форм в цифровом ПО для скульптинга, например, в Zbrush или Blender. Оно позволит вам быстро набросать базовые формы.
Лично я предпочитаю скульптинг, потому что он позволяет мне покрутить модель и посмотреть на неё под разными углами. Завершив модель, мы сможете использовать её как образец для моделирования персонажа.
Хороший трюк — определить наиболее важные черты персонажа и преувеличить их (СИЛЬНО).
В общем случае стоит преувеличивать настолько, чтобы персонаж не выглядел глупо. Затем следует по возможности преуменьшить менее важные черты. Это создаст простоту, но в то же время добавит персонажу сложности.
Возьмите для примера Джессику Рэббит из фильма «Кто подставил кролика Роджера».
Процесс создания дизайна
Давайте теперь отдохнём от лекций и создадим низкополигонального персонажа! После этого мы рассмотрим технические советы по моделированию низкополигональных персонажей.
Мы будем делать каменного персонажа.
Он может быть врагом или боссом в фэнтезийной видеоигре, скорее всего, живущим в горах.
Мы можем представить, что он образовался из вулкана, наполненного тёмной магией, но в этом случае мне придётся добавить в трещины немного сверкающей магмы.
Вы уже видите, что мы начинаем добавлять детали, показывающие, кем и чем является персонаж, исходя из его предыстории. Идея с магмой пришла ко мне, когда я уже закончил проект!
Ну, давайте разбираться с нашим персонажем. Я хотел создать каменного монстра, состоящего из булыжников. Как будто бы почти все формы могут быть произвольной скальной формацией, случайно выглядящей как персонаж.
Я начал с очень грубого наброска, чтобы хотя бы иметь представление о том, что хочу сделать.
Уродливый, но полезный концепт-арт
Как видите, в нём нет ничего особенного, и такой набросок я бы не стал никому показывать. Он просто нужен нам в качестве референса, чтобы использовать его в 3D-редакторе.
Я начал экспериментировать с этим быстрым наброском в качестве референса для ZBrush, пока не получил результат, который можно использовать в качестве основы.
На этом этапе следует экспериментировать и пробовать разные формы, чтобы получить красивый читаемый силуэт.
Но будьте аккуратны, здесь очень легко застрять на деталях и забыть про общую картину. Помните, что мы используем его только как референс для настоящей модели, поэтому о деталях можно позаботиться позже.
Этапы создания каменного монстра
Закончив скульптить основу, можно начать создавать базовый меш, с которым можно работать (скульпт может быть слишком высокополигональным и неудобным для работы). В дальнейшем мы рассмотрим техники, позволяющие решить эту задачу. Этот процесс называется ретопологией.
Создав чёткий низкополигональный меш, мы начинаем добавлять детали и удалять ненужные элементы. Разумеется, можно оставить всё как есть, но лично я предпочитаю поработать и немного поперемещать и «помять» вершины, чтобы получить более приятный результат. Ниже мы остановимся на этом подробнее.
Так в общем виде выглядит мой процесс дизайна низкополигональных персонажей. Иногда я пропускаю этап базового скульпта и просто начинаю с куба или чего-то подобного; это быстрее, хоть и сложнее.
Эффект термоусадки
Это субъективная тема, так что если вы не согласны с изложенным ниже, это вполне нормально.
Что же я подразумеваю под эффектом термоусадки (shrink wrap effect)? Представьте, что у вас есть область равномерно распределённых полигонов, и вы оборачиваете её вокруг своего объекта.
Это создаёт равномерно распределённые полигоны, обёрнутые вокруг объекта.
Слева — модель с эффектом «термоусадки», справа — в модель добавлены «морщины» и измятости.
Хоть иногда это и подходит для создания определённого стиля, но такая модель легко может показаться довольно непримечательной и плоской.
Чтобы ваша модель выделялась, лучше этого избегать и подойти к персонажу индивидуально.
Обычно я начинаю с эффекта shrink wrap, а затем углубляюсь в работу и начинаю удалять рёбра, которые кажутся необязательными, или добавлю рёбра там, где мне нужно больше деталей. Посмотрите внимательно на показанные выше и ниже изображения и заметьте, что я сделал.
Удаляя и добавляя детали, вы можете помочь глазу зрителя двигаться по наиболее важным областям и отфильтровывать менее важные.
Материалы
Многие вполне качественные низкополигональные изображения проваливаются на этапе создания материалов и освещения.
При создании упрощённых моделей легко впасть в заблуждение, что и материалы должны быть как можно проще. С этим я категорически не согласен.
Сочетая низкополигональную модель с реалистичными или полуреалистичными материалами и освещением, можно получить очень интересное и глубокое изображение.
Вот пример с нашей женщиной. Слева использован только diffuse shader. По сравнению с окончательным результатом он выглядит довольно плоским и скучным.
Для кожи в финальном изображении я использовал шейдеры Diffuse, Glossy и Subsurface Scatter. На изображении ниже показан граф шейдеров. При работе с кожей subsurface (подповерхностное рассеяние) особенно важно. Также его можно применять и к другим объектам, придавая им более мягкий внешний вид.
Платье состоит из Diffuse, Glossy и Velvet. Я использовал velvet (бархат), чтобы добавить более глубокий и прохладный оттенок для придания вариативности.
Освещение
Освещение так же важно, как и всё остальное. И оно сильно зависит от сцены, необходимого настроения, формы объектов и т.д. Когда дело доходит до освещения, нужно пробовать множество разных вариантов.
Я обычно начинаю с добавления в качестве базового света сферы окружающего освещения. Она может быть внутри, снаружи, главное, чтобы она соответствовала изображению. Сфера создаст хорошую общую базу изображения.
Затем я добавляю три простых точечных источников освещения — основной свет, заполняющий свет и задний свет. Попробуйте поэкспериментировать с цветами этих источников, обычно стоит сделать заполняющий свет более тёплым, а задний — более холодным, мы постоянно видим такую схему в фильмах.
Расположение источников света для каменного монстра
После этого я перемещаю источники по сцене или добавляю ещё, если нужно заполнить какие-то области.
Я рекомендую изучать понравившиеся вам изображения со стилизованным освещением и пробовать воспроизвести его, чтобы понять, как настраивать свет.
Чтобы ваше изображение выглядело профессионально, нужно добиться хорошего баланса между материалами и освещением. Нужно постоянно практиковаться.
Ретопология
Выше я говорил, что мы рассмотрим ретопологию нашего персонажа.
Идея заключается в том, что у нас есть в качестве основы высокополигональная модель или хаотичный меш, вылепленный скульптингом. Мы используем этот меш в качестве опоры, чтобы начать рисовать геометрию, с которой можно работать.
Вот некоторые из трюков, которые я использую;
Retopo Flow:
Инструмент Contours в TopoFlow
В Blender не так много хороших инструментов для создания геометрии поверх другого объекта, однако существует удобный плагин под названием Retopoflow, который можно бесплатно скачать отсюда.
В составе Retopoflow есть несколько отличных инструментов для создания чистой топологии на основе скульпта.
Shrink Wrapping:
Ещё один трюк, который реализуется даже быстрее: создаём куб, подразделяем его (subdivide) пару раз или пока не получим разрешение, подходящее для нашего объекта. Помещаем объект так, чтобы он полностью покрывал созданный скульптингом меш и используем модификатор Shrinkwrap, взяв в качестве референса скульпт.
Это в буквальном смысле выполнит «термоусадку» куба вокруг скульпта, быстро давая нам нужную форму, но уже с подходящей для работы геометрией.
Подразделённый на части куб обхватывает руку.
Shrink wrapping лучше всего работает, если использовать для персонажа разные фигуры, не рекомендую пытаться «усадить» куб целиком на всего персонажа, потому что это немного его исказит. Например, создайте по одной фигуре для плеча, руки, торса и т.д.
Если у объекта есть более сложные формы, то, возможно, не стоит начинать с куба, а вместо этого смоделировать грубую форму, представляющую готовый объект, но обеспечив при этом правильное расположение рёбер. Затем выполнить shrink wrap вокруг скульпта.
Есть и другие способы делать это, но в моём случае эти два метода покрывают все аспекты, необходимые для ретопологии низкополигональных объектов.
Подводим итог
Надеюсь, эта статья дала вам полезную информацию и стала источником вдохновения для вашего низкополигонального персонажа! Я стремился сделать её краткой, но информативной, если я что-то упустил, то сообщите об этом в комментариях.
Модели из бумаги
Бумажное моделирование – увлекательное хобби для детей и взрослых, неудивительно, что сейчас оно находится на пике популярности, хотя имеет многовековую историю. Впервые бумажные модели живых и неживых предметов начали делать в 15 веке во Франции. Конечно, сначала это были плоские изображения.
В это же время стало очень популярным вырезание профиля человека из цветной бумаги. В отличие от холста и красок, бумага – дешевый и более доступный материал. Постепенно модели приобрели объем, более сложную конструкцию и стали в основном детской забавой. Например, в 19 веке по подписке через журналы можно было приобрести картонные и бумажные модели для сборки животных, людей, кораблей, техники, а также панорамы известных исторических событий.
В 20 веке пластмассовые, металлические и деревянные модели ненадолго вытеснили бумажные, поскольку они обладали большей прочностью, чем бумажные. Но сегодня бумажное моделирование пользуется заслуженной популярностью и любовью многих детей и взрослых. Бумага, сложенная определенным образом, превращается в уникальную и красивую вещь, оригинальное украшение интерьера. Кроме того, этот материал позволяет бесконечно экспериментировать с формой и размером, как угодно и без особых усилий, чего нельзя сказать о металле, дереве или пластике.
Что такое полигональное моделирование, и каким оно бывает
Сейчас особенно популярно полигональное моделирование из бумаги, когда объемная модель представляет собой многогранник, выстроенный по всем правилам геометрии. Его грани – это полигоны, отсюда и название. Строго говоря, это 3D-моделирование. Оно появилось, когда люди научились определять точки в пространстве и задавать координаты по трем осям X, Z, Y.
Если в этих координатах поставить точки как вершины и соединить их ребрами, то мы получим как раз полигон. Соединив несколько полигонов, мы получим полигональную сетку. Таким образом, можно создать какие угодно модели – животных, людей, популярных персонажей, неживых предметов, техники и т. д. Готовая модель смотрится очень эффектно.Другое название техники – паперкрафт.
Различают следующие виды полигонального моделирования.
- Высокополигональное (Highpoly) предполагает создание максимально точной во всех деталях модели предмета. Естественно, что здесь используется большое количество полигонов. Можно создать реалистичную фигуру, повторяющую анатомию человека или животного.
- Низкополигональное (Lowpoly) обозначает, что в полигональной сетке сравнительно мало элементов, высокая детализация изображения не нужна, достаточно приблизительного сходства с оригиналом.
Полигональные модели служат прекрасным оригинальным украшением интерьера, помогают стильно и со вкусом оформить праздник, а также их можно использовать как детские игрушки, которые ребенок с удовольствием сделает своими руками.
Где брать схемы для моделирования?
На языке моделистов схемы, по которым складывают модели, называются развертками, так как они печатаются на листе бумаги в развернутом виде. Развертки можно приобрести в наборах для моделирования, скачать в Интернете или создать самостоятельно.
Сделать бесплатные схемы можно самому, используя специальные компьютерные программы для 3D-моделирования, например:
- PepakuraDesigner,
- PepakuraViewer,
- 3ds Max и других и других 3D-редакторов.
С их помощью можно выполнить 3D-модель и преобразовать ее в развертку, настроить масштаб печати под силу даже новичку. Никаких специальных навыков и сложных вычислений не требуется. Изучение этих редакторов и проработка всех деталей займут определенное время, но великолепный результат стоит затраченных усилий.
Как сделать развертку в программе PepakuraDesigner, показано в этом видео:
Выбрать полигональную модель
Как построить модель из бумаги
Итак, развертка создана и распечатана, теперь давайте разберемся, что же делать с ней дальше. Рассмотрим основные приемы работы с моделью.
- Определение линий сгиба
- Вырезание
- Сгибание
- Склеивание
- Скругление
- выкройка-развертка;
- бумага;
- линейка;
- простой карандаш;
- канцелярский нож, ножницы – большие и маникюрные;
- зубочистка;
- клей;
- салфетки;
- коврик для моделирования, на котором можно резать ножом.
- бумага плотностью 160 – 200 г/кв.м;
- картон плотностью 350 г/кв. м;
- бумага для скрабукинга с плотностью от 150 до 300 г/кв.м.
Если вы хотите, чтобы у модели были четкие очертания, перед сгибанием проведите по линиям, слегка надавливая, карандашом или старой непишущей ручкой. Это лучше всего сделать еще до вырезания. В случае, когда нужны очень острые грани, то по линиям сгиба проводят канцелярским ножом. Делать это нужно очень осторожно, чтобы не прорезать бумагу насквозь.
Развертку каждой детали вырезают острыми ножницами или канцелярским ножом по сплошным линиям. Последний удобен для вырезания отверстий. Работайте при хорошем освещении, чтобы не упустить ни одной детали. Поверхность стола следует застелить специальным макетным ковриком или старой толстой клеенкой. Если на развертке много изгибов, то следует поворачивать не руку, а сам лист. Так получится быстрее. И еще один совет: вырезайте детали по мере надобности, чтобы ничего не потерялось.
Существует два вида сгибов – внешний и внутренний. Первый обозначается пунктирной линией (точки). Деталь сгибается так, чтобы получилось что-то вроде горы, линия сгиба должна находиться выше, чем сгибаемые стороны. Внутренний сгиб обозначается штрих пунктирной линией (точка-тире). Деталь сгибается так, чтобы получилась долина, а линия сгиба оказалась ниже сгибаемых сторон.
Клей наносится только на специальные вкладки. На них обычно нанесены цифры, которые есть либо на распечатанной развертке, либо их можно посмотреть в электронном файле. Логика простая: вкладку с цифрой 1 склеиваем с вкладкой 1, вкладку 567 – с вкладкой 567 и так далее. Наносите клей капелькой и распределяйте ее по бумаге кисточкой или зубочисткой. Излишки осторожно промокайте салфеткой. Если одна деталь соединяется с другой, то клей наносят на одну из боковых граней.
Если в модели есть детали цилиндрической формы, то перед склеиванием их надо закруглить. Для этого проведите по внутренней стороне краем карандаша или линейкой. Для мелких деталей берут зубочистку. В результате бумага станет более податливой и сама примет нужную форму.
Материалы и инструменты
Для создания объемной полигональной модели потребуется следующее:
Для распечатки развертки следует выбирать достаточно плотную бумагу или тонкий картон, чтобы готовая модель хорошо держала форму, и в то же время, было легко делать сгибы. Лучше всего подойдут:
Можно сразу взять цветную бумагу или картон или потом покрасить готовое изделие краской на нитро основе из баллончика. Краски на водной или масляной основе лучше не брать, так как они деформируют бумагу.
Бумага – идеальный материал для начинающих. Опытные мастера часто используют для 3D-моделирования пластик или металл.
Что касается клея, то лучше всего взять клеящий карандаш или прозрачный клей-момент. Главное, чтобы он не имел водной основы, быстро схватывался и не оставлял следов на бумаге. В труднодоступных местах для нанесения используйте зубочистку. Некоторые умельцы соединяют детали при помощи двустороннего скотча, но он не всегда удобен.
Этапы создания полигональной модели
Приготовьте все инструменты и материалы, положите на стол коврик для моделирования и настройте освещение рабочего места.
- Распечатайте развертку. Скорее всего, у вас получится несколько листов.
- Возьмите первый лист и прочертите ручкой без чернил все места сгибов.
- Аккуратно вырежьте деталь.
- Начинайте сгибать модель по проведенным в шаге 2 линиям. Обычно внутренних сгибов больше, чем внешних. Учтите это, если разметка непонятная.
- Теперь нанесите клей-момент на ту сторону деталей, где нет клапана-вкладки, и дайте немного подсохнуть. Через минут 10-20 нанесите клей на сами вкладки и соедините. Прижмите на пару секунд как можно сильнее, старайтесь не помять бумагу. Следите за тем, чтобы цифры совпадали. Начинайте с мелких деталей, постепенно переходя к крупным.
- Работая с остальными листами, повторите шаги 2 – 5.
- Соедините воедино все детали. Дайте клею просохнуть.
- При необходимости закрасьте стыки фломастером в тон или покройте модель нитрокраской из баллончика.
Так как клей часто имеет резкий неприятный запах, работайте в хорошо проветриваемом помещении.
Мастер-класс: как сделать полигональную фигурку своими руками
Для начала попробуем создать красивую кошку в технике паперкрафт. Скачайте выкройку вот здесь и распечатайте ее на плотной бумаге, можно взять цветную или белую.
- Прочертите карандашом или ручкой без чернил все линии сгиба.
- Вырежьте развертку канцелярским ножом. Чтобы линии получились ровными, помогайте себе линейкой.
- Согните модель по линиям сгиба. По пунктирной линии делайте внешний сгиб, по штрих пунктирной – внутренний.
- Найдите на гранях одинаковые цифры и начинайте склейку: сначала мелкие полигоны, потом – крупные.
- Когда вы склеите все детали, соедините их в единую конструкцию.
- Наслаждайтесь результатом!
Если что-то осталось непонятным, посмотрите вот это видео. Здесь наглядно показан каждый этап работы.
Желаем творческих успехов!
Высокополигональное 3D моделирование как основа для отличной 2D графики
Art Director компании G5 Games® поделился секретами мастерства и рассказал, как наиболее эффективно использовать связку высокополигональная модель + рендер + доводка руками в 2D (на примере успешного проекта G5 Games — Mahjong Journey®).
Использование 3D “болванок” для создания 2D графики явление не новое. Художники применяют этот лайфхак для создания иллюстраций с причудливыми перспективными искажениями или для отрисовки объектов со сложной геометрией.
Однако, чаще всего 3D в этом процессе выполняет роль скетча и призвано избавить художника от муторного построения перспективы и геометрии от руки. Рендер в этом случае особого значения не имеет, а, в результате, 3D основа для подобных задач максимально упрощена, полностью закрашивается и финальное 2D изображение ничем не выдает свои 3D корни.
Чем оправдан такой подход?
Как всегда все упирается в соотношение сроков и качества.
Обратим внимание на следующую иллюстрацию:
Мы видим очень сложный геометрический объект, построение которого озадачит любого 2D художника. Не смотря на то, что замок изображен в изометрической проекции без перспективных искажений, он имеет стилистические особенности, свойственные “казуальной” графике. В частности, это криволинейность и пластичность форм, что сильно усложняет построение от руки, но в 3D подобный эффект достигается в два счета при помощи модификаторов. Красота в ассиметрии!
Зачем же нужна высокополигональная модель?
Суть данного подхода заключается в следующем: 2D художнику более не нужно полностью обрисовывать модель, а необходимо лишь
“раскрасить” черно-белое изображение и поработать с нюансами для придания ощущения рукотворности. В отличии от использования низкополигональной модели, обозначающей лишь общие формы, где художник потратит значительно больше времени на детальную проработку, чем 3D моделлер.
Почему бы тогда не использовать только 3D?
Это возможно,но в этом случае опять встанет вопрос сроков и качества — как бы хорошо и подробно не была сделана модель, без кропотливой работы с текстурами и освещением она будет выглядеть мертвой и непривлекательной. Этот этап работы намного быстрее выполнить в 2D. Соответственно, если взять сильные стороны обоих направлений графики и совместить их в одном изображении, можно добиться отличного качества в разумные сроки!
Не все так просто
Обычно, внедряя подобный пайплайн, команда сталкивается с двумя проблемами: 3D моделлеры не умеют работать со стилизованной, мультяшной графикой, а 2D художники не умеют красить модели, не закрашивая их поверх полностью.К счастью, и то и другое можно исправить!
3D специалисты достаточно часто не имеют художественного образования и тяготеют к реалистичной, параллельно-перпендикулярной графике. При этом, чувство прекрасного им не чуждо и приемы мультяшной стилизации даются легко. Главное запомнить несколько простых правил:
- Упрощение и стилизация
Уменьшать количество деталей, гипертрофировать мелкие элементы, добавлять гротеска формам.
- Никаких острых граней
Казуальная, мультяшная стилистика требует определенной мягкости и плавности форм. Кроме того, сглаженные грани бликуют и дополнительно придают объем изображению.
- Никаких параллельных и перпендикулярных линий
Правильная геометрия хороша только для архитектурной визуализации, поэтому всегда необходимо придавать плавности формам и делать модель мультяшной.
Использовать источник рассеянного света. Жесткие тени от точечного источника только усилят ощущение 3D, а нам нужна ламповость.
- Не использовать текстуры, по возможности, все решать геометрией
В сравнении этих двух изображений видно, что на левом использована именно текстура черепицы, а на правом черепица замоделена. По этой причине голубая крыша выглядит скучно, сочленения неестественны, пластика форм отсутствует, текстура “плывет”. В общем, разница очевидна.
Hint. Освещение и материал должны быть настроены таким образом, чтобы не было пересветов и черноты в тенях. Белый и черный, фактически, не несут в себе никакой информации о цвете и тоне, соответственно, и подвергнуть их цветокоррекции нереально. А вот рендер, решенный в градациях серого, можно корректировать, как душе угодно.
В свою очередь, 2D художники при первом знакомстве с подобной практикой с непривычки пытаются полностью закрасить рендер толстым слоем CG краски. Это делает бессмысленной стадию создания подробной и освещенной 3D модели, сроки производства значительно увеличиваются, а финальный результат оставляет желать лучшего.
Первое, с чего необходимо начать при покраске отрендеренной модели — это градиентная окраска по маскам (инструмент Gradient map / Photoshop):
A. Голый рендер
B. Градиентная окраска стен здания
C. Золотой градиент шпиля
D. Градиент крыши
E. Финальный лоск кистью
На примере все выглядит очень просто: необходимо выбрать поверхность, настроить градиенты, добавить детали и расставить акценты. Вуаля! Достойный результат. А если учесть, что речь идет о потоковом производстве большого количества объектов для карты, то со временем формируется библиотека градиентов на любой случай.
Безусловно, это лишь частный случай использования 3D в рамках определенной стилистики игры, — в зависимости от стилистических особенностей проекта могут быть применены уникальные решения, подчеркивающие индивидуальность.
Заключение
Среди художников бытует мнение, что использовать в работе 3D некруто, необходимо делать все руками, опираясь исключительно на свое мастерство. Возможно и так, но конечному пользователю важен исключительно результат, в то время как студии-разработчику еще и стоимость работ и сроки. Так что, если есть возможность облегчить себе жизнь за счет 3D или любого другого технического решения, ей нужно воспользоваться. К примеру, очень сложно представить сколько уйдет сил и времени у художника на построение домиков и “честную” отрисовку черепицы в следующем примере:
Напоследок еще один немаловажный аргумент в пользу вышеописанного пайплайна — это командная работа. 3D модели, отрендеренные с одинаковыми настройками, выглядят абсолютно идентично. А простые и понятные принципы покраски позволяют 2D художникам точно попадать в выбранную стилистику. В результате этого, множество объектов на протяжении всей игры выглядят так, будто они сделаны одной рукой.
Спасибо за внимание!
Для оптимизации 3D-моделей недостаточно считать полигоны / Хабр
Разобравшись с основами процесса рендеринга мешей, вы сможете применять различные техники для оптимизации скорости рендеринга.
Введение
Сколько полигонов мне можно использовать? Это очень частый вопрос, который задают художники при создании моделей для рендеринга в реальном времени. На этот вопрос сложно ответить, потому что дело не только в цифрах.
Я начинал карьеру как 3D-художник ещё в эпоху первой PlayStation, а позже стал программистом графики. Хотел бы я прочитать эту статью перед тем, как впервые начал создавать 3D-модели для игр. Рассмотренные в ней фундаментальные основы пригодятся многим художникам. Хотя бОльшая часть информации из этой статьи не повлияет значительно на продуктивность вашей ежедневной работы, она даст вам базовое понимание того, как графическая карта (graphics processing unit, GPU) отрисовывает создаваемые вами меши.
От количества полигонов в меше обычно зависит скорость его рендеринга. Однако несмотря на то, что количество полигонов часто коррелирует с частотой кадров в секунду (FPS), вы можете обнаружить, что даже после снижения количества полигонов меш по-прежнему рендерится медленно. Но поняв, как рендерятся меши в целом, вы сможете применить набор техник для повышения скорости рендеринга.
Как представлены данные полигонов
Чтобы понять, как GPU рисует полигоны, нужно сначала рассмотреть структуру данных, используемую для описания полигонов. Полигон состоит из набора точек, называемых вершинами, и ссылок. Вершины часто хранятся как массивы значений, например подобно рисунку 1.
Рисунок 1. Массив значений простого полигона.
В данном случае четыре вершины в трёх измерениях (x, y и z) дают нам 12 значений. Для создания полигонов второй массив значений описывает сами вершины, как показано на рисунке 2.
Рисунок 2. Массив ссылок на вершины.
Эти вершины, соединённые вместе, образуют два полигона. Заметьте, что два треугольника, в каждом из которых по три угла, можно описать четырьмя вершинами, потому что вершины 1 и 2 используются в обоих треугольниках. Чтобы эти данные мог обработать GPU, предполагается, что каждый полигон является треугольным. GPU ожидают, что вы работаете с треугольниками, потому что они предназначены именно для их отрисовки. Если вам нужно отрисовать полигоны с другим количеством вершин, то необходимо приложение, разделяющее их на треугольники перед отрисовкой в GPU. Например, если вы создаёте куб из шести полигонов, каждый из которых имеет по четыре стороны, то это не более эффективно, чем создание куба из 12 полигонов, состоящих из трёх сторон; именно эти треугольники будет отрисовывать GPU. Запомните правило: считать нужно не полигоны, а треугольники.
Использованные в предыдущем примере данные вершин являются трёхмерными, но это необязательно. Вам может быть достаточно и двух измерений, но часто необходимо хранить и другие данные, например, UV-координаты для текстур и нормали для освещения.
Отрисовка полигона
При отрисовке полигона GPU первым делом определяет, где нужно рисовать полигон. Для этого он вычисляет позицию на экране, где должны находиться три вершины. Эта операция называется преобразованием (transform). Эти вычисления в GPU выполняет небольшая программа под названием «вершинный шейдер».
Вершинный шейдер часто выполняет и другие типы операций, например, обработку анимаций. После вычисления позиций всех трёх вершин полигона GPU вычисляет, какие пиксели находятся в этом треугольнике, а затем начинает заполнять эти пиксели с помощью ещё одной маленькой программы под названием «фрагментный шейдер» (fragment shader). Фрагментный шейдер обычно выполняется один раз на пиксель. Однако в некоторых редких случаях он может выполняться несколько раз на пиксель, например, для улучшения сглаживания (антиалиасинга). Фрагментные шейдеры часто называются пиксельными шейдерами, потому что в большинстве случаев фрагменты соответствуют пикселям (см. рисунок 3).
Рисунок 3. Один полигон, отрисованный на экране.
На рисунке 4 показан порядок действий, выполняемый GPU при отрисовке полигона.
Рисунок 4. Порядок действий GPU, отрисовывающего полигон.
Если разделить треугольник на два и отрисовать оба треугольника (см. рисунок 5), то порядок действий будет соответствовать рисунку 6.
Рисунок 5. Разделение полигона на два.
Рисунок 6. Порядок действий GPU, рисующего два полигона.
В этом случае требуется в два раза больше преобразований и подготовок, но поскольку количество пикселей осталось таким же, операции не нужно растеризировать дополнительные пиксели. Это показывает, что удваивание количества полигонов необязательно удваивает время рендеринга.
Использование кэша вершин
Если посмотреть на два полигона из предыдущего примера, то можно увидеть, что у них есть две общие вершины. Можно предположить, что эти вершины придётся вычислять дважды, но механизм под названием «кэш вершин» (vertex cache) позволяет использовать результаты вычислений повторно. Результаты вычислений вершинного шейдера для повторного применения сохраняются в кэш — небольшую область памяти, содержащую несколько последних вершин. Порядок действий при отрисовке двух полигонов с использованием кэша вершин показан на рисунке 7.
Рисунок 7. Отрисовка двух полигонов с использованием кэша вершин.
Благодаря кэшу вершин можно отрисовать два полигона почти так же быстро, как один, если они имеют общие вершины.
Разбираемся с параметрами вершин
Чтобы вершину можно было использовать повторно, при каждом использовании она должна быть неизменной. Разумеется, той же должна оставаться позиция, но и другие параметры тоже не должны меняться. Передаваемые вершине параметры зависят от используемого движка. Вот два широко распространённых параметра:
- Текстурные координаты
- Нормали
При UV-наложении на 3D-объект любой создаваемый шов будет означать, что вершины вдоль шва не могут быть общими. Поэтому в общем случае стоит избегать швов (см. рисунок 8).
Рисунок 8. UV-наложение швов текстуры.
Для правильного освещения поверхности каждая вершина обычно хранит нормаль — вектор, направленный от поверхности. Благодаря тому, что все полигоны с общей вершиной задаются одной нормалью, их форма кажется плавной. Это называется плавным затенением (smooth shading). Если каждый треугольник имеет собственные нормали, то рёбра между полигонами становятся выраженными, а поверхность кажется плоской. Поэтому это и называется плоским затенением (flat shaded). На рисунке 9 показаны два одинаковых меша, один со сглаженным затенением, а второй — с плоским.
Рисунок 9. Сравнение сглаженного с плоским затенением.
Эта геометрия со сглаженным затенением состоит из 18 треугольников и имеет 16 общих вершин. Для плоского затенения 18 треугольников нужно 54 (18 x 3) вершины, потому что ни одна из вершин не является общей. Даже если два меша имеют одинаковое количество полигонов, скорость их отрисовки всё равно будет разной.
Важность формы
GPU быстро работают в основном потому, что они могут выполнять множество операций параллельно. В маркетинговых материалах GPU часто делается упор на количество их конвейеров (pipeline), определяющих количество операций, которые может выполнять GPU одновременно. Когда GPU отрисовывает полигон, он отдаёт множеству конвейеров задание заполнять квадраты пикселей. Обычно это квадрат размером восемь на восемь пикселей. GPU продолжает это делать, пока не будут заполнены все пиксели. Очевидно, что треугольники не являются квадратами, поэтому некоторые пиксели квадрата окажутся внутри треугольника, а другие снаружи. Оборудование работает со всеми пикселями квадрата, даже с теми, которые находятся за пределами треугольника. После вычисления всех вершин в квадрате оборудование отбрасывает пиксели за пределами треугольника.
На рисунке 10 показан треугольник, для отрисовки которого требуется три квадрата (тайла). Большинство вычисленных пикселей (голубые) используется, а показанные красным выходят за границы треугольника и будут отброшены.
Рисунок 10. Три тайла для отрисовки треугольника.
Полигон на рисунке 11 с точно таким же количеством пикселей, но растянутый, требует для заполнения большего количества тайлов; бОльшая часть результатов работы в каждом тайле (красная область) будет отброшена.
Рисунок 11. Заполнение тайлов в растянутом изображении.
Количество отрисовываемых пикселей — это только один из факторов. Так же важна форма полигона. Для повышения эффективности старайтесь избегать длинных, узких полигонов и отдавайте предпочтение треугольникам с примерно равной длиной сторон, углы которого близки к 60 градусам. Две плоские поверхности на рисунке 12 триангулированы двумя разными способами, но при рендеринге выглядят одинаково.
Рисунок 12. Поверхности, триангулированные двумя разными способами.
Они имеют абсолютно одинаковое количество полигонов и пикселей, но так как поверхность левого имеет более длинные, узкие полигоны, чем у правого, его рендеринг будет более медленным.
Перерисовка
Для отрисовки шестилучевой звезды можно создать меш из 10 полигонов или нарисовать ту же фигуру всего из двух полигонов, как показано на рисунке 13.
Рисунок 13. Два разных способа отрисовки шестилучевой звезды.
Можно решить, что быстрее отрисовать два полигона, чем 10. Однако в данном случае это скорее всего неверно, потому что пиксели в центре звезды будут отрисовываться дважды. Это явление называется перерисовкой (overdraw). По сути оно означает, что пиксели перерисовываются больше одного раза. Перерисовка естественным образом возникает во всём процессе рендеринга. Например, если персонаж частично скрыт колонной, то он будет отрисован целиком, несмотря на то, что колонна перекрывает часть персонажа. Некоторые движки используют сложные алгоритмы, позволяющие избегать отрисовку объектов, невидимых на конечном изображении, но это трудная задача. Центральному процессору часто труднее выяснить, что не нужно отрисовывать, чем GPU отрисовать это.
Работая художником, вы должны смириться с тем, что от перерисовки не избавиться, но хорошей практикой является удаление поверхностей, которые нельзя увидеть. Если вы сотрудничаете с командой разработчиков, то попросите добавить в игровой движок режим отладки, в котором всё становится прозрачным. Это упростит поиск спрятанных полигонов, которые можно удалить.
Реализация ящика на полу
На рисунке 14 показана простая сцена: стоящий на полу ящик. Пол состоит всего из двух треугольников, а ящик состоит из 10 треугольников. Перерисовка в этой сцене показана красным цветом.
Рисунок 14. Стоящий на полу ящик.
В этом случае GPU отрисует часть пола пол ящиком, несмотря на то, что его не будет видно. Если бы вместо это мы создали под ящиком дыру в полу, то получили бы большее количество полигонов, но намного меньше перерисовки, как видно из рисунка 15.
Рисунок 15. Дыра под ящиком, позволяющая избежать перерисовки.
В подобных случаях всё зависит от вашего выбора. Иногда стоит уменьшить количество полигонов, получив взамен перерисовку. В других ситуациях стоит добавить полигонов, чтобы избежать перерисовки. Ещё один пример: две показанные ниже фигуры являются одинаково выглядящими мешами поверхности с торчащими из неё остриями. В первом меше (рисунок 16) острия расположены на поверхности.
Рисунок 16. Острия расположены на поверхности.
Во втором меше на рисунке 17 в поверхностью под остриями прорезаны отверстия, чтобы уменьшить объём перерисовки.
Рисунок 17. Под остриями вырезаны отверстия.
В этом случае для вырезания отверстий было добавлено множество полигонов, часть из которых имеет узкую форму. К тому же поверхность перерисовки, от которой мы избавились, не очень велика, поэтому в данном случае эта техника неэффективна.
Представьте, что вы моделируете дом, стоящий на земле. Чтобы создать его, вы можете или оставить землю без изменений, или вырезать под дом отверстие в земле. Перерисовки больше в случае, когда под домом не вырезана дыра. Однако выбор зависит от геометрии и точки обзора, с которой дом будет видеть игрок. Если нарисовать под основанием дома землю, то это создаст большой объём перерисовки, если войти внутрь дома и взглянуть вниз. Однако разница не будет особо большой, если вы будете смотреть на дом с самолёта. Лучше всего в таком случае иметь в игровом движке режим отладки, делающий поверхности прозрачными, чтобы вы могли видеть то, что отрисовывается под видимыми игроку поверхностями.
Когда у Z-буферов возникает Z-конфликт
Когда GPU отрисовывает два накладывающихся друг на друга полигона, то как он определяет, какой из них находится поверх другого? Первые исследователи компьютерной графики потратили много времени на исследование этой проблемы. Эд Кэтмэлл (который позже стал президентом Pixar и Walt Disney Animation Studios) написал статью, в которой изложил десять различных подходов к решению этой задачи. В одной части статьи он замечает, что решение этой задачи будет тривиальным, если у компьютеров будет достаточно памяти для хранения одного значения глубины на пиксель. В 1970-х и 1980-х это был очень большой объём памяти. Однако сегодня так работает большинство GPU: такая система называется Z-буфером.
Z-буфер (также известный как буфер глубин) работает следующим образом: с каждым пикселем связывается значение его глубины. Когда оборудование отрисовывает объект, оно вычисляет, как далеко от камеры отрисовывается пиксель. Затем оно проверяет значение глубины уже существующего пикселя. Если он дальше от камеры, чем новый пиксель, то новый пиксель отрисовывается. Если уже имеющийся пиксель ближе к камере, чем новый, то новый пиксель не отрисовывается. Такой подход решает множество проблем и работает, даже если полигоны пересекаются.
Рисунок 18. Пересекающиеся полигоны, обработанные буфером глубин.
Однако Z-буфер не обладает бесконечной точностью. Если две поверхности находятся почти на одном расстоянии от камеры, то это сбивает GPU с толку и он может случайным образом выбрать одну из поверхностей, как это показано на рисунке 19.
Рисунок 19. У поверхностей на одинаковой глубине появляются проблемы с отображением.
Это называется Z-конфликтом (Z-fighting) и выглядит очень забагованно. Часто Z-конфликты становятся тем хуже, чем дальше поверхность от камеры. Разработчики движков могут встраивать в них исправления, позволяющие сгладить эту проблему, но если художник создаёт достаточно близкие и накладывающиеся друг на друга полигоны, то проблема всё равно может возникать. Ещё одним примером может служить стена с висящим на ней постером. Постер находится почти на той же глубине от камеры, что и стена за ним, поэтому очень высок риск Z-конфликтов. Решение заключается в том, чтобы вырезать в стене отверстие под постером. При этом также снизится объём перерисовки.
Рисунок 20. Пример Z-конфликта накладывающихся друг на друга полигонов.
В крайних случаях Z-конфликт может возникнуть, даже когда объекты касаются друг друга. На рисунке 20 показан ящик на полу, и поскольку мы не вырезали в полу под ящиком отверстие, z-буфер может быть сбит с толку рядом с ребром, где пол встречается с ящиком.
Использование вызовов отрисовки
GPU стали чрезвычайно быстрыми — настолько быстрыми, что ЦП могут за ними и не успевать. Так как GPU по сути предназначены для выполнения одной задачи, их гораздо проще заставить работать быстро. Графика по своей природе связана с вычислением множества пикселей, поэтому можно создать оборудование, вычисляющих множество пикселей параллельно. Однако GPU отрисовывает только то, что ему приказывает отрисовывать ЦП. Если ЦП не может достаточно быстро «кормить» GPU данными, то видеокарта будет простаивать. Каждый раз, когда ЦП приказывает GPU что-то отрисовать, называется вызовом отрисовки. Простейший вызов отрисовки состоит из отрисовки одного меша, в том числе одного шейдера и одного набора текстур.
Представьте медленный процессор, способный передавать 100 вызовов отрисовки за кадр, и быстрый GPU, который может отрисовывать по миллиону полигонов за кадр. В таком случае идеальный вызов отрисовки (draw call) может отрисовывать 10 000 полигонов. Если ваши меши состоят всего из 100 полигонов, то GPU сможет отрисовывать только 10 000 полигонов за кадр. То есть 99% времени GPU будет простаивать. В таком случае мы можем запросто увеличить количество полигонов в мешах, ничего при этом не потеряв.
То, из чего состоит вызов отрисовки, и затраты на него сильно зависят от конкретных движков и архитектур. Некоторые движки могут объединить в один вызов отрисовки множество мешей (выполнить их батчинг, batch), но все меши при этом обязаны будут иметь одинаковый шейдер, или могут иметь другие ограничения. Новые API наподобие Vulkan и DirectX 12 разработаны специально для решения этой проблемы при помощи оптимизации того, как программа общается с графическим драйвером, увеличивая таким образом количество вызовов отрисовки, которые можно передать за один кадр.
Если ваша команда пишет собственный движок, то спросите у разработчиков движка, какими ограничениями обладают вызовы отрисовки. Если вы используете готовый движок наподобие Unreal или Unity, то выполните бенчмарки производительности, чтобы определить пределы возможностей движка. Вы можете обнаружить, что можно увеличить количество полигонов, не вызывая при этом снижения скорости.
Заключение
Надеюсь, эта статья послужит вам хорошим введением, способным помочь в понимании различных аспектов производительности рендеринга. В GPU разных производителей всё реализовано немного по-своему. Существует множество оговорок и особых условий, связанных с конкретными движками и аппаратными платформами. Всегда поддерживайте открытый диалог с программистами рендеринга, чтобы использовать их рекомендации в своём проекте.
Об авторе
Эскил Стеенберг (Eskil Steenberg) — независимый разработчик игр и инструментов, он работает и консультантом, и над независимыми проектами. Все скриншоты сделаны в активных проектах с помощью инструментов, разработанных Эскилом. Подробнее о его работе можно узнать на сайте Quel Solaar и в аккаунте @quelsolaar в Twitter.
Полный цикл создания модели персонажа для игры / Хабр
Процесс создания in-game модели персонажа от эскиза до релиза.
Доброго времени суток. Меня зовут Ivan. Сегодня я поделюсь с вами деталями разработки игр, а именно расскажу о полном цикле создания персонажа. Итак, поехали!
Этап 1 — Концепты и дизайн
Как и в любом другом деле, начинать следует с идеи, которую нам необходимо выразить в концептах. Это важный этап, который будет фундаментом для всей дальнейшей работы. На самом деле не так важно, какого качество будут эскизы (да-да, я имею ввиду себя) главное, чтобы они были. Потому что эскиз это план, следуя которому вы сэкономите уйму времени и нервов. Имея эскиз, вы будете четко представлять финальный результат и шаги, которые необходимы для его реализации. Как говорится «Кораблю, который не знает куда плыть, никакой ветер не будет попутным».
Этап 2 — Скульптинг high poly модели
Вам потребуется задействовать все имеющиеся знания и навыки, чтобы вылепить вашего персонажа, не жалея полигонов. Главная задача — создать максимально детализированную модель. Потому что, на следующих этапах, внести какую либо детализацию будет проблематично. Для этой задачи прекрасно подойдет ZBrush или Sculptris. Если модель не сильно сложная, я предпочитаю использовать Sculptris, так как в нем крайне аскетичный интерфейс и есть возможность создания динамической топологии.
Этап 3 — Ретопология
Завершив работу над high poly моделью, можно смело приступать к ее оптимизации, потому что в том виде, в котором находится модель сейчас, использование в игре крайне не рационально. Вряд ли найдется тот смельчак, который отважился бы заскинить модель в 20 миллионов полигонов и с абсолютно хаотичной сеткой. Поэтому мы приступаем к процессу ретопологии, основной сутью которого является уменьшение количество полигонов до оптимального и построения правильной сетки пригодной для анимации. Ретопологию можно делать как в стороннем софте, так и в 3D Max с помощью инструмента PolyDraw. Собственно к этому и приступаем. Стараемся строить топологию используя «лупы» (loop, с англ. — петля, виток) в местах сгибов, это облегчит дальнейший скиннинг и обеспечит анимациям более естественный вид.
Этап 4 — Развертка
Далее мы приступаем к развертке. Нам необходимо развернуть все части меша, чтобы текстура корректно легла на модель. Если какая-то часть модели нуждается в большей детализации, то ей можно выделить больше места на развертке. При создании развертки следует стараться прятать швы в менее заметных местах, таких как — внутренняя сторона руки, подмышка и т.д. Для создания развертки используем стандартный набор инструментов 3D Max’a.
Этап 5 — Запекание карт
Чтобы перенести детализацию с high poly модели на low poly модель, используются текстурные карты, такие как Normal Map, Ambient Occlusion и другие. К счастью их создание происходит полностью автоматически. Для запекания карт прекрасно подойдет Substance Painter. Экспортируем отдельно high poly и low poly модели и импортируем все это в SP. Запекание осуществляется парой кликов мышью, вручную ничего делать не нужно. Максимум, что может потребоваться, это подштриховать мелкие косячки на картах в Photoshop’e, но чаще всего это не требуется.
Этап 6 — Текстуринг
Приступаем к текстурированию нашей модели в Substance Painter. SP дает уникальную возможность красить прямо по модели. Для текстуринга можно использовать как готовые материалы, так и созданные вручную для каких либо нестандартных нужд, но чаще всего стандартного набора материалов SP будет достаточно. В очередной раз нам потребуется мобилизировать все наши навыки и знания. От этого будет зависеть качество полученного результата.
Этап 7 — Риггинг и скиннинг
Вот мы и добрались до заключительного этапа. Чтобы вдохнуть жизнь в нашего персонажа, нам нужно создать ему кости и прискинить к ним модель. Скининг — (от английского слова skin — кожа, skinning — процесс создания кожи, встречается также написание скиннинг) — это один из этапов сетапа 3D-персонажа, когда готовый скелет привязывается (скинится) к самой 3D-модели персонажа. В нашем случае это гуманоид, поэтому используем стандартный скелет CATRig. Подгоняем все кости под пропорции нашего персонажа и приступаем к скиннингу. Запасаемся терпением, это достаточно трудоемкий процесс, поскольку нужно правильно назначить вес (англ. weight) для каждой вершинки модели. Чем больше вес, тем больше влияет конкретная кость на конкретную вершину 3D-модели. Помните, чем правильнее топология вашей модели, тем проще и быстрее будет осуществляться скинниг.
Заключение
Только пройдя через все эти этапы, модель становиться пригодной для создания анимации и импортирования в движок, но это уже тема для следующего поста. Спасибо за внимание.
стоковых иллюстраций полигональных моделей — 56 823 фондовых иллюстраций полигональных моделей, векторных изображений и клипарт
Голова человека из 3D сетки. Модель человеческого провода. Многоугольник. Сканирование лица. Посмотреть . Геометрический дизайн. Полигональные. Голова человека из трехмерной сетки. Голова человека
Силуэт прыгающего человека. 3D модель человека. Геометрический дизайн. Полигональная покрывающая кожа. Проволочная модель человеческого тела.Векторная иллюстрация
Голова человека из 3D сетки. Модель человеческого провода. Многоугольник. Сканирование лица. Посмотреть . Геометрический дизайн. Полигональные. Голова человека из трехмерной сетки. Голова человека
Косатка 3d модель многоугольного треугольника. Подводный морской монстр дикой опасности. Светящийся синий логотип из проволочной сетки в виде точек. Всплеск воды векторные иллюстрации искусство
Металлический каркас человеческих тел.Полигональная модель на белом фоне. Концепция искусственного интеллекта, 3d иллюстрация
Jump Man. Полигональный дизайн. 3D модель человека. Геометрический дизайн. Бизнес, наука и техника векторные иллюстрации. 3D полигональные. Покрывающая кожа. Человеческий многоугольник
3D-рендеринг — низкополигональная модель черно-желтой пантеры. 3D визуализация иллюстрации низкополигональной модели черно-желтой пантеры.Объект изолирован на
Бегущий человек. Полигональный дизайн. 3D модель человека. Геометрический дизайн. Бизнес, наука и техника векторные иллюстрации. 3D полигональные покрытия кожи. Человек
Абстрактный каркас человеческого тела. Полигональная 3d модель на белом фоне. Векторная иллюстрация
.
стоковых иллюстраций для полигонального моделирования — 22 755 стоковых иллюстраций, векторных изображений и клипарт для полигонального моделирования
Геометрическая монохромная многоугольная структура, элемент современной науки и техники. Архитектурное моделирование.
Геометрическая красочная многоугольная структура, элемент современной науки и техники. Архитектурное моделирование.
Геометрическая монохромная многоугольная структура, элемент современной науки и техники.Архитектурное моделирование.
Геометрическая монохромная многоугольная структура, элемент современной науки и техники. Архитектурное моделирование.
Геометрическая монохромная многоугольная структура, элемент современной науки и техники. Архитектурное моделирование.
Геометрическая красочная многоугольная полосатая структура, современная наука а.Элемент вектора синхронизации технологии Nd. Архитектурное моделирование
Геометрическая монохромная многоугольная полосатая векторная структура, современная. Элемент науки и техники. Архитектурное моделирование
Геометрическая монохромная многоугольная полосатая структура, современная наука. И элемент вектора технологии. Архитектурное моделирование
Геометрическая монохромная многоугольная структура, модерн.Элемент науки и техники. Архитектурное моделирование
Геометрическая красная многоугольная структура, современная наука и технологии. Элемент. Архитектурное моделирование
Геометрическая красочная многоугольная структура, современная наука и технологии. Элемент. Архитектурное моделирование
Полигональные элементы каркасной сетки. Сферы со связанными линиями и точками.Структура подключения. Геометрическая концепция современной технологии. Визуализация цифровых данных
Полигональный элемент каркасной сетки. Сфера с соединенными линиями и точками. Структура подключения. Сложные геометрические формы. Геометрический. Каркасная сетка многоугольная
Абстрактный фон полигональной перспективы низкой поли. С соединительными точками и линиями. Структура подключения. Векторный фон науки
Каркасная сетка сломанный многоугольный элемент.Сфера с соединенными линиями и точками. Структура подключения. Геометрическая концепция современной технологии. Цифровые данные
3D моделирование Векторный фон. Полупрозрачное лицо молодого человека Кавказа с многоугольными линиями, изолированные на белом фоне. Моделирование и лепка
3D моделирование Векторный фон. Лицо белого молодого человека с многоугольными линиями, изолированное на серебряном фоне.Скульптура и рендеринг модели
3D моделирование Векторный фон. Лицо белого молодого человека с многоугольными линиями, изолированными на серебряном фоне. Концепция моделирования и визуализации
Каркасная сетка многоугольного куба. Полигональный элемент каркасной сетки. Куб со связанными линиями и точками. Векторная иллюстрация Eps10
Каркасная сетка многоугольного куба.Полигональный элемент каркасной сетки. Куб со связанными линиями и точками. Векторная иллюстрация Eps10
Каркасная сетка многоугольная пирамида. Полигональный элемент каркасной сетки. Пирамида с соединенными линиями и точками. Векторная иллюстрация Eps10
Абстрактный элемент дизайна геометрической формы вектора полигонального каркасного каркаса 3d моделирования. Тригонометрия, связная, фасетная, технологическая, корпоративная, кибернетическая, группа
Векторная карта США и Аляски с полигональной сеткой.Полигональная сетчатая карта США и Аляски. Абстрактные линии сетки, треугольники и точки на темном фоне с картой
Каркасная сетка многоугольной абстрактной формы. Полигональный элемент каркасной сетки. Абстрактная форма со связанными линиями и точками. Векторная иллюстрация Eps10
Векторная цифровая трехмерная абстракция, геометрическая многоугольная перспективная сетка. Eps10 размытие технического фона с прозрачными формами и соединенными точками
Векторная цифровая трехмерная абстракция, геометрическая многоугольная перспективная сетка.Eps10 размытие технического фона с прозрачными формами и соединенными точками
Полигональная женщина. Абстрактный многоугольный портрет женщины. Женское лицо. Стильный портрет
Медь искаженных гранж 3d полигональных технологий объект, аннотация. Модель пространственного проектирования
Абстрактная сфера с многоугольной сеткой каркаса. Абстрактная сфера каркасная сетка многоугольные элементы.Точечная и веб-сеть, структура сферическая. Векторная иллюстрация
PolyTree. Концептуальная иллюстрация лиц как подобъектов при полигональном моделировании в виде дерева. Может использоваться как учебный материал в области 3D моделирования
Многоугольная сетка каркаса Векторная абстрактная карта острова Маврикий. Полигональная векторная сетчатая карта острова Маврикий. Связанные линии, треугольники и точки образуют
Полигональная сетевая сетка Векторная абстрактная карта Южной Австралии.Полигональная векторная сетчатая карта Южной Австралии. Соединенные линии, треугольники и точки образуют абстрактные
Многоугольная сетка из проволочного каркаса Векторная абстрактная карта штата Мегхалая. Полигональная векторная сеточная карта штата Мегхалая. Связанные линии, треугольники и точки образуют
Полигональная сетевая сетка Векторная абстрактная карта провинции Аньхой. Полигональная векторная сеточная карта провинции Аньхой. Соединенные линии, треугольники и точки образуют абстрактные
Многоугольная сетка каркаса вектор абстрактная карта провинции Чжэцзян.Полигональная векторная сеточная карта провинции Чжэцзян. Связанные линии, треугольники и точки образуют
Полигональная каркасная сетка с изображением нефти и иконой мозаики. Цена падения нефти вектор сетки с плоской мозаикой значок, изолированные на белом фоне. Абстрактные линии, треугольники
.
бесплатных низкополигональных персонажей 3D-моделей для загрузки
Переключить навигацию
3D модели
Kraken 3D Asset Management
PixelSquid
пусто
Войти / Присоединиться
Лучшие категории 3D-моделей
Самолет
Анатомия
Животное
Архитектура
Машина
Персонажи
Еда, напиток
Обстановка
Промышленное
Дизайн интерьера
мужчина
Природа
Офис
люди
Растения
Робот
Технология
Деревья
Транспортные средства
Женщина
Бесплатные модели 3D
Модели 3ds Max
Модели Майя
Модели Cinema 4D
Блендерные модели
Низкополигональные модели
Анимированные модели
Наделенные модели
Obj модели
Модели FBX
РАСПРОДАЖА В ДЕНЬ ТРУДА! ЭКОНОМИЯ ДО 50%
Только выбранные предметы.Распродажа заканчивается через дни, часы, минуты, секунды.
символа
.
Бесплатные низкополигональные модели автомобилей 3D для загрузки
Переключить навигацию
3D модели
Kraken 3D Asset Management
PixelSquid
пусто
Войти / Присоединиться
Лучшие категории 3D-моделей
Самолет
Анатомия
Животное
Архитектура
Машина
Персонажи
Еда, напиток
Обстановка
Промышленное
Дизайн интерьера
мужчина
Природа
Офис
люди
Растения
Робот
Технология
Деревья
Транспортные средства
Женщина
Бесплатные модели 3D
Модели 3ds Max
Модели Майя
Модели Cinema 4D
Блендерные модели
Низкополигональные модели
Анимированные модели
Наделенные модели
Obj модели
Модели FBX
РАСПРОДАЖА В ДЕНЬ ТРУДА! ЭКОНОМИЯ ДО 50%
Только выбранные предметы.Распродажа заканчивается через дни, часы, минуты, секунды.
.