Elite Games - Свобода среди звезд!

Звездный арт - Раздел уроков - Моделинг. Сборник трюков, хитростей и уловок.

Способы экономии полигонов, детализации объектов и оптимизации труда моделлера при низко-полигональном моделировании и не только. — Сборник трюков, хитростей и уловок. ..


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

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


Раздел первый — Методы оптимизации при работе с полигонами.

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


Метод экономии 1 – Невидимые полигоны.
Самый первый и самый простой способ.
Всё что требуется, это найти те полигоны которые невидны когда рассматриваешь модель.
В основном они обнаруживаются ещё в процессе моделинга, чаще всего на тех элементах декора что создавались из отдельных элементов(цилиндры, сферы , боксы и прочее) и крепились к корпусу снаружи, при этом забывалось удалить те полигоны которые целиком ушли в корпус. Второй шанс найти их вам предстоит когда вы будете делать текстурную развёртку, тогда будут появляться непонятные лоскутки принадлежащие непонятным полигонам, спрятанным в недоступных местах. Удаляются они из модификатора Edit Mesh или Editable poly кнопкой delete.

Метод экономии 2 — Внешняя деталь.
Практически все внешние детали на корпусе нельзя делать экструдом из этой плоскости, в противном случае полигонов будет больше. Внешнюю деталь надо делать отдельно, а затем ставить её на эту плоскость.
К примеру вы делаете такую деталь (квадратный блок) при помощи экструда.



После экструда у нас появляется «коробочка» на корпусе и мы видим что это потянуло на 52 полигона(4ый стоп кадр) . А теперь попробуйте этот блок оторвать от корпуса, а дырку, что образовалась под ним, сравнять до такого состояния, как было до того как вы делали этот блок (то есть как в 1ом кадре). После этого верните этот блок обратно на корпус, в то же место где он и был и приаттачьте его при помощи инструмента attach. У нас уже не 52 а 44 полигона. Что и требовалось. Однако не стоит слишком злоупотреблять такими вещами, ведь под блоком у нас находиться плоскость и движок будет её рендерить и тратить на это какое-то время, по этому очень большие элементы можно всё таки делать экструдом.
ЗЫ Для того что бы не отрывать постоянно блоки, и не зачищать под ним дыры, всё что вам надо так это выделить и продублировать ту плоскость на которой вы хотите сделать деталь, затем на дубликате вырежьте любую нужную вам деталь, а ненужные куски дублированной плоскости, что не вошли в деталь просто удалите, при этом у вас останется деталь, в нужном месте, она будет висеть над той плоскостью, с которой вы делали дубликат, располагаться деталь будет очень правильно, параллельно той плоскости на которую вы её и ставите. Осталось приаттачить к ней блок и всё.

Метод экономии 3 – Конусы.
Тут лучше не объяснять, а сразу показывать на примере.



У нас есть некоторые детали, в данном случае трубы, они входят в корпус, в анимации вы видите что мы просто те концы что уходят вовнутрь, колапсим в одну точку и затем оттягиваем, что бы грани (уже конуса) были как можно более параллельны, тем самым экономии полигоны. В данном случае, до и после операции было соответственно 68 и 40 полигонов. То есть 18 сэкономленных полигонов я могу потратить на другие детали. :)

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



Внутреннюю часть я коллапшу в точку и втягиваю вовнутрь, ставлю квадратную заглушку (жёлтая деталь на анимации) что бы конус не уходил в корпус (он ведь может быть и дальше). И всё.
До и после процедуры полигонаж выглядит так — 80 и 60 полигонов соответственно, то есть 20 сэкономленных полигонов можно опять потратить на свои нужды.

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



На первом кадре у нас дом состоящий из 140 полигонов , затем я все вогнутые элементы превращаю в единую деталь из 8ми полигонов, которая идёт через весь дом от первого до последнего этажа, а все выпуклые элементы я зачищаю от образовавшихся дыр и фактически превращаю в набор из пяти 12ти полигонных боксов. В итоге дом визуально не изменился, а вот количество полигонов существенно поубавилось с 140 до 68. А это больше чем в два раза. :)

Ещё один наглядный пример.



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

Метод экономии 5 – Грани.
Наверно это мой любимый трюк, хотя конечно определить сложно, все они служат одной цели, просто этот трюк очень сильно помогает в лоу-поли моделировании. На самом деле это не совсем метод экономии, это метод демонстрации детальности. Фактически это трюк, делающий модель более детальной, при том же количестве полигонов. Плюс это хороший помощник, когда наступит, процедуры наложения анврапа.
Начну я с наглядных примеров.



Ну как уже догадались? Да всё действительно элементарно, уверен, что многие из вас это знали! В данном примере мы имеем две одинаковые детали на плоскости, но ближняя, в отличие от дальней, имеет скосы по бокам. В разрезе это выглядит так:



Вот более наглядно о скосах, вид ровно сверху:



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

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



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

У этого способа есть маленький минус, [теряющийся среди больших плюсов], когда мы планарим эти детали то на скосах текстура немного потянется, поскольку они не лежат на плоскости планара, а находятся под углом, но это заметно только при детальном рассмотрении. И вообще насколько сильно потянется текстура, зависит от угла пологости этих скосов. По моим подсчётам, оптимальный вариант – 40-45 градусов, и деталь со всех сторон видна и достаточно объёмная и анврап тянется совсем немного.

Метод экономии 5_2 – Быстрая детализация.
Это касается больше хай-поли моделирования, но всё же подойдёт и к лоу-поли.
И так это трюк — способ быстрой детализации, при сохранении анврапа. Для этого сначала сделаем анврап а затем сделаем быструю детализацию:



Думаю объяснять процесс не надо, и так всё видно. Наверное надо только заметить что инструмент которым я сделал эту деталь называется «Cut» находиться он в модификаторе «Editable Poly» и по дэфолту вызывается шорткатом – Alt-C
Самая основная фишка этого трюка в том, что он создаёт анврап для этой детали на уже готовом анврапе, это можно увидеть на левом и правом скринах. На левом до детализации, на правом – после. Как видите все полигоны имеют свой анврап, и эти детали не надо повторно анврапить, главное не делать их слишком глубокими или выпуклыми, иначе текстура в тех местах очень сильно потянется.

Вот ещё один способ применения:



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


Поскольку я плавно перешёл к анврапам, то наверное пора открывать вторую часть этого урока — Методы оптимизации при работе с анврапом.

(Правило 5) Все стороны текстуры должны быть кратны двойке, то есть 2 4 8 16 32 64 128 256 512 1024 2048 4096 и так далее.
К примеру, 512х512 или 256х128 или 1024х2048. Главное что бы вторая сторона была или такого же разрешения или в два (ну максимум в четыре) раза меньше или больше первой стороны. К примеру 512х2048 (разница между сторонами текстуры в четыре раза(это придел)), 2048х1024 (разница между сторонами текстуры в два раза) и т.д.

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

Примеры:


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

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

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



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

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



При этом остальной корпус (обе половинки) всё ещё сложен и остаются лежать на одном месте.

(Правило 7 — совет) Если у вас модель симметрична, то обязательно разделите полигоны по линии симметрии. Эта процедура сэкономит вам время, как на создании анврапа так и не текстуре, единственный минус, так это то, что немного увеличиться количество полигонов.



Методы экономии 7 – Дублирование.

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

ЗЫ Проще всего будет если вы предусмотрительно ещё в процессе моделирования сделаете анврап этому элементу, пока он является отдельным мешем, и только потом продублируете и расставите дубликаты по своим местам.

Методы экономии 8 – Аутсайдеры.

Помните метод оптимизации 3 – «Конусы»? Так вот у вас скорее всего появятся некоторые лоскутки, достаточно длинные, но не требующие анврапа, то есть это те куски меша, что уходят глубоко в модель.



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



Методы экономии 9 – Прямоугольная текстура.

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



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



По этому если мы хотим (а мы конечно же хотим :) ), что бы текстура была у нас прямоугольной, то мы просто располагаем все лоскутки анврапа на какой то одной его части, визуально определив сколько место вам надо и поделив весь текстурный квадрат на четыре равные части (по две с половиной клеточки). Осталось понять сколько места вам надо или 1 / 2 или 1 / 4 текстурного квадрата. В данном примере мне понадобилась 1 / 4.
Теперь воспользуемся утилитой «Texporter» что бы перегнать наш анврап в 2д картинку, с дальнейшей обработкой её в фотошопе или другом 2д редакторе.

О программке «Texporter» я подробно расписал в специальном уроке — http://www.elite-games.ru/art/start/spark4.shtml

Согласно правилу 5, я задал размер сторон в 512 пикселей по высоте и 512 по ширине и в итоге получил текстурную развёртку, в принципе готовую, к текстурированию:



Однако нам надо сделать из неё прямоугольную текстуру, по этому мы открываем её в фотошопе, и далее заходим в Image -- > Canvas size



Согласно правилу 5 я выставляю размер второй стороны в четыре раза меньше чем первой, то есть 128 пикселей и жму «Ок». Результата – прямоугольная текстура.



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



Прямоугольная текстура размером 512х128 растянулась на весь текстурный квадрат. На этом скриншоте анврап нашей ракеты я подвинул немного в сторону, что бы не мешала. :)
На самом деле всё очень просто, просто вам надо анврап ракеты растянуть точно так же в сторону, увеличив ровно в четыре раза, так что бы все точки анврапа совпали с точками на текстуре. Процесс совсем не долгий, тут главное что бы левая-верхняя и правая-нижняя (по диагонали то есть) точки анврапа совпали с текстурой, остальные и так окажутся в правильном месте. :) Изменения видны на модели, никаких иcкажений небудет. Проверено! :)


ЗЫ Есть ещё методы оптимизации, детализации, и прочих благ, но рассказать о всех я просто не в силе. Тут самые основные, остальное сами придумаете, я так думаю! :)

Творите на здоровъе!!! :)



101799876 — ICQ
sparks@elite-games.ru
sparks@uct.ua
спрашивайте, отвечу!



SS116
22.08.06

К началу раздела | Наверх страницы Сообщить об ошибке
Звездный арт - Раздел уроков - Моделинг. Сборник трюков, хитростей и уловок.
Все документы раздела: Урок9 | Контрасты | Объем и светотень (часть первая) | Принцип смальты (междусловие) | Как из скрина сделать картинку | Иллюстрация (процесс рисования) | Умирающее солнце | Солнце в астероидах | Вырезаем картинку из фона | Металлическая фактура на плоских объектах. | GiF - анимация. | Базовый лоу-поли моделинг | Реалистичная планета в 2д | Базовый лоу-поли моделинг | Создание текстурной развёртки в 3D Max 7 | Рисуем звезду Elite Games | Рисуем звёздное небо в фотошопе. | GiF - анимация. (Смайл) | Космический корабль при помощи фотошопа | Тайловые текстуры | Создание текстуры металла | Рисуем туманность 1 | Рисуем туманность 2 | Моделинг. Сборник трюков, хитростей и уловок. | Texporter - 2d эксортер. | Аниме персонаж. Вид спереди. | Аниме персонаж. Глаза. | Аниме персонаж. Причёски. | Аниме персонаж. Эмоции. | Рисование аниме персонажа в профиль. | Рисуем аниме персонажа в Фотошопе. | Рисуем просторы космоса | Красивая планета | Рисуем персонажа (скоростное рисование) | Создание концепта космического корабля в связке редакторов Google SketchUP + Photoshop | Создание персонажа в полный рост |


Дизайн Elite Games V5 beta.18
EGM Elite Games Manager v5.17 02.05.2010