4. UV-mapping
Для начала немного элементарного ликбеза.
Как вы, возможно, знаете, здесь мы используем mesh'и, то есть модели, заданные положением в пространстве их точек и граней. Грани составляют поверхность этой модели. Любую грань можно разбить на элементарные треугольники, которые являются элементарными гранями. Практически, в окне проекций CarCAD мы и видим, что поверхность модели состоит из треугольников. Зная, как раскрасить каждый из этих треугольников, мы знаем, как раскрасить всю модель. Но как же задать раскраску этих треугольников? Предложение сделать "развертку" всей модели на плоскость и там раскрасить отпадает – потому как неимоверно сложно(да это в большинстве случаев попросту невозможно ;-). Так вот, для нашего с вами удобства Electronic Arts сделали так, что треугольник на текстуре не обязательно должен быть равен или подобен треугольнику на модели – картинка с текстуры будет соответсвенным образом растянута/сжата. Поясняю на примере:
Один и тот же трехмерный треугольник и соответствующие ему треугольники на текстуре.
(Еще непонятно? Ничего, раз пять прочитаете, а потом вдруг поймете. ;-) На месте и разберемся %-).
Итак, в качестве текстуры мы можем теперь использовать любые удобные для нас виды на машину. А удобны для нас, естественно, такие виды, как в проекциях - справа, слева, спереди, сзади и т.п.
Изначально CarCAD предлагает нам следующее расположение видов:
0 Side – сбоку;
1 Top – сверху;
2 Bottom – снизу;
3 Front – спереди;
4 Back – сзади;
5 Wheel – колесо сбоку;
6 Other – все остальное.
Расположение можно и изменить, но сейчас это
не важно.
Нажмите кнопку UV.
Вы видите, что сейчас все треугольники машины расположены на текстуре
в зоне Side, т.е. на виде сбоку. Можно, конечно, оставить и так, создав на
текстуре всего один вид, но тогда в определенных местах текстура будет безобразно
размазана (пример справа) ;-)
Наша задача – распихать треугольники по остальным видам так, чтобы по возможности
избежать сильного сжатия/растяжения на них текстуры. Понятно, например, что
треугольники крыши и капота должны располагаться на виде сверху, треугольники
колес – на соответствующем виде, и т.д. – чтобы не было больших искажений.
Приступим. Перегрузите CarCAD, чтобы избавиться от текстуры,
переключитесь в режим редактирования треугольников (Edit/Triangle Editor),
откройте справа панель UV Remapper.
Уберите с экрана все части, кроме одной, чтобы не мешали, затем щелкните в окне проекций (UV нам пока не нужно) по какому-нибудь треугольнику (они выделяются по красной точке в центре), потом по другому. Этот ритуал обязателен, иначе когда вы попытаетесь выделить сразу много треугольников, CarCAD вылетит. Подготовка закончена.
Посмотрите на панель UV Remapper. Там есть знакомый список видов – сбоку, спереди, сзади и т.п. Чтобы привести в соответствие треугольнику на модели треугольник на текстуре, нужно: щелкнуть по этому треугольнику и в списке видов в панели выбрать вид на текстуре, где должен будет появиться этот треугольник. Так как это идиотский способ, ;-) (щелкать по каждому из 2000 треугольников???), автор программы предусмотрел для нас опцию lock. Если поставить галочку L, то ВСЕ треугольники, которые мы выберем в окне проекций, будут приписаны к тому виду, который в данный момент выбран в списке. Для большего удобства предусмотрена такая вещь – можно заставить CarCAD не показывать треугольники, приписанные к тому или иному виду. За это отвечают галочки 1-7.
В окнах проекций треугольники различаются цветами. Так, треугольники,
приписанные к виду 1 Side, обозначаются серым цветом;
к виду 2 Top – черным;
к виду 3 Bottom – синим;
к виду 4 Front – зеленым;
к виду 5 Back – голубым;
к виду 6 Wheel – красным;
к виду 7 Other – фиолетовым.
Рекомендуется поступать следующим образом: изначально все треугольники серые, т.е. приписаны к виду Side. Отключите все остальные виды, кроме 1 (снимите их галочки) и начерно распределите треугольники по видам, выделяя их рамочкой. Уже приписанные будут исчезать и не мешаться. К примеру, можно сразу приписать к "сверху" всю крышу и капот с запасом, к "спереди" – то, что осталось от передка и ветровое стекло, к "сзади" – заднюю дверь и т.п. Затем, поочередно включая другие виды и отключая остальные, исправлять ошибки. Здесь также можно пользоваться увеличением (+/-) и прокруткой (Pg Up, PG Dn, Home, End).
То, что осталось после чернового распределения
в виде Side.
После чернового распределения в виде Bottom.
Видно, что есть лишние треугольники, к-рые должны принадлежать виду Side.
Исправляем, и так далее, по всем видам...
Вот таков результат. Чтобы сохранить эти соответствия, нажмите на save в панели UV Remapper. Т.к. это информация программы CarCAD, а не формата FCE, то она сохраняется отдельно (в файле с расширением .uv), и чтобы ее потом возобновить, нужно будет специально загрузить кнопкой Load из панели.
Теперь переключитесь в UV и нажмите REMAP. Ура! Есть текстура корпуса.
То же повторяем со всеми остальными частями. Колеса целиком принадлежат виду Wheel, салон можно полностью приписать в Other.
Проблема: салон выглядит не так, как хотелось бы. Желательно было сделать на него вид сверху, а получен вид сбоку. Решение: изменим сам вид. Нажмите Edit в панели UV. Вы увидите все виды. Выберите Other и вместо ZY поставьте для него ориентацию ZX, как у вида Top.
Насчет остальных настроек: X, Y – это положение данного
вида, W, H – его размеры.
Rotate – разворачивать ли вид на 90 градусов.
Normal, Wheel, Symmetry – черт его знает...
;-) подскажите, если знаете, это ведь только бета-версия руководства...
Снова
Remap и вот уже салон выглядит прилично.
Вот такая вышла текстура.
Однако...что же делать с водителем? Место на текстуре есть – например, на виде сбоку над капотом или под колесами. Сейчас туда его и запихнем.
На всякий случай, чтобы не потерять результаты работы, сохраняемся, жмем save в UV remapper, что затем сохраняем FCE под новым именем и снова жмем save. Ничего смешного, без Undo еще и не такими параноиками становятся... ;-)
Теперь вызываем Edit видов и двигаем вид Other примерно в область заднего колеса вида "сбоку" на текстуре, меняем ориентацию на ZY (это для головы водителя). Вид Bottom – на место над капотом(это для самого водителя), и тоже ориентацию на ZY.
Затем приписываем голову виду Other, а водителя – виду Bottom.
Теперь ВНИМАНИЕ! Remap "ремэпит" только выделенные части, но при этом для этих частей заменяется полностью вся информация о соответствии треугольников модели текстуре. Поэтому снимайте галочки в панели Parts со всех уже готовых частей, кроме водителя, и только потом жмите Remap.
У меня все получилось слишком маленьким, поэтому пришлось увеличить виды вот до таких размеров.
А вот полученная текстура.
Надо бы слегка сдвинуть изображения водителя. Это можно сделать и через Edit видов, а можно и вручную подвинуть их прямо на текстуре. Для этого включается режим редактирования точек, выделяются нужные точки (кстати, тут специфический способ выделения...надо привыкнуть щелкать не по точке, а рядом с ней ;-), и курсорными клавишами двигаются туда, куда надо. Снимается выделение, как и раньше, клавишей D.
Итак, UV-remapping (почему оно называется именно так – это долго рассказывать ;-) закончен и у нас есть черновик будущей текстуры. В идеале надо бы добиваться максимального заполнения картинки... обычно совмещают симметричные части (а колесо можно вообще при желании до ломтика в 30 градусов ужать ;-), и все сильно уплотняется...но мне лень этим заниматься ;-)
Руководство по CarCAD © Baco, 2001.