Низкополигональное моделирование и развертка объектов

Привет! Я Селезнев Сергей. В данный момент являюсь сотрудником воронежской компании ORION Games. Тема моего урока будет посвящена проблемам низкополигонального моделинга и развертки объектов, а так же ошибкам, которые допускаются при этом наиболее часто. Представленная ниже тема будет рассмотрена на примере построения низкополигональной модели техники. Метод построения исключает просчет нормал мапа и призван сделать акцент именно на оптимизации построения низкополигональных объектов.

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

Итак, в качестве примера изготовим модель американского вертолета AH-1G Кобра (рис 1.)


AH-1G “Кобра”

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

Пример:

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

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

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

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

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

Первое что приходит на ум сделать половину модели и так как она симметрична, отразить получив при этом нужный результат. Минусы возникающие при этом: первое - текстурный шов, появившийся в результате отражения объекта, подобная вещь при взгляде в фронта очень сильно бросается в глаза из за зеркальности текстуры; второе -допустим у авто есть плоская крыша, если она сделана просто плоскостью то имеет 2 полигона в случае отражения 4, подобные вещи можно встретить несколько раз пройдясь по шву. После операции отражения избавляемся от подобных вещей в ручную . Оптимальный вариант зеркалить боковые поверхности, у игрока не будет возможности увидеть их одновременно, пусть он будет знать что они идентичны но это не будет резать глаз. От центрального шва мы избавимся с помощью наложения координат в фронтальной плоскости.


Рис.1


Рис.2


Рис.2а


Рис.3

Первоначально изготовим корпус вертолета (рис 1.) смоделим половину фюзеляжа.

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

На рис.3 показано правильное изготовление хвостового оперения и сопла турбины с заглушкой.


Рис.4

На рис.4 приведены примеры, на мой взгляд, наиболее часто встречающихся ошибок моделинга, голубой цвет - ошибочное построение, серый - правильное. 4.1 - непосредственно заглушка турбины нашего вертолета; 4.2 - по умолчанию при создании цилиндра макс создает модель в mesh. Вскрыв торцевые грани, мы получим третье изображение, сконвертив в poly. Грани располагаются в ином порядке, что ведет к уменьшению количества полигонов; 4.3 - частая ошибка при создании подобных конструкций ;.4 - пример создания автомобильного колеса; 4.5 - оконные рамы; 4.6 - сточные, сливные трубы. Внимательно просмотрев геометрию, можно найти много подобных ситуаций.


Рис.5


Рис.6

На рис.5 представлено изготовление несущей части главного винта. Старайтесь избегать острых углов геометрии, даже если визуальная толщина объекта к тому призывает, это всегда плохо смотрится (рис.6). Главное крыло представлено на рис.7, синий вариант - неправильный. Рис.8 - кабина пилотов, в нашем случае ГГ непосредственно в кабине не предвидиться, следовательно, детализация особых затрат не требует. Вооружение (рис.9) в наличии имеет много объектов цилиндрической формы. Количество полигонов в сечении данной геометрии имеет особое значение, если обзор возможен с торца. Если же, например, вы подошли к трубе и смотрите на нее сбоку, то разница 10 или 18 sides будет мало различима. Рис.10 - посадочные лыжи в сборе, ситуация аналогичная основному крылу. Делаем стекло кабины, добавляем немного мелких деталей для оживления картины и получаем результат рис.11


Рис.7


Рис.8


Рис.9


Рис.10


Рис .11

Теперь о развертке

Наибольшую площадь очевидно занимает корпус. Недостаток - элемент имеет большую длину по отношению к высоте. Разбиваем объект на две части. Основные принципы расположения швов на модели:

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

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

- располагайте швы в труднодоступных для обзора местах, местах куда взгляд падает во вторую очередь;

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


Рис.12


Рис.13


Рис.14

Всевозможные надписи, символы и обозначения:

Первый и самый простой вариант: все обозначения, выполненные непосредственно на текстуре, должны содержать только те символы, которые в процессе отражения объекта будут корректно отображаться - например, A,I,O,X цифры 8,0,1; второй способ - добавление сечений к объекту, вырезается некоторая область с уникальным мапингом, на которую кладется текстура с обозначением; и третий вариант - линкование к объекту простой плоскости с прозрачностью, но здесь может возникнуть часто встречающаяся проблема некорректной работы Z-буффера движка;

Далее оценим оставшуюся геометрию. Нам необходимо выделить базовые, преобладающие текстуры вертолета. Что мы имеем:

- темный, практически черный металл на лопастях главного и хвостового винта, также данный металл встречается на посадочных полозьях;

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

- не затекстуренными остались крылья, основное и хвостовое;

- металл, схожий с основным, но имеющий коричневый оттенок применяется на корпусе кассеты с ракетами и на носовой башне;

- непосредственно торцы кассет;

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

- текстура внутренностей кабины: непосредственно ткань кресел, приборные панели;

- каркас кабины, имеющий желтую окантовку;

- стекло кабины;

- пулеметная лента;

Вроде бы, все. Наша задача расположить на оставшемся месте Unwrap все выше перечисленное. Я не буду располагать все элементы на поле Unwrap дабы не загромождать его, покажу только наиболее габаритные, чтобы обозначить границы участков. Всегда лучше ориентируйтесь на самый большой объект, если будут объекты меньшего размера с той же текстурой, то они без труда встанут на отведенное им место поля, чего нельзя сказать в обратном случае. Очевидно, что стекло кабины больших затрат не требует, так как полупрозрачно, на каркас кабины достаточно будет изготовить небольшую полоску черного цвета, имеющую желтые канты по краям, и аккуратно расположить на ней полученную развертку. Такие симметричные объекты как крылья, ракетные кассеты, посадочные лыжи нет смысла разворачивать дважды, после развертки одной делали скопируйте ее на другую сторону. Здесь есть минус - такие объекты как ракеты, расположенные близко друг к другу при копировании будут очень бросаться в глаза из-за схожести текстуры, поэтому есть смысл произвольным образом повернуть из вокруг своей оси. Аналогичная ситуация возникает на рис.14, участки, выделенные зеленым цветом, при указанном направлении мапинга будут повторятся, их местоположение меняем вручную.

Итак, рис.15 - вот что мы получаем, повторю, развертка содержит только часть объектов, дабы рисунок был менее загроможденным. Общий вид модели представлен на рис.16, рис.17 аналогичная модель американского вертолета Ирокез. Таким образом раскладка объекта выполнена, количество затраченных полигонов 4946, задание можно считать выполненным. На этом все. Заранее спасибо!

Mail to: Al_sergio@mail.ru


Рис.15


Рис.16


Рис.17

706 0 850 55
40
2006-04-19
хороший урок ставлю пять
2006-04-20
вау!!! Я как раз интересуюсь низкополигональным моделингом для игр!!!СПАСИБО ЗА УРОК!!!!
2006-04-20
круто
2006-04-21
Отличный урок!
2006-04-21
2006-04-22
так держать!!!
2006-04-22
Привет Воронежцам! :) - отличный урок! - расписано "все по полочкам" - не только для новичков, но и для профи, мне этот урок многим чем помог.....
2006-04-24
А мне картинки понравились, первая и две последних.
2006-04-24
мне тоже первая картинка понравилась, особенно рендер
2006-04-25
В пятерочку :-)
2006-04-25
Мужики, во первых всем спасибо за положительные отзывы я рад что кому то эта информация принесла пользу, хочу пожелать дальнейших успехов в работе Во вторых, хочу высказаться, попробую без мата Голосование давно перешло в разряд "у кого больше корешей" , один "гуру" высказывает свое отрицательное мнение и все подхватывают, положительное - и всем все сразу нравится. Осаживать одного отрицательным баллом для того что бы поднять другого мягко говоря не есть хорошо. Или у здесь теперь такая политика ? Отпиши мне и скажи вот это и вот это здесь никуда не годится, это не правильно, ставлю минус, я либо соглашусь с тобой что да, здесь я налажал, либо буду отстаивать свою точку зрения, че там за волчара позорный завелся ?!! Мне жаль что такое отношение имеет место быть и в принципе я не испытываю уже никакого позитива от написанного урока Надеюсь что все таки кому то мой опыт помог
2006-04-26
Чистенький грамотный моделинг. Неплохой урок. Молодец. Надо конечно было доработать материал и поставить в картинку, думаю выглядело бы крааасиииво. :)
2006-04-26
Кстати, насчет того что гуру высказывает и как ты не совсем прав, мне например глубоко как бы это сказать . ну все поняли, что и как говорят про уроки, я сам оцениваю. Думаю что так делают и все остальные. Просто например у тебя получилось суховато, я бы сказал что можно было подать с материалом а не с безликими цветами ну и по мелочи еще. Но урок простой и хороший. А вот урок про подгонку цветов был (кстааатти, работа над мобильными стендами -наредкость неблагодарное ремесло - 1. тебя не ценят и не понимают (вокруг то все менеджеры) 2.платят мало а хотят много ) Ну вот. Ну человек написал неудачный урок. СОВСЕМ. Поверь если бы даже все гуру хором кричали что урок супер, положение бы не изменилось.
2006-04-26
отличный урок по лоу поли... хоть я в лоу поли вообще профан... высшие балы поставил ещё 20-го числа... и именно потому,что я в лоу поли не понимаю ничего, поэтому и не оставил свои коментарии.а вообще моделинг грамотный... было бы интересно про текстуры узнать поподробнее...
2006-04-29
ставлю 5+ нормальное изложение информации с наглядными примерами,
2006-04-29
krutoi urok toze stavliu 5
2006-04-30
отличный урок!
2006-05-03
классный урок 5+
2006-05-04
Good 5+
2006-05-04
очень хороший урок но есть несколько комментариев относительно примеров неправильного моделлинга - рис.4 - всё с точки зрения графического программера, ответсвенного за визуализацию всего этого в real-time. >> - 4.3 - частая ошибка при создании подобных конструкций ; тут как раз всё наоборот, если учитывать что модель для real-time: fillrate, сложные пиксельные шейдера, проблемы при освещении lightmap, etc. >>4 - пример создания автомобильного колеса; аналогично. если real-time движок поддерживает оптимизацию в triangle strips/trifans, то указанный вами неправильный вариант становиться правильным, а правильный - неправильным. т.е. такие "общие" рекомендации по моделированию очень сильно зависят от движка для модели.
2006-05-05
по сути правильность\неправильность заключается в количестве трианглов потраченных на одну и ту же форму, в правильном варианте их меньше
2006-05-07
Трудно рассмотреть, что к чему прикреплено, но есть один ньюанс. Нельзя допускать 5 и более угольных полигонов, если речь идет о лоу поли, а следовательно, играх. Во всяком случае, так меня учили :)
2006-05-11
To: Leo Go Bezerk Обсалютно с тобою согласен. При лоу моделирование допустимы только четырёхугольные полики, иначе при использовании сглаживания будут появлятся не жилаемые затемнения или засветы.
2006-05-15
просто надо контролировать триангуляцию и все
2006-05-15
azazello целиком и полностью согласен, все зависит от особенностей работы конкретного движка пиксельное освещение объекта требует корректива при построении
2006-05-16
Селезнев Сергей, Не обращай внимание на нечестных оценщиков, а урок твой хорош, и помог мне например, я его и друзьям передам, вот видишь польза какая...:) 5 баллов
2006-05-18
Ну может кто-то и восппротивится, но моделинг с использованием не только quad и tri - не совсем хороший тон, а особенно для человека, который занимается этим профильно. Тем более будь моделька посложнее - сложновато бы выходило.
2006-05-19
>Ну может кто-то и восппротивится, но моделинг с использованием не только quad и tri - не совсем хороший тон, а особенно для человека, >который занимается этим профильно да воспротивлюсь. я уже написал и еще раз напишу, если кто не понял- просто надо контролировать триангуляцию. А как это моделлер делает- на уровне невидимых или на уровне видимых эджей- не важно, он делает так, как ему удобно. я например делаю все на уровне видимых граней, модель состоит только из трианглов.
2006-05-22
Держи пятерку, коллега! Сразу видно человека с глубоким знанием вопроса!
2006-06-01
Поздравляю,коллега!!!! так держать!
2006-06-05
Всем поддержавшим меня хочу выразить благодарность Надеюсь что мой опыт многим принес пользу Спасибо !!!
2006-09-11
Очень полезные сведения.
2006-09-11
Заслуженная победа.
2006-09-12
Всем начинающим рекомендую. Очень полезно.
2006-10-25
Интересный способ!
2007-01-27
отличный спасибо
2007-03-11
Тёзка, от кодера-маньяка те лучшие пожелания. Все бы так модели делали...
2010-02-09
Автору спасибо! Если не затруднит, не могли бы подробнее описать: > >После назначения планарного мапинга присваиваем тестовый материал checker, смотрим соотношение масштаба и потяжки . >Данная операция особо важна для частей одного объекта (фюзеляж, разбитый на двое ). Мапинг делается более крупным, если >необходимо подчеркнуть какой-либо элемент (надпись, приборную панель, какие либо царапины и потеки). Все потяжки >исправляем в ручную. > Для чего это делается, я не совсем понял? (имеется ввиду назначение карт Checker) Что в этом случае необходимо увидеть, проконтролировать? Спасибо!
2010-03-19
Спасибо за урок. 2 Maksим Делается это для того, чтобы увидеть где текстура будет растягиваться, масштаб частей мэппинга относительно друг друга. Автор так и написал: [quote]смотрим соотношение масштаба и потяжки [/quote]
2012-11-09
[quote=Kohan] Обсалютно с тобою согласен. При лоу моделирование допустимы только четырёхугольные полики, иначе при использовании сглаживания будут появлятся не жилаемые затемнения или засветы. [/quote] Простите, а какое сглаживание, если модель лоу? Я знаю что при меш\туробсус модель стягивается, а вот в геймдеве по логике вещей как раз допустимы 3 вершины, т.к. там сглаживание - текстурное. Я могу быть конечно не прав.Другое дело тринаугуляция как потом проходит, но я вообще не знаю нужна она или нет, я так понял от движка игры зависит. За статью спасибо большое! Очень интересна эта тема и очень полезно. Принцип понятен, но ограничения лоу поли на мой взляд в уроке очень высоки, подобные модели годны для уровня игр 2007 года. Сегодня на мой взгляд можно делать качественней, особенно напрягает если в играх заметны неровности на цилиндических поверхностях.) Достаточно посмотреть моды на облу и ГТА 4 - вполне качественные модельки, под 60к(авто в гта4) полигонов, вполне себе норм крутятся в играх. Но впринципе статья очень актуальна для мобилок. И всё таки хотелось-бы поподробнее! Особенно про текстуринг\нормалл. Как в играх glossy и тому подобные эффекты делаются. Какие карты как сделать для полноценной модели etc.
RENDER.RU