MOLIER ART STUDIO
Пятница, 19.04.2024, 15:20
Приветствую Вас Гость | RSS
 
Главная Каталог статейРегистрацияВход
Форма входа
Меню сайта
Категории раздела
Уроки по WME [30]
Уроки Photoshop [5]
Уроки 3D Studio MAX [32]
Полезные программы [38]
Статьи [19]
Видео с YouTube [26]
Поиск
Подпишись
QUEST
Наша кнопка


[ Получить код баннера]
Реклама

Теги
Друзья сайта
Он лайн книга
форум по WME
Moя Фото Коллекция
Самоделкин, всё для творческих людей
Коллекция Звуков для игр
Моя библиотека
3koroba
Herzeleid
Дракон №3
Игродел
Мир анимашек
mgd-blog
WOlist.ru - каталог качественных сайтов Рунета
Создание игр, Конструкторы игр, Игровые движки
Коллекция Всё Для Игр
Коллекция картинок
Он лайн книга
Новости
Главная » Статьи » Уроки 3D Studio MAX

Объекты для игр и кино. Часть IV. В поисках unwrap


Объекты для игр и кино. Часть IV. В поисках unwrap

Автор: Иванов Дмитрий (id) 

Небольшая предыстория. 

Я начинал писать эту статью 3 или 4 раза, но каждый раз останавливался, так и не закончив. Потому что каждый раз написанное оказывалось каким-то сложным, запутанным и непонятным. «Ведь анврап — это в принципе так просто!» — говорил я сам себе, матерился и удалял текст. 

Заколдованная тема? Да вряд ли… Скорее, требующая обдумывания и практики. 

Потом я подумал: «А может надо найти примеры из жизни? Ведь должно же быть что-то похожее на эту операцию в real’е». 

Стал сам себе задавать вопросы и сам на них и отвечал. Скриншотил. 

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

Что из этого вышло? 

Читайте ниже… 

Вопрос: Как сделать unwrap? 
Ответ: Аккуратно. Unwrap. Unwrap. Unwrap. 

Многих эта часть процесса создания 3D модели пугает. Особенно когда вы только недавно начали заниматься 3D. 

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

Вот пример unwrap’а из реальной жизни.


Это сделал не я. Эти фотографии взяты из Интернета. Не стоит самим снимать шкуру с коровы или другого животного, чтобы изучить премудрости 3d. 

Вопрос: ОК. В жизни понятно, а какие есть инструменты, чтобы сделать что-то похожее в 3ds max или в другом редакторе? 
Ответ: В 3ds max это — UVW Map и Unwrap UVW. 

А дальше играем, как в квесте. 

Первым делом мы применяем на модель модификатор UVW Map. 

В 3ds max 7 типов mapping’ов. Попробуйте все. Посмотрите, что происходит. 

Вы не забыли? Мы делаем холодильник, а не корову ;-) 

Какой бы вы из 7 типов mapping не попробовали, не забывайте — пиксель должен остаться квадратным! Это связано с тем, что пиксель на экране тоже КВАДРАТНЫЙ. 

Вы должны как-то увидеть, что он квадратный. 

Мы выбрали в качестве тестовой текстуры крупные квадратные «шашечки». Это не случайность. В данном случае «шашечки» — это увеличенные пиксели, изменения в пропорциях которых хорошо видны. 

Вопрос: Как сделать так, чтобы пиксель был квадратный? 
Ответ: Вводить в поля одинаковые значения.


Я наложил не холодильник UVW Map «Box mapping» (c одинаковыми сторонами). Это первый шаг в раскладке Unwrap для данной модели. 

«Box mapping» хорош тем, что охватывает модель со всех сторон и подходит для угловатых моделей, а наш холодильник именно такой. 

Почти правильно.


А вот не правильно.


Хорошо видно, что Gismo (желтенький каркас толщиной в пиксель) прямоугольной, а не квадратной формы. 

Вопрос: Кто такой Gismo? 
Ответ: Это вспомогательная штука, показывающая нам unwrap. 

Хорошо, если бы все было так просто. Применил на холодильник «Box mapping» и готово. 

При использовании «Box mapping» возникают некоторые проблемы с наклонными плоскостями. Обратите внимание на нижнюю часть решетки. Приблизьтесь к модели. Ближе. Еще ближе.


В этом месте Unwrap получается искаженным (сжимается). В этом месте пиксели не квадратные. 

Вопрос: Этим искажением можно пренебречь? 
Ответ: Если наклон небольшой, или часть объекта находится в незаметном месте, или в этой части не будет текстура, на которой хорошо видно буквы/текст, например, — да. 

В нашем случае — искажение в допустимых пределах. 

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

Вопрос: Как сделать отдельный unwrap? 
Ответ: Повторяйте вышеописанные операции, но только над ОТДЕЛЬНЫМИ полигонами. 

Переходите в меш или в поли (или в чем вы там творите) и выделите только те полигоны, на которых есть проблема. 

Опять применяете UVW Map «Planar Map», например, по нужной оси и, вращая Gizmo, делаете его плоскость перпендикулярной полигонам. Не надо стараться добиться 100% точности. Отклонение в 5-10% на данной модели в ее нижней части никем не будет замечено, но не следует забывать об аккуратности. 

На скриншоте видно, какие полигоны я выделил и как повернул Gismo.


Эти операции UVW Map — Edit (Select) повторяются столько раз, сколько потребуется. Если их количество превышает 100 и все это «висит» в стеке — стоит призадуматься. 

Вот пример стека с операциями UVW Map — Edit.


Стек надо «коллапсить». Я про это уже говорил? 

Вопрос: Как еще можно увидеть, что пиксель не квадратный? 
Длинный ответ: Нужно заменить «шашечную» текстуру любой другой, желательно пестрой. 

Далее надо «залезть» в настройки вьюпорта в 3ds max и установить такие значения.


Сглаживание и Mip-maping текстур отключены. 

Вот что мы видим, очень близко приблизившись к текстуре.


Это то самое место, где Unwrap исказился на наклонной плоскости.


Вот еще один пример. Когда стороны «Box» разные. 
Я опять специально ввел очень контрастные значения ДхШхВ.


Вопрос: А какие значения вводить в полях «Box mapping»? 
Ответ: Я предлагаю 2 метра. 

Здесь следует упомянуть про TexelRate (PixelRate). Важное правило: хотите сделать качественный проект — соблюдайте TexelRate. 

Этот же совет я услышал от ведущего художника игры «Max Payne 2» в его интервью несколько лет назад. 

TexelRate (PixelRate) — это отношение единиц измерения длины (у нас это метры) к тому, сколько места они будет занимать на текстуре. Или наоборот :) 

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

Например, холодильник в высоту 2 метра, а размер нашей текстуры 512х512 пикселей. Мы хотим использовать всю площадь текстуры, а значит: 
2 метра = 512 пикселей 
1 метр = 256 пикселей 
0,5 метра = 128 пикселей 
25 см = 64 пикселей 
12 см = 32 пикселя 
… 
1 см = 4 пикселя 
2,5 мм = 1 пиксель 

Получилась вроде как прогрессия или как там это называется? 

А вот еще такая взаимосвязь. Если объект габаритами 2 метра, то на него выделяем текстуру 512х512 пикселей и накладываем «Box mapping» 2х2х2. 
Если 1 метр, то 256х556 пикселей — «Box mapping» 1х1х1. 

Вы не забыли, основная текстура 512х512, а на стекло 256x256? 

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

Все надо учитывать и обо всем помнить. Особенно в начале, потом многое делаешь на автомате. 

Вопрос: А если 1024 текстура? На объект какого размера ее надо наложить? 
Ответ: Это будет другой тексель. 1024пикс/2,5мм = 400мм = 4м — «Box mapping» 4х4х4 

Вот такая текстурная математика.


Исходя из этих вычислений, у нас на 1 пиксель текстуры приходится 2,5мм реальной высоты. 

Чем-то напоминает масштаб на картах, типа «в 1 см — 300 м». 

Эти вычисления относительные. 100% точность тут не нужна. 

В итоге при соблюдении этих правил у нас все пиксели в игре будут одинакового размера и рядом стоящие объекты будут смотреться корректно. Пример из жизни пока привести не могу. 

Вопрос: А почему в 1 пикселе только 2,5 мм? Почему в 1 пикселе не 1 мм? 
Ответ: Количество пикселей на миллиметр зависит от назначения объекта, от игры, для которой он создается. 

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

Но есть и минусы. Большие текстуры сложнее, их иногда дольше рисовать. Они много «весят» и «жрут» все ресурсы — и людские, и аппаратные. 

Еще существует определенная взаимосвязь между разрешением текстур и устройствами вывода информации. Например, на обычном ЖКИ-мониторе вы без искажений можете увидеть только 1280 пикселей в длину и 1024 в высоту.


Приведу еще один пример с картинками. Чтобы увидеть это, надо как минимум 2 объекта с разным текселем.


Это еще можно описать так: «Где пусто, а где густо». 

Разница достаточно большая, приблизительно в 4 раза. При небольшой разнице это не так видно, но все же заметить можно. Проще соблюдать тексель — и все. 

Объекты, где TexelRate высокий, выглядят детализированными и фотореалистичными, а другие рядом с низким TexelRate — рисованными и игрушечными. Это сразу понижает качество картинки и веру в ее реальность. 

Вопрос: Наложили mapping, что дальше? 
Ответ: Раскладываем пазл!


Запускайте модификатор Unwrap UVW и смотрите, что вышло. 

Сначала будет хаос!


Наверное, это можно упорядочить и руками, как Золушка, но есть средства, автоматизирующие процесс. 

Ищите в меню mapping.


Получаем такую картинку. При этом Texel Rate может нарушиться, и этого не нужно бояться. Мы его легко восстановим! 

Ведь мы помним — холодильник по высоте почти 2 метра, а значит, занимает почти 512 пикселей.


Это нам и предстоит раскладывать! Здесь каждая плоскость отдельно. 

Выбираем основные элементы объекта. Выделяем их. Перемещаем. 

Вопрос: Какие элементы выбрать? 
Ответ: Те, которые видны лучше всего, основные элементы.


3ds max вам подскажет, в отличие от пазла, какая часть стыкуется с другой. 
Изучите меню Unwrap UV, там много операций, похожих на обычный моделинг: mirror, weld, преобразования vertex-edge-face, scale и т.д. 

Работает Angle Snap — для удобного вращения. 

Я выбрал боковую и фронтальную часть. В данной модели это главное, на мой взгляд. Размещаем их оптимально на доступной площади текстуры (жирные синие линии) и затем, выделив весь unwrap, масштабируем его. Если это не сделать и отмасштабировать только боковую и фронтальную часть — нарушится Texel Rate. 

Вот это фрагмент с увеличением. Вся площадь текстуры должна быть использована оптимально. Не должно остаться пустых мест! 

Обратите внимание на ориентацию объектов. Я поставил холодильник в анврапе так же, как и в реальном мире, а ведь мог на бок положить!


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

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

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

Резюмирую все вышесказанное — надо добиться одинаковых квадратных пикселей на всех поверхностях всех объектов в сцене (проекте) и аккуратно сложить unwrap-пазл. 
Я привел в пример несколько методов и подходов к обнаружению ошибок и решению этих задач. 

Теперь ваша задача разобраться с этим с помощью тренировок. 

Удачи. 

Продолжение следует.

P.S. При подготовке данной статьи не пострадала ни одна корова.
-->ЧАСТЬ 5 -->


Все права защищены © Иванов Дмитрий aka i.d. При цитировании ссылка на cgtalk.by обязательна.


Источник: http://cgtalk.by
Категория: Уроки 3D Studio MAX | Добавил: Molier (07.09.2011) | Автор: Иванов Дмитрий aka i.d W
Просмотров: 669


Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Моя книга
$пасибо
Поддержите сайт
Мини-чат
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Форум по WME
  • Moя Фото Коллекция
  • Всё для дачников
  • Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0


    Кто on-line?
    Кто нас сегодня посетил
    Пользователи
    Гости
    Статистика стран
    web counter
    free counters
    Глобус
    ClustrMaps
    Счетчики
    Рейтинг@Mail.ru
    Рейтинг сайтов

    Copyright MyCorp © 2024
    !!! На сайте могут находиться статьи, которые, честно и не помню, откуда они у меня появились, одним словом нет информации о первоисточнике и авторе, если на них наткнётся автор, просьба к нему написать мне, чтобы я смог поставить ссылку на источник. !!!