Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ponimayka1

.pdf
Скачиваний:
149
Добавлен:
07.06.2015
Размер:
37.11 Mб
Скачать

Кстати, в ходе этой работы были найдены невыявленные ранее, легкие «косяки». И хорошо, что они были. Есть повод обратить на них внимание.

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

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

Убив ее, «облегчаем» модель, работу - программе, а свою душу - от греха...

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

521

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

Теперь берем корпус.

Мы уже говорили, что, невзирая на все загибоны в его форме, по сути это - коробка с четырьмя сторонами: две лицевых (плюс вдавленная часть) и две боковых. А значит мы легко можем позволить себе обмапить их тем же планаром.

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

Так текстуровщику легче будет воспринимать модель и красить ее.

522

Мапим стороны, как обычно, поочередно, выбирая грани сторон и набрасывая планары.

Двигаем все это в разные стороны, чтобы пока ничто не мешало друг другу. И получаем стройную шеренгу из выкроек.

523

На желтый цвет модели не обращайте внимания. Это очередной милый OpenGL-ный глюк MAYA 6.5. Подходим к последнему моменту создания UV-листа для корпуса.

Вопрос: Могли бы мы оставить выкройку в уже готовом виде?

Ответ: Формально говоря - ДА! В принципе нам ничего не мешает иметь на одном листе не перекрывающие друг друга выкройки сторон корпуса.

Но каким тогда должен быть размер листа при такой раскладке?

Вспоминаем наши рассуждения. По 1200 пикселей должно приходится на пространство, занимаемое высотой выкройки. Но кому тогда нужно пространство над полученными кусками в верхней половине квадрата?

Слышу крики особо продвинутых читателей: «А почему нельзя было заполнить оставшееся пространство выкройками всех остальных накладных деталей. Например вот так.»

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

524

Поэтому возвращаемся к выкройке корпуса и принимаем наглое решение.

Увеличиваем (равномерно по обоим направлениям, чтобы не терять пропорции!) размер выкроек и размещаем их друг поверх друга так, чтобы они заполнили весь квадрат.

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

Аочень просто! У нас будет два листа ювишек. Один лист с выкройками боковых сторон.

Иодин лист для граней, составляющих фасад и тыл модели.

Разделение производится по очень прозрачной методике, основанной на том, что команда UV snapshot, с помощью которой производится снимок выкройки, работает не только при выделенной в камере модели, но также и для отдельных выделенных граней.

Так это же нам и требуется! На одной выкройке нам нужны грани боковушек колонки, а на другой - только фронтальные и задние (не хотелось их так обзывать) грани.

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

Но мы же собираемся стать совсем взрослыми мальчикам. И поэтому пойдем другим путем а заодно познакомимся с тем, каким удобным средством может выступать Texture Editor в плане выбора компонентов объекта.

Начнем отделять фасадные и тыловые грани. В окне Texture Editor выделяем на выкройке по одной-две UV вершины на каждой выкройке.

Затем выполняем в Texture Editor супер-команду Select=>Select Shell.

525

И получаем такую картину (внизу) - все ювишки, принадлежащие выкройке нужных нам граней, на ней выделены.

Теперь надо это превратить в грани. Ничего не трогаем. Выделения ювишек не снимаем.

Втом же меню Select выбираем Convert Selection to Faces.

Ивсе нужные грани оказываются выбранными.

Теперь надо сделать снимок выкройки Внимание! Ничего не трогайте руками. Выделение граней должно быть еще активно! Используем команду UV Snapshot.

526

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

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

Одна выкройка готова. Теперь надо также быстро и ловко выбрать оставшуюся часть. Для этого надо просто инвертировать выбор граней.

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

Повторяем операцию UV Snapshot для выбранных граней.

Работа сделана. В результате имеем шесть листов выкроек, которые потом превратятся в шесть файлов текстур. Эти текстуры будут наложены на разные объекты (накладные детали) и на две разные порции граней колонки.

На грани корпуса приходятся две текстуры:

out_parts.tif и inner_part.tif, каждая по 1 2 0 0 x 1 2 0 0 .

out_parts.tif

1 2 0 0 x 1 2 0 0

inner_parts.tif

1 2 0 0 x 1 2 0 0

На остальные части еще четыре более мелкие текстуры.

dinamik2.tif

5 5 0 x 5 5 0

subwoofer.tif

3 8 0 x 3 8 0

hearts.tif

2 5 0 x 2 5 0

gaiki.tif

1 5 0 x 1 5 0

Дальнейшее сравнение скорости рендеринга показало следующие результаты:

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

Незначительный выигрыш, скажете вы?

Когда в сцене таких колонок пять и плюс еще 600 - 800 объектов, все эти выигранные секунды складываются и дают ощутимое сокращение общего времени просчета всех последовательностей для эпизода.

528

Сделаем выводы.

Overlapping mapping - прогрессивный подход.

Его достоинства: помогает существенно экономить и рационально использовать UV пространство модели.

Его недостатки: требует предварительного планирования работы и анализа модели.

В UV-маппинге нет канонических правил. Это дело живое и требует разных подходов в различных ситуациях.

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

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

UV-координаты и NURBS-поверхности

Потаскав за вершины в Texture Editor, вам возможно захочется сделать что-нибудь подобное с UV-координатами сплайновых поверхностей, представляющих собой, по умолчанию, идеальную прямоугольную сетку. Такая возможность есть, однако использовать ее в реальном деле будет довольно проблематично.

Выбрав сплайновую поверхность, вы можете открыть Texture Editor и, нажав там правую кнопку мыши, включить опцию Edit NURBS UV Mode. А дальше резвиться обычным образом.

529

Однако результат ваших резвых игрищ будет виден, в лучшем случае, только на экране. Ни Render View, ни даже High Quality Shading не покажут вам результат редактирования UVкоординат.

Вопрос: Для чего тогда это нужно?

Ответ: Для продвинутых игровых движков, поддерживающих сплайновые поверхности и укомплектованных хорошими программистами.

Точка. Конец связи.

UV-координаты и сабдивы

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

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

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

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

3.В этом режиме мапим и текстурируем полигональную сетку.

4.Включаем секретный атрибут.

5.Переключаемся в режим сабдива, наследуя маппинг.

6.Редактируем вручную окончательный маппинг на сабдиве.

Итак, весь секрет в том, что когда вы переключаетесь в полигональный режим редактирования сабдива, в истории объекта возникает нода типа polyToSubdiv. У этой ноды есть секретный атрибут UV treatment ("UV-трактовка-). Который по умолчанию установлен в Keep Subd UVs. А это означает, что UV-координаты сабдива не зависят от маппинга его базовой полигональной сетки.

530

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]