Немного о Game Low­Poly

Здравствуйте, уважаемые читатели Render.ru. Меня зовут Олег, моего коллегу соавтора зовут Владимир, и я являюсь Game Low-Poly моделлером. В данной статье мне бы хотелось бы познакомить вас с азами создания игровых моделей.
Данная статья будет в первую очередь полезна начинающим, но будет интересна и ветеранам индустрии.

Преамбула

Данная статья вынашивалась мною достаточно давно.
В последнее время очень большое число людей направило свой взор в сторону игровых моделей, но, к сожалению, обладая замечательными навыками в создании Hi-poly и Mid-poly моделей, многие совершенно не имеют представления о Low-poly. Как итог, модели получаются хоть и красивыми, но совершенно негодными для дальнейшего использования.
Часто от начинающих игровых художников можно услышать фразу: « Модель делалась для себя, над оптимизацией не задумывался», она является в кроне неверной.
Построение Low-poly модели начинается именно с определения, а зачем же она собственно нам нужна?
В данной статье я хотел бы рассказать именно о различных направлений, в которых используются игровые модели, и о их весьма специфичных требованиях.

Терминология

Вертекс (Vertex, прим. перевод: Вершина) - вершинная точка пространственной фигуры. Имеет набор атрибутов, таких как координаты в 3D пространстве X,Y,Z, и в 2D пространстве U,V.

Грань (Edge, прим. перевод: Грань) – линия, ограниченная двумя вертексами. Содержит координаты образующих ее вертексов, и собственные координаты, являющиеся суммой координат вертексов.

Полигон (Polygon, прим. перевод: Многоугольник) - общее название плоских фигур геометрии. Один полигон минимум состоит из одного треугольников. Состоит из вертексов соединенных гранями.

Треугольник (Triangle) - является базовой фигурой любой модели. Состоит из трех вертексов соединенных тремя гранями.

Квадрат (Quadrilaterals, прим. перевод: квадратный полигон) - Полгигон состоящий из четырех вертексов.

Триангуляция (triangulation) - Процесс разделения полигона на треугольники.

ЛОД (LOD, Level of Detail прим. перевод: Уровни детализации) - набор моделей применяемых с отдалением и приближением игровой камеры.

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

Игровые разделы

Игровых жанров существует несметное множество, стратегии, шутеры, ролевые игры, квесты, интерактивные новеллы, платформеры, квесты, и многие другие жанры, и множество их под жанров.
Для каждого жанра существуют свои требования к моделям, но есть кое-что, что объединяет их всех - положение игровой камеры, а если быть более точным, то процент занимаемой моделью площади на экране. В дальнейшем, для упрощения мы будем использовать термин положение камеры.
В первую очередь сетка Low-poly модели будет зависеть от положения игровой камеры. Чем ближе игрок может рассматривать модель, тем плотнее должна быть сетка.

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

– FPS (First Person Shooter) - игра от первого лица, для камеры расположенной ближе всего к игроку и игровому окружению. Основной особенностью данного направления является возможность игрока увидеть в максимальном приближении любую деталь, расположенную на игровом уровне, именно по этой причине в играх от первого лица самая высокая плотность сетки. Ярким и представителем данного направления являются Wolfenstein: The New Order (Crysis3, Fallout 4). Модели для такого типа игр доходят до 25к треугольников, но в целом используются куда как более скромные версии. Так, в вышеупомянутом Wolfenstein, немецкий солдат вместе со всей системой повреждений укладывается всего в 14 333 треугольника.

Чуть более детально: Тело 7.410, Голова 2.222, Глаза 128, Шлем 888, Маска 760, Лицевая броня [намордник] 678, Челюсти 238, система повреждений разбитая на пять частей: ч1 - 476, ч2 - 356, ч3 - 199, ч4 - 219, ч5 - 759. Краткий итог, из полного постоянно видимого комплекта: 12086 треугольников.

Состав текстур: Normal Map с Ambient Occlusion в альфа канале, Specular, Diffuse map. Разрешение немного нестандартное: у тела 3840х3840, у головы 1920х1920, у каски, объеденной с намордником 1920х1920, маска 960х960, система повреждений 960х960, глаза 512х512.

– TPS (Third Person Shooter) - игра от третьего лица, для камеры расположенной на плече игрока, либо на небольшом от него отдалении. В данном разделе игрок чаще и ближе всего наблюдает на экране своего персонажа, а вот приблизить камеру к окружению уже крайне затруднительно. Из современных представителей можно привести в пример нашумевший The Last of Us (Tomb Raider, Uncharted и многие другие). Модели главных персонажей в такого рода играх отличаются высокой плотностью сетки, и большой детализацией, но редко превышают цифру в 40к треугольников.
Рассмотрим модель Элли, из вышеупомянутой игры: Общий полигонаж составляет 31.535.

Детально: Голова 7.164, Волосы 6.054, Торс 5.851, Кисти рук 2.664, Ноги 2.549, Башмаки 1.758, челюсть 547, резинка для волос 359, рюкзак 2.693, ресницы 426, лакрима 558, глаза 912.

Состав текстур: Normal Map, Specular, Diffuse map и Ambient Occlusion для лица. Разрешение классическое: у тела 1024х1024, у головы 1024х1024, волосы 1024х512, ноги 1024х1024, челюсть и руки 512х512, башмаки 512х512, рюкзак 512х512, глаза 256х256, лакрима 128х128.

– Strategy - игры с максимальным отдалением камеры. Крайне интересный раздел, требующий экономии абсолютно на всем. Основная особенность - обилие малых объектов на экране. Самым известным представителем является все же Starcraft 2 (Homeworld: Deserts of Kharak и многие другие). Для данного раздела характерна максимальная экономия на всех объектах. Баталии из сотен анимированных юнитов в одних играх и тысячах в других , множество объектов окружения, ландшафт, все это создает огромную нагрузку на компьютер конечного пользователя.
Все остальные игры будут являться в той или иной степени смешением данных разделов.
2,5 D Game мы подробно рассматривать не будем, так как она близка к TPS, с одной лишь особенностью - камера в таких играх зафиксирована в одном положении, и может быть лишь приближена и отдалена от игрового действа, поэтому для статичных объектов рисуется только видимая половина, а для анимированных (в случае целесообразности, этот пункт мы рассмотрим чуть позже) используются группы материалов.

Игровые планы

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

1. Объекты расположенные на экране в максимальном приближении. В данном разделе кроется все оружие, отображаемое на экране игрока (FPS), и игровые персонажи (TPS).

Из-за того что игрок постоянно наблюдает модели данного плана, для них допускается плотная сетка. Но есть одна маленькая особенность, и скрывается она в различных группах материалов для таких моделей.
Итак, рассмотрим классический случай.
Дано: модель пистолета, револьверного типа, с общим числом треугольников 6.810. В постоянной видимости у игрока только часть наружного меша, если выделить ее, то мы получим всего лишь 3.060 треугольников, остальную часть модели игрок увидеть не может. Что бы не загружать всю модель в память, а подгружать нужные элементы поэтапно, игровая модель подготавливается с учетом нанесения на нее двух и более материалов: материал группа для постоянно видимого участка (на картинке желтым), и материал группа для участка видимого только во время анимации (на картинке красным).

Соответственно, на краткий миг анимации перезарядки и появляется на экране ранее скрытый объект. Это позволяет значительно сэкономить постоянные затраты памяти.

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

2. Анимируемые объекты второго плана, а именно: персонажи, и противники.

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

3. Интерактивные объекты.

Объекты, с которыми непосредственно взаимодействует игрок. Требования к сетке таких моделей аналогично требованиям статических моделей - максимальная оптимизация сетки. Подобные модели часто анимируются более грубыми средствами - вращение и сдвиг отдельных блоков.
Аналогично первому плану, некоторые детали могут быть скрыты от игрока, и их следует отделять материальными группами.

4. Элементы локации:

В современных играх предполагается построение уровня из заранее подготовленных моделей (Unreal Engine, Unity). Для левел дизайнера подготавливается набор моделей, состоящий из различных панелей, крупноблочных объектов, плитки и многого другого, размещаемого непосредственно на уровне. Все эти объекты должны быть максимально оптимизированы, ибо являются наиболее многочисленными.
Необходимо отметить, что современные игровые движки могут отрисовывать миллионы треугольников, но сильно ограничены по числу активных объектов. Так в Unreal Engine проявляются первые признаки заторможенности при всего 1000 объектах на экране, при этом не имеет значение степень детализации данных объектов. Именно по этой причине, после построения уровня в редакторе, его необходимо поэлементно укрупнить в различные объекты, не забывая про разделение на материал группы.
На изображении ниже приведен пример игрового уровня с высокой плотностью сетки. Как вы можете заметить, элемент уровня имеет цилиндрическую форму, что приводит к значительному увеличению полигонажа относительно стандартных уровней.

Численность объектов

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

Частые ошибки при создании игровых моделей

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

1. Сохранение не формообразующих высоту вертексов.

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

2. Несоразмерность детализации.

Как уже ранее говорилось, плотность сетки должна напрямую зависеть от возможности приблизить камеру к объекту.
На изображении ниже можно увидеть яркий пример несоответствия размеров кнопки и платы. плата предназначенная для установки в дверную кнопку выполнена из 1020 треугольников, при условии что теоретически на экране может занимать максимум 128х256 пикселей. Подобная плотность сетки недопустима.

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

3. Утечка нормалей

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

На изображении представлены различные сочетания Smooth-group, положений крышки Low-poly модели относительно Hi-poly.

1) Hi-poly модель, с которой и запекается карта нормалей.

2) Простая Low-poly, с одной Smooth-group, крышка в уровне Hi-poly. На данной модели при фронтальном расположении камеры мы наблюдаем заметное искажение кольца и фаски, при наклонной камере дефекты становятся незаметными. Подобный тип игровой содели следует применять для малых объектов и при условии расположения камеры под углом.

3) Простая Low-poly, с одной Smooth-group, крышка ниже Hi-poly. Проблемы аналогичны п. 2. дополнительно подчеркивается вредная фаска.

4) Простая Low-poly, с двумя Smooth-group, крышка в уровне Hi-poly. На данной модели при фронтальном расположении камеры мы не наблюдаем никаких искажений, при наклонной камере проявляются грани модели. Подобный тип игровой модели следует применять для малых объектов и при условии расположения камеры фронтально.

5) Простая Low-poly, с двумя Smooth-group, крышка ниже Hi-poly. Проблемы аналогичны п. 2. дополнительно теряется фаска.

6) Более сложная Low-poly с фаской и с одной Smooth-group. На данной модели любом положении камеры мы наблюдаем остаточные незначительные эффекты искажения. Подобный тип игровой модели следует применять для крупных объектов.

7) Более сложная Low-poly с фаской и с двумя Smooth-group. На данной модели при фронтальном расположении камеры мы не наблюдаем никаких искажений, при наклонной камере проявляются грани .

Методику построения лоуполи модели и выбора Smooth-group следует принимать в зависимости от положения игровой камеры. Если мы чаще наблюдаем объект фронтально, то лучше использовать случаи № 4, 7.
Если мы наблюдаем объект чаще под углом, то лучше использовать случай № 2.
Если объект обозревается игроком со всех сторон, то наиболее адекватным будет являться случай №6.

4. Оптимальность сетки

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

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

5. Лишняя геометрия

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

Интересные Факты

1.Вершинный Shader.

В игровых моделях, полигонаж считается в треугольниках, но данный расчет не отображает реальной картины.
Каждый 3D художник в своей жизни хотя бы раз пользовался Smooth-group (для Blender модификатор edge split). Особенностью применения данных функций, является умножение числа вертексов для создания Smooth поверхностей. Так же следует отметить, что Shaderы отрабатывают не по треугольникам, а именно по вершинам, что приводит к большей сложности вычислений на моделях, состоящих из большего числа Smooth-group.
Именно поэтому рекомендуется создавать игровые модели в одной Smooth-group, прибегая к разделению только в редких случаях.
Полностью отказаться от использования множественных Smooth-group к сожалению невозможно, ибо это приведет к резкому росту активного полигонажа модели. Каждый раз при подготовке Игровой модели, следует взвешивать, что лучше использовать: защитные бордеры (дополнительный лупс по периметру опасной зоны), либо Smooth-group.

2. Развертка модели

Одним из критериев качества модели является степень заполнения разверткой текстурного пространства.
Разворачивать модели рекомендуется с минимально необходимым числом швов, по все той же причине порождения дополнительных вертексов, и появлении текстурных швов на модели.
С появлением таких редакторов как Substsnce painter, практически исчезло требование по удобочитаемости развертки.
Стоит повторить классику: всегда проверяйте соразмерность различных элементов развертки. Два кусочка незначительно отличающихся по разрешению, но находящиеся вплотную к друг другу сильно портят визуальное восприятие модели.

3. Требования движка.

При разработке модели необходимо учитывать так же специфические требования движка.
К примеру, у Unreal Engine отличается Tangent space, что приводит к некорректной работе карты нормалей: проявляются швы, перекручиваются нормали. Соответственно в моделях приходится закладывать дополнительные защитные бордеры, препятствующие проявлению дефектов.
И еще один пример из далекого 2004 г. Одна из самых технологичных игр того времени, DooM 3 обладала крайне специфичным Tangent space, и нормали было возможно запечь только в нем самом (за исключением плоских).
Подобные особенности характерны для всех движков без исключения. Просто так их все описать невозможно, необходимо детально изучить движок под который вы работаете.

795 0 850 94
32
2016-03-01
Благодарю за статью, актуально и полезно.
2016-03-01
Пока требования к моделям держались в районе 4-6 тыс. полигонов для персонажей, каждая вершина была на вес золота, сейчас кажется, что половина из перечисленных требований игнорируется. Тот-же Ведьмак или Ассасин переваривают по 45 тыс. плотность сетки у них почти равномерная, вероятно для более плавных деформаций, симуляции тканей, да и крупные планы не стесняются концентрировать то локте, то ботинке. 
2016-03-01
"Стоит так же отметить, что не следует делать сетку плотной на сложно доступных для обозрения участках." Не знаю байка это или нет, но вроде в War Thunder, кто-то из сотрудников (видимо к тому моменту уже уволенный), разместил на одной из карт, внутри здания резиновую уточку в несколько миллионов полигонов. Как результат, когда игрок смотрел на это здание  у него резко просаживался ФПС)) А статья интересная, для начинающих самое то. Я думаю все эти требования ещё актуальны при разработке всяких мобильных игр, там ведь железо не такое мощное как на ПК или консолях. 
2016-03-01
[quote=Karlik-nos] Пока требования к моделям держались в районе 4-6 тыс. полигонов для персонажей, каждая вершина была на вес золота, сейчас кажется, что половина из перечисленных требований игнорируется. Тот-же Ведьмак или Ассасин переваривают по 45 тыс. плотность сетки у них почти равномерная, вероятно для более плавных деформаций, симуляции тканей, да и крупные планы не стесняются концентрировать то локте, то ботинке.  [/quote]Для крупных кадров рекомендуется использовать ЛОДы. К сожалению да, очень часто разработчики не согласуют что попадет на первый план, что нет, для срежессированных игр, и периодически страшные куцие модели попадают в кадр.По сетке - время не стоит и плотность потихоньку увеличивается, как и ресурсоёмкость моделей. В статье я указывал что не так много представителей ТПС превышает 40к треугольников (среди них Ведьмак, по Асасину увы я не в курсе), но в скором времени их число заметно подрастет. А общую равномерность сетки увеличивают именно исходя из требований анимации.Спасибо за проявленный интерес к статье, так же огромное спасибо Администрации за возможность опубликовать её.
2016-03-01
"Каждый 3D художник в своей жизни хотя бы раз пользовался Smooth-group (для Blender модификатор edge split)" разве есть необходимость физического разбиения геометрии, для достижения эффекта групп сглаживания? есть же Mark Sharp + Auto Smooth 
2016-03-01

Ошибка в Преамбуле "она является в кроне неверной." Терминология что такое "вершинная точка"? какая то тавтология. Правильней будет просто вершина пространственной фигуры. Edge это не Грань а ребро, слово огранка должно навести на то что есть грань. Грань правильней переводить как Face. Игровые разделы Лучше бы раскрыли тему, почему в Вольфинштейне текстуры не кратные двойке - было бы интереснее. Утечка нормалей "Связано это с особенностью расположения нормалей и Smooth-group." В чем  особенность заключается? Ошибка в пункте 2 "Подобный тип игровой содели " Про модель пистолета: Использовать на одной модели много материалов - сомнительно. В руководствах движках рекомендуют использовать как можно меньше материалов. Тем более далее указали что количество треугольников в современных движках не столь критично. Интересные Факты 1.Вершинный Shader.  На эту тему есть куда более понятная статья: http://www.render.ru/books/show_book.php?book_id=1324 2. Развертка модели Можно было бы поподробнее про тексель написать. 3. Требования движка. Карты запеченые в xnormal нормально смотрятся во всех движках (думаю не только в xNormal). Лучше бы про flip green channel рассказали. Надоели эти мусорные переводы.

2016-03-01
[quote=IVANMITYAEV] Надоели эти мусорные переводы. [/quote] К сожалению тут вы ошиблись, это не перевод, а оригинал.Спасибо за указанные ошибки и опечатки и недосказанности. Целью данной статьи было ознакомить начинающих с игровым разделом и его специфическими требованиям.Количество материалов действительно должно быть минимально необходимым, так же как и количество карт, так же как и количество треугольников. 
2016-03-01
[quote=Мартинер] "Каждый 3D художник в своей жизни хотя бы раз пользовался Smooth-group (для Blender модификатор edge split)" разве есть необходимость физического разбиения геометрии, для достижения эффекта групп сглаживания? есть же Mark Sharp + Auto Smooth  [/quote] Mark Sharp (применяется и в случае edge split) и Auto Smooth выполняют ту же самую функцию, в данном случае вопрос удобства применения.Любые смус группы приводят к дублированию vertex и появлению второй vertex normal  в той же точке. Так что в обоих случаях физический смысл идентичен.
2016-03-01
А сколько вообще материалов целесообразно вешать на модель? Или нужно стремиться к 1 модель - 1 материал? Как моделируют дома? Например коттедж. Это один меш, а на нем много материалов? Или стены и окна отдельные меши со своими материалами? Или вообще когда ты снаружи тупо коробка, а когда внутри каждая комната моделится отдельно?
2016-03-01
[quote=Slewnut] А сколько вообще материалов целесообразно вешать на модель? Или нужно стремиться к 1 модель - 1 материал? Как моделируют дома? Например коттедж. Это один меш, а на нем много материалов? Или стены и окна отдельные меши со своими материалами? Или вообще когда ты снаружи тупо коробка, а когда внутри каждая комната моделится отдельно? [/quote]В зависимости от выбранного жанра - если речь идет о стратегии - то тут на несколько разных моделей может одеваться один материал. Если речь идет от тпс/фпс то тут будет набор универсальных материалов и отдельные паки текстур под навесные объекты. Аналогично со внутренним убранством. И материал будет однозначно не один (Если это не Мегатекстура), другой вопрос в грамотном инстансинге текстур, моделей и материалов. На самом деле здесь очень много можно рассказать. Если аудитория будет заинтересована в правилах построения уровня, то возможно мы с коллегой подготовим такую статью. Правда не могу обещать точного срока.
2016-03-01

[quote=IVANMITYAEV] Карты запеченые в xnormal нормально смотрятся во всех движках (думаю не только в xNormal). Лучше бы про flip green channel рассказали. [/quote] Кстати говоря, тут вы сильно заблуждаетесь. Попробуйте вгрузить модель с нормалям xNormal в D3 за исключением Solid и примитивов, думаю эффект вас порадует. А про флип каналов - вопрос непонятен. Незначительное отличие карт нормалей, которое нынче исправляется в движке, в настройках текстуры одной галочкой. Если речь ведется о кодировании нормалей, например о RG, а в B и A размещать другие карты - то это явно уже не для новичков.

2016-03-01
Спасибо за статью. C тех пор как geometry is cheap делаю острые грани просто бевелом. Позволяет применить только одну smooth группу на всю модель, (обычный Shade -> Smooth  в Blender), нет необходимости в модификаторе Edge Split, нет проблем с острыми гранями при запекании карт. Но, конечно, это дополнительная геометрия и дополнительное время на создание геометрии, если хочется clean topology.
2016-03-01
[/quote][quote=White_wh] Если аудитория будет заинтересована в правилах построения уровня, то возможно мы с коллегой подготовим такую статью. [/quote]Спасибо за материал. И я с интересом прочитал бы продолжение про построение уровней.
2016-03-01
Параграф "2. Развертка модели" в существующей редакции достаточно поверхностно описывает суть проблемы, а приведенные рекомендации не стоит считать общими для всех случаев.
2016-03-01
Спасибо, куча вопросов отпала в одной статье
2016-03-02
[quote=Текст статьи]Так в Unreal Engine проявляются первые признаки заторможенности при всего 1000 объектах на экране, ...[/quote] это с учётом инстансных объектов или вообще все объекты ?
2016-03-02
Только начал интересоваться моделированием в целом. Можно ли на один объект наложить несколько карт нормалей? И если да, то насколько целесообразнее использовать несколько текстур и карт нормалей на одной моделе?
2016-03-02
[quote=RedComrade] это с учётом инстансных объектов или вообще все объекты ? [/quote]Речь идет именно о отдельных объектах, инстансинга в ue еще добиться нужно.[quote=NikPiro] Только начал интересоваться моделированием в целом. Можно ли на один объект наложить несколько карт нормалей? И если да, то насколько целесообразнее использовать несколько текстур и карт нормалей на одной моделе? [/quote]В некоторых движках есть разделение на detail normal map и normal map,  в ue можно смешать в материале сколько угодно карт.э, в некоторых движках такая функция не поддерживается. Целесообразность применения зависит от того на сколько материалов приложится доп. карта. Если вместо тридцати разных карт вы используете пять, то есть смысл. Если просто лень сводить в одну, то не советую, это лишняя занятая память, и лишняя операция по сложению.Тут еще возникает вопрос под какую платформу работаете. Если речь о мобильных, то если мне не изменяет память, на одну модель у вас не более 7 текстур.
2016-03-02
[quote=White_wh] в ue можно смешать в материале сколько угодно карт [/quote]Это не совсем верно, текстурных самплеров в движке из-за ограничений шейдерной модели можно использовать до 16 (анриал использует 3 из которых для своих нужд).[quote]Так в Unreal Engine проявляются первые признаки заторможенности при всего 1000 объектах на экране[/quote]Эта часть написанная очень запутывающе. И про "укрупнение". Стоило бы рассказать в таких случаях про инстансинг и дроуколы, и тогда рассказать как можно избежать этого. (Собрать набор мешей в одну большую меш после сборки окружения, или, на примере анриала, использовать инстансинг).Ну и про оклюжен куллинг пару слов сказать т.к. его нужно учитывать при потенциальной сборке мелких  объектов воедино, т.к. это не всегда и не для всего нужно.В любом случае полезная статья, спасибо.
2016-03-02
Все правильно сказал ! :) 
2016-03-03
[quote=deBug] Это не совсем верно, текстурных самплеров в движке из-за ограничений шейдерной модели можно использовать до 16 (анриал использует 3 из которых для своих нужд). [/quote]Спасибо за уточнение[quote=deBug] Стоило бы рассказать в таких случаях про инстансинг и дроуколы, и тогда рассказать как можно избежать этого [/quote] Да, вы правы, можно рассказать еще очень о многом почти в каждом параграфе. И про дроуколы, и про инстансинг (материалов, моделей) и про особенность статических и динамических объектов, и про особенности развертки под разные требования, и про особенности мипмапа... Все же хотелось сделать более общую направляющую статью, что бы новички знали в каком направлении им двигаться дальше и знали на что стоит обращать внимание. В дальнейшем подумаю о написании более технических статей с привязкой к конкретным случаям. Если у вас возникнет желание помочь с такой статьей, я буду крайне рад.
2016-03-03
Модели главных персонажей в такого рода играх отличаются высокой плотностью сетки, и большой детализацией, но редко превышают цифру в 40к треугольников. V next gen igrah ewe kak previshaut Kak priner: Infamous second son - 120k polikov na persa Ya uzhe mol4u pro Uncharted 4
2016-03-03
[quote=Bo3Me3DIE] V next gen igrah ewe kak previshaut Kak priner: Infamous second son - 120k polikov na persa Ya uzhe mol4u pro Uncharted 4 [/quote] Не рекомендую ориентироваться на Next-gen, особенно на заявления разработчиков, в частности по той причине что для данных систем мы не знаем методику оптимизации. По факту, как я уже говорил ранее, разработчик для сцен может(должен но не обязан...) использовать ЛОДы с более высокой детализацией. В случае Infamous - мне не известно что бы кто то все же вскрыл данную игру и смог достать и детально изучить модели, их устройство и систему лодов. Если у вас есть такая информация, прошу поделится - будет крайне полезно. Для Uncharted 4 - игра еще не вышла, и как всегда заявления разработчиков будут сильно отличаться от игровой реальности. Так же будем ожидать вскрытия игры или вскрывать самостоятельно по возможности. Рекомендую пользоваться существующими нормами (оборащаю ваше внимание что для мобильных платформ нормы будут в разы жоще), в противном случае тенденция инди игр, излишне требовательных к железу игрока и в то же время не предоставляющей соответствующего уровня графики продолжится.И все же прошу писать на русском, а не на транслите, либо пользоваться соответствующими сервисами перевода, ибо ваш текст крайне тяжело читается.
2016-03-03
вот из-за таких мега оптимизаторов в играх везде полигончики торчат,
2016-03-03
Почти 3000 просмотров за двое суток, вот что значит актуальный и полезный материал.
2016-03-06
Почитал. Кой чего не знал. Спасибо, ребят. :) [quote=pashechca] вот из-за таких мега оптимизаторов в играх везде полигончики торчат,[/quote]Когда все делается по уму, то в итоге нигде ничего не торчит, выглядит эстетично и тащится даже на стареньких лептопах. "Бабулькам-Дедулькам" тоже ведь надо как-то время коротать в перерывах между "вредными" внуками - кому-то ферму посадить, кому-то побегать-пострелять - и им реактивная машинка ни к чему. ;)
2016-03-07
Честное слово, если бы я был новичком и прочел бы вашу статью, то ничего бы не понял. Материал первостепенной важности, потому это базовые понятия и принципы. Жаль что плохо систематизирован. В комментариях Вы пишете, что это не перевод... Тогда на будущее определитесь на каком языке Вы пишете и либо переводите термины правильно, либо пишите оригинальные латинские названия. За попытку однозначно 5, а за изложение неуд...
2016-03-07
Спасибо за статью!
2016-03-10
Доброго времени суток! Простите за идиотский вопрос, но он в тему об ошибках новичков. У меня есть игровая модель в статичной сцене, модель пирамиды Майя. Состоит из множества объектов, хотя общее количество полигонов всего 2142. Подскажите, есть смысл делать несколько текстурных карт по отдельности на лестницы, на саму пирамиду, на заглавие пирамиды (в виде отдельного помещения) или корректно было бы сделать одну большую текстуру для всей пирамиды в целом, впихав всю эту неслабую кучу деталей на одну текстуру?
2016-03-10
[quote=Алексей-Спб-Арт]Доброго времени суток! Простите за идиотский вопрос, но он в тему об ошибках новичков. У меня есть игровая модель в статичной сцене, модель пирамиды Майя. Состоит из множества объектов, хотя общее количество полигонов всего 2142. Подскажите, есть смысл делать несколько текстурных карт по отдельности на лестницы, на саму пирамиду, на заглавие пирамиды (в виде отдельного помещения) или корректно было бы сделать одну большую текстуру для всей пирамиды в целом, впихав всю эту неслабую кучу деталей на одну текстуру?[/quote] Первоочередной вопрос который возникает - для чего выполнена модель. Если для игры с видом сверху и отдаленной камерой, то имеет смысл держать все в одной текстуре. Если речь о мобильной игре - вопрос оптимизации используемого движка и потребности в нескольких материалах. Теоретически внутреннее помещение и наружное всегда стоит держать раздельно.Если пирамида является локацией - однозначно отдельно. Вопрос выделения материалов подчинен тому же принципу видимости, адекватному использованию пространства UV координат и возможностям движка.
2016-03-19
[quote=White_wh] Особенностью применения данных функций, является умножение числа вертексов для создания Smooth поверхностей. Так же следует отметить, что Shaderы отрабатывают не по треугольникам, а именно по вершинам, что приводит к большей сложности вычислений на моделях, состоящих из большего числа Smooth-group.Именно поэтому рекомендуется создавать игровые модели в одной Smooth-group, прибегая к разделению только в редких случаях. [/quote]Не понятно чем так плохи смуз группы? Что значит умножение числа вертексов? Каких вычислений?
2016-04-27
Отличный материал) Есть вещи, которые стоило бы чуток разжевать для новичков, но в целом - супер. Я сам когда-то хотел написать нечто подобное, но стало лень, так что респект и 10/10 за потраченное время и силы)
RENDER.RU