|
В настоящей главе будут освещены следующие темы, связанные с проецированием:
В 3D Studio MAX трудность предсказания размещения и результатов координат проецирования была существенно уменьшена благодаря тому, что теперь результирующую битовую карту можно видеть в интерактивном видовом окне.
При настройке назначаемого материала, который использует битовую карту или процедурную 20-тексту-ру, ее можно отобразить в гладко затененных видовых окнах, щелкнув на кнопке Show Map in Viewport (Показать карту в видовом окне) среди элементов управления типом карты. Имеется возможность показать одну битовую карту на материал. Если вы уже отображаете материал и хотите посмотреть другой, первый материал отключается, освобождая место для нового. Показывая карту в видовом окне, вы точно позиционируете проецирование. В данной главе считается, что вы будете применять этот в высшей степени полезный механизм при любой настройке проецирования.
Для достижения скорости, обеспечивающей интерактивную работу проецирования в видовом окне, было сделано несколько упрощений. При просмотре битовых карт в перспективных видовых окнах, как показано на рисунке 22.1, мозаичность карт искажается, поскольку не происходит коррекции экземпляра битовой карты, как это происходит в окончательном визуализаторе. Если просмотр текстур в перспективе важен, можно включить опцию видового окна Texture Correction и взамен получить уменьшение быстродействия-На практике вы будете переключать эту опцию для проверки, поскольку ее постоянное включение существенно замедляет работу видового окна.
ПРИМЕЧАНИЕ
СОВЕТ
Хотя мир и объекты в нем описываются в координатах X, Y, Z, битовые карты и проецирование описываются в координатах U, V и W для дифференциации битовых карт от геометрического пространства, поскольку они часто существенно различаются. Геометрические координаты XYZ ссылаются на точное положение в мире или пространстве объекта. Координаты битовых карт UVW представляют пропорции соответствующих битовых карт. В UVW вы всегда подсчитываете приращение битовой карты, не ссылаясь на явные размеры- Хотя метки могут казаться несколько незнакомыми, сама концепция проста (см. рис. 22.2).
Как показывает рисунок 22.2, U и V представляют ширину или высоту по отношению к битовой карте. Оси U и V пересекаются в центре битовой карты и определяют центр координат UV для карты. Центр координат является точкой, вокруг которой вращается карта, когда настраивается значение Angle для типа карты Bitmap.
W-пространство изменяет проекцию отображения на 90° в сторону. Как только происходит переключение, сторона может повернуться на 90° от ожидаемого положения. Направление W" пространства используется, только если тип карты материала реально его требует. Хотя и предназначенное преимущественно для трехмерных параметрических карт (подобных дереву и мрамору), W-пространство может влиять на тип карты Bitmap, если переключиться с проекции UV (см. рис. 22.3).
Координаты проецирования можно применить либо параметрически, либо в конвейере истории редактирования с модификатором UVW Mapping. Параметрическое проецирование присваивается как часть параметров создания объекта или как модификатор, который генерировал грани, и обычно разрешается флажком Generate Mapping Coordinates в определении объекта или модификаторе. Параметрическое проецирование можно найти в ЗО-примитивах, объектах лофтинга и модификаторах Extrude, Lathe и Bevel. Ни один из этих методов, за исключением лофтинга, не дает прямого управления результирующим повторением визуализи-руемой карты (характеристика известная как мозаичность (tiling)). Отображение обычно имеет мозаичность ! .0 в обоих направлениях.
ПРИМЕЧАНИЕ
Поскольку большинство параметрических проецирований применяется с мозаичностью 1х1, потребуется настройка мозаичности для большинства назначаемых материалов. Поскольку нельзя настроить параметрические координаты (исключая координаты для объектов лофтинга), это следует выполнить при помощи элементов управления мозаичностью, имеющихся в материале. Рисунок 22.4 показывает результат параметрического проецирования перед и после настройки мозаичности в параметрах материала.
Когда проецирование генерируется параметрически, мозаичность и ориентацию можно настроить только через параметры материала назначенного поверхности. Как альтернатива, в случае применения проецирования посредством модификатора UVW Mapping, появляется возможность независимого управления проекцией отображения, расположением, ориентацией и мозаичностью. Однако отображение через модификатор может оказаться менее удобным, чем параметрическое.
Когда параметрическое проецирование не подходит или больше недоступно, следует присвоить координаты проецирования вручную при помощи модификатора UVW Mapping (см. рис. 22.5). Модификаторы UVW Mapping можно разместить в любой точке стека, так что место во времени моделирования, когда применяются координаты, точно управляется.
Как и большинство модификаторов 3DS МАХ, модификатор UVW Mapping оказывает влияние на все, что ему передается в стеке истории редактирования. Если активная выборка содержит грани или лоскуты, проецирование присваивается только выборке подобъектов граней или лоскутов. Если активна выборка подобъ-ектов вершин или ребер, она игнорируется и проецируется весь объект.
Подобная возможность проецировать независимые выборки подобъектов позволяет смешивать типы проекций отображения и помещать отображение в нескольких местах одного и того же объекта (см. рис. 22.6). Однако этап применения координат проецирования часто наступает в конце моделирования. Если вы моделируете объект после применения проецирования, то координаты перемещаются с вершинами, вытягиваются и больше не порождают ровных битовых карт. Таким образом проецирование часто является одним из последних действий, выполняемых с моделью.
Когда моделирование завершено, часто требуется разрушить Modifier Stack (если только вы не собираетесь выполнять анимацию операций моделирования). Назначение нескольких подобъектных координат проецирования обычно работает в сочетании с равным числом модификаторов EditMesh или EditPatch. Эти модификаторы Edit определяют выборку грани или лоскута, которые были отображены последующим UVW Mapping. Из-за затрат, связанных с м од ифи катерам и Edit, может возникнуть потребность разрушить стек после применения нескольких модификаторов UVW в качестве способа устранения их накладных расходов. Замена выборок EditMesh выборками Volume представляет собой альтернативный путь, требующий незначительных накладных расходов. Комбинация модификаторов Volume Select с UVW Mapping обеспечивает эффективное присваивание проецирования, предоставляющее возможность редактирования выборки и просто изменения того, что проецируется.
Способность присваивать проецирование на подобъектном уровне очень важна для поддержки свойств поверхности объекта. Сглаживания граней и непрерывности лоскутов не получится, если поверхности не являются частями одной и той же объединенной поверхности. Проецирование выборки подобъектов предоставляет возможность разместить проецирование именно там, где необходимо, не влияя на топологию.
Размещение карты материала зависит от координат проецирования поверхности и параметров проецирования материала. Как выяснилось, практически всем, что настраивается в материале, можно также управлять через модификатор UVW Mapping. Поэтому данные общие методы настройки обсуждаются вместе. Короче говоря, при изменении вида проецируемого материала на поверхности доступны четыре возможности:
Из всех типов карт наиболее широко применяется тип карты Bitmap. Он включает широкий диапазон опций, которые также имеются и в других типах карт (подобных Checker). Bitmap из-за своей распространенности и легкости является типом карты, который данная глава использует в качестве примера для объяснения проецирования вообще. Для пользы обсуждения мы будем также использовать проецирование Planar, как пример модификатора UVW, для сравнения с параметрами типа карты Bitmap (см. рис. 22.7). При использовании проецирования Planar и мозаичности 1, вашей битовой картой по существу является гизмо проецирования.
Гизмо проецирования для модификатора UVW определяет границы, до которых простирается битовая карта материала. При масштабировании гизмо визуализируемая битовая карта использует и масштаб координат. В качестве альтернативы масштабированию гизмо имеется возможность управлять повторениями при помощи параметров мозаичности материала. По умолчанию мозаичность равна единице, что оставляет битовую карту соответствующей границам планарного гизмо. Мозаичность означает одно повторение, так что увеличение значения до трех трижды повторило бы битовую карту в гизмо планарного проецирования.
ПРИМЕЧАНИЕ
Значения мозаичности аналогичны по эффекту параметрам Х и Y масштаба для гизмо планарного проецирования, поскольку мозаичность 2 - это то же самое, что и масштабирование гизмо 1 к 2.
ПРИМЕЧАНИЕ
Когда параметр материала Tile не установлен, битовая карта не подвергается мозаичности вдоль заданной оси. Отключение Tile для двух осей оставляет единственный отпечаток битовой карты - то, что другие программы, подобные 3D Studio для DOS называют "деколем" (decal). Расположение плитки мозаики зависит от того, где она была определена. Как показывает рисунок 22.8, материалы всегда измеряются от центра битовой карты, тогда как модификатор UVW Mapping ведет отсчет от нижнего левого угла.
С отключенной опцией Tile и мозаичностьго большей одного результирующая битовая карта "сжимается" от краев гизмо. Если в битовой карте определен элемент мозаики, он уменьшается вокруг центра гизмо, а центр битовой карты всегда совпадает с центром гизмо. Если мозаичность задается модификатором UVW Mapping, битовая карта стягивается вокруг нижнего левого угла. При этом угол битовой кары всегда совпадает с углом гизмо. Смешивание двух методов обеспечивает мультипликативный эффект размера, при этом битовая карта позиционируется ближе к началу координат, обеспечивающему большее значение мозаичности.
Положение битовой карты материала диктуется в основном положением гизмо проецирования модификатора UVW Map. Как альтернатива перемещению гизмо, параметры U Offset и V Offset материала "передвигают" битовую карту вдоль соответствующих осей Х и Y гизмо (см. рис. 22.9). Имейте в виду, что Offset (смещение) выражается не в расстоянии, а скорее в единицах битовой карты. Значение Offset соответствует исходному размеру битовой карты. Когда Tiling равно 1.0, то Offset 1.0 перемещает битовую карту на 1 длину битовой карты в сторону. Когда Tiling равно 4.0, a Offset равно 1.0, центр перемещаемой битовой карты остается там, где и был, но поскольку битовая карта меньше, то кажется, что карта передвинулась в четыре раза дальше по сравнению со случаем, когда Tiling был равен 1.0. Хотя смещение и кажется в четыре раза большим по отношению к текущему размеру карты, на самом деле смещение произошло на то же самое расстояние, что и перед уменьшением карты посредством параметра Tiling.
Параметры Offset в основном применяются тогда, когда необходимо позиционировать битовую карту, но либо нет возможности передвигать гизмо отображения, либо нет гизмо для перемещения, потому что проецирование является процедурным. Кроме того, настройка параметров Offset обеспечивает более точное управление по сравнению с перемещением гизмо проецирования.
Угол битовой карты материала изначально управляется углом гизмо проецирования с поверхностью. Параметр Angle типа карты Bitmap можно использовать для вращения проецирования без влияния на гизмо. Рисунок 22.10 показывает, что применение параметров Rotation может быть очень важным для методов проецирования. Вращение гизмо весьма серьезно изменяет тип проекции и/или выявляет особые точки и завихрения (такие как цилиндрические или сферические).
Параметр Angle вращает битовую карту вокруг центра с положительным значением вращения по часовой стрелке и отрицательным значением - против часовой стрелки. Параметр Angle имеет ограничение в 360° или -360°, поэтому анимация за пределами этих ограничений должна выполняться в координации с гизмо.
Mirror и Flip являются методами масштабирования в соответственно параметрах материала и модификаторе UVW. Опция Mirror, находящаяся в типах карт материала, делает не то, что делает зеркальная трансформация. Для материалов зеркальное отражение (mirroring) является объединением мозаичности и вращения. В случае выбора зеркального отражения масштаб карты уменьшается на 50% и карта отражается относительно осей так, чтобы появилось две битовых карты там, где была одна. Если зеркально отражаются и ось U, и ось V, появляется четыре битовых карты. Масштаб зеркально отраженных битовых карт уменьшается так, чтобы они помешались на том же гизмо, что и материал, не использующий опцию Mirror. После сокращения в размерах битовая карта покрывается новым битовым изображением (см. рис. 22.11).
Если требуется, чтобы битовая карта отражалась только вдоль одной оси, вероятно понадобится удвоить мозаичность по неотраженпой оси для компенсации половинного размера. Зеркальное отражение является методом, заставляющим битовые карты выглядеть бесшовно покрытыми мозаикой. Некоторые применения, подобные мозаичному полу, мраморным панелям и деревянному шпону, извлекают пользу из применения отраженного узора.
Опция Flip модификатора UVW на самом деле является замаскированным отрицательным масштабом и несколько похожа на опцию материала Mirror. Выполнение отрицательной мозаичности в модификаторе UVW Mapping перемещает результирующую позицию битовой карты, поскольку исходная точка для модификатора находится в углу.Опция Flip выполняет негативную мозаику относительно центра битовой карты так, чтобы результат не смещался.У материалов нет опции Flip, поскольку для материалов центр битовой карты является исходной точкой и отрицательный масштаб битовую карту не сдвигает. Для материала значение параметра Tile, равное -1-0, эквивалентно применению опции Flip в модификаторе UVW Mapping.
Как итог в следующей таблице приведены опции, доступные с модификатором UVW Mapping, и их эквиваленты, являющиеся параметрами материала:
Гизмо проецирования | Параметры материала |
Трансформация Move | Параметры Offset |
Трансформация Rotation | Параметр Angle |
Трансформация Scale | Параметры Tiling |
Параметры Tiling | Параметры Tiling (относительно нижнего левого угла гизмо) (относительно центра гизмо) |
Неприменима | Опция Mirror |
Опция Flip | Значение Tiling -1.0 |
Модификатор UVW Mapping включает несколько функций, предназначенных для быстрого выравнивания гизмо и объекта. Как показано на рисунке 22.12, все функции сгруппированы в секции Alignment модификатора.
Функция Fit центрирует гизмо по центру активной выборки и масштабирует гизмо так, чтобы он совпадал с границами выборки. Гизмо масштабируется до границ, видимых в локальной системе координат. Гизмо можно ориентировать любым желаемым способом, и функция Fit будет масштабировать его соответствующим образом. Fit не должна использоваться при установке отношений с пропорцией битовой карты (то ли через масштаб гизмо, то ли через мозаичность), поскольку такое действие изменяет пропорции мозаичности. Функция Fit отменяема, так что можно экспериментировать с результатами.
Функция Center сохраняет ориентацию и масштаб гизмо и перемещает его центр в центр активной выборки. Функция Center безопасна в использовании с точно отмасштабированными гизмо, так как она не оказывает влияния на результирующую мозаичность.
Функция Bitmap Fit исследует пропорции выбранной битовой карты и масштабирует горизонтальный размер гизмо так, чтобы он совпадал с отношением высоты к ширине битовой карты. Функция Bitmap Fit работает на проецировании Planar, Cylindrical и Box, но не имеет эффекта на Spherical или Shrink Wrap.
Функция Normal Align крайне полезна для выравнивания гизмо так, чтобы его ось Z оказалась перпендикулярной выбранной грани. Грань или лоскут должны быть частью текущего выбранного объекта, хотя конкретная грань или лоскут могут быть не выбраны. Функция Normal Align позиционирует гизмо, не оказывая влияние на масштаб, поэтому функцию безопасно использовать с гизмо, совпадающим с заданными пропорциями битовой карты. Учитывая, что прямого пути выровнять гизмо отображения и вид не существует, ниже приведен самый быстрый способ выполнения этого, исходя из предположения, что существует грань, перпендикулярная виду:
Функция Reset - это то же самое, что удаление и повторное применение модификатора. Она центрирует гизмо на выборке с ориентацией и масштабом по умолчанию. Функция Reset должна использоваться только тогда, когда необходимо начать все сначала.
Функция модификатора UVW Acquire предоставляет возможность копирования проецирования с объекта, которому уже был назначен модификатор UVW Map или даже модификатор Displace. Функция Acquire берет последний модификатор UVW Mapping или Displace, который находит в стеке выбранного объекта. Затем на экране появляется диалог, показанный на рисунке 22.13. Имеется возможность выбирать, должно ли проецирование получаться абсолютно или относительно.
Обе опции дублируют тип проецирования, опции мозаичности и переключения, а также масштаб гизмо. Выбор Absolute перемещает гизмо проецирования точно в ту же позицию и ориентацию, что и целевой объект. Это требуется в случае необходимости совпадения проецирований объектов. Absolute следует выбирать, даже если вы намереваетесь поворачивать гизмо проецирования, поскольку опция гарантирует выравнивание невращающейся оси. Выбор Relative хранит гизмо цели в точности там, где оно находится, и копирует ориентацию гизмо проецирования, масштаб и смещение. В реальности в выбранный объект копируется трансформация из выбранного гизмо объекта. ювшшЕШяявшаяавшя
ПРЕДУПРЕЖДЕНИЕ
Часто необходимо получить проецирование от другого модификатора UVW, примененного к тому же самому объекту. Для этого требуется выполнить несколько дополнительных шагов, поскольку данная операция не доступна в функции Acquire непосредственно. Наиболее целенаправленный метод заключается в клонировании объекта на сторону и обеспечении желаемого модификатора UVW Mapping в качестве последнего модификатора такого рода в стеке. Затем можно использовать Acquire для сопоставления гизмо. Данный метод может оказаться непрактичным при очень больших объектах из-за времени, требующегося для клони-рования. В качестве альтернативы зайдите в Track View и скопируйте значения Position, Rotation и Scale из треков желаемого гизмо в треки нового гизмо. Это именно то, что происходит, когда вы получаете проецирование абсолютно (за исключением того, что Acquire копирует все параметры модификатора, а не просто трансформацию).
СОВЕТ
Модификатор UVW предоставляет несколько способов проецирования координат отображения на поверхность объекта. Наиболее подходящая технология проекции зависит как от геометрии объекта, так и от характеристики мозаичности битовых карт. Для ручного назначения проекций отображения доступны пять методов: Planar, Cylindrical, Spherical, Shrink Wrap и Box.
Важно понимать, что гизмо проецирования - это точный размер и положение битовой карты, независимо от ее размера или пропорций. Подобная ситуация складывается всегда, когда и модификатор UVW Map, и назначенный материал имеют значения Tiling и Offset соответственно 1.0 и 0.0. Другие установки для мозаичности и смещения изменяют начальное расположение, как описывалось ранее. Рисунок 22.14 показывает, что каждая из разных проекций гизмо содержит визуальные подсказки, указывающие на подходящий способ.
Маленькая вертикальная линия гизмо или риска указывает на правильный способ. Зеленая линия гизмо Planar всегда представляет правую сторону битовой карты. Зеленая вертикальная линия гизмо Cylindrical демонстрирует шов, в котором сходятся правая и левая стороны битовой карты. Подобным же образом гизмо Spherical имеет зеленую дугу, определяющую край шва битовой карты. Гизмо Shrink Wrap идентичен гизмо Spherical, но зеленая дуга не указывает шов, поскольку единственный шов находится внизу напротив вертикальной линии. Гизмо Box не имеет индикации ввиду того, что на самом деле основывается на нормалях граней, порождающих шов на каждом резком переходе поверхности.
Координаты проецирования отображаются на поверхность, направляемые своим гизмо проецирования. Координаты проецирования, сталкивающиеся с поверхностью под углом 90°, порождают неискаженную битовую карту. Когда угол падения изменяется, пикселы становятся вытянутыми. При достижении углом значений 180° и 0° поверхность находится на краю проекции и результируется в пикселы, "пробегающие" по поверхности. Для корректировки появившихся разводов гизмо должен ориентироваться так, чтобы сталкиваться с поверхностью под углом, превышающим 0°.
Модификатор UVW является бесконечным в своих проекциях отображения. Координаты проецирования применяются через любые выбранные в стеке грани.
ПРЕДУПРЕЖДЕНИЕ
Проще всего понять проецирование в планарной проекции - наиболее распространенном методе проекции. В этом случае прямоугольный гизмо представляет точный размер битовой карты. При изменении формы гизмо картинка вытягивается. Как показано на рисунке 22.15, планарное проецирование проектируется сквозь объект бесконечно. Неважно, насколь близко пиктограмма приближена к каркасу, играет роль только размер пиктограммы и угол с каркасом.
Поскольку битовая карта вытягивается для соответствия координатам проецирования, в случае, если необходимо получить неискаженный результат, гизмо должо иметь те же пропорции, что и битовая карта, Функция Bitmap Fit, показанная на рисунке 22.16, существенно упрощает эту задачу. Нажатие Bitmap Fit предоставляет возможность выбора битовой карты для задания повой ширины гизмо. Существующая высота гизмо остается прежней независимо от пропорций битовой карты.
Часто точный размер битовой карты известен и требуется сопоставить его с размером гизмо проецирования битовой карты. Например, последовательность кирпичей 6х12, использованная на рисунке 22.20, должна всегда быть 48" х 32", если только кирпичи имеют обусловленный размер. К сожалению, нет четкого пути для обеспечения подобного совпадения. Требуемый размер можно обеспечить за счет создания временного объекта в точности необходимого размера, как показано в следующей процедуре:
Правильно отмасштабированный гизмо можно вращать и позиционировать и даже использовать функции Center или Normal Align.
Для наиболее точной настройки координат проецирования следует использовать Track View, поскольку Transform Type-In сообщает только информацию относительного масштаба, а при совмещении размеров требуется управлять их точными размерами. После добавления ключа для UVW Mapping Gizmo Scale можно щелкнуть правой кнопкой на ключе и получить Key Info, которая обеспечивает точные сведения о текущем масштабе гизмо со стопроцентным соответствием 2". Можно настроить значение масштаба, разделив на 50, и точно знать размер (в дюймах) гизмо проецирования.
ПРЕДУПРЕЖДЕНИЕ
Если объект основан на сплайне, являющемся результатом Extrude, Bevel или Lathe, то определение правильного масштаба становится несколько труднее. Все перечисленные методы создания устанавливают проецирование, но делают так, что 1 х 1 повторяется по всей длине и высоте. Для достижения точности в единицах реального мира следует увеличить мозаичность материала до соответствия с определенным периметром сплайна. К сожалению не существует прямого метода определения длины периметра сплайна. Для получения искомой информации можно выполнить следующий обходной маневр:
В поле Path отображается длина пути. Если хотите, можете удалить временный лофт-объект или использовать его для трассировки положений точек на пути в единицах или процентах длины. Можно также модифицировать сплайн пути и увидеть результирующее обновление длины. Зная длину периметра сплайна, разделите ее на длину оси U реальной битовой карты и узнаете необходимое значение Tiling, как показано на рисунке 22.17.
Распространено мнение, что планарное проецирование применяется по нормали к поверхности. Хотя такое применение и производит неискаженное проецирование, однако сам подход часто оказывается неудобным. Некоторые объекты являются копланарньши, а некоторые включают углы, требующие совпадения координат смежных сторон. Например, кирпичная стена с углом требует совершенно ровных цементных швов. Для прямоугольной геометрии, которая характерна для большинства структур, существуют следующие варианты:
Проблема с первым вариантом заключается в том, что обеспечение выравнивания разных гизмо в будущих настройках может оказаться проблематичной. Фактически для такого управления можно использовать выражения. Второй вариант элегантен, но работает только в случае, когда объект действительно прямоугольный. Последний вариант работает быстро, не имеет накладных расходов и применим в большинстве ситуаций. Все три варианта предполагают, что гизмо обладает корректными пропорциями для желаемой битовой карты (т.е. была выполнена операция Bitmap Fit).
Ключ к корректному планарному проецированию заключается в обеспечении равного угла пиктограммы проецирования с каждой стороной каркаса. Если у объекта несовместимые углы, как у шестнадцатиугольника или восьмиугольника, то для смежных пар граней следует применять отдельные координаты. В таком случае потребуется выполнить выборки подобъектов граней подобъекта и применить отдельные модифика-торы UVW Mapping. Гексагон или октагон корректно отображаются двумя проекциями, тогда как 10- или 12-сторонний многоугольник потребовал бы три проекции.
Применяя проецирование под углом, вы захотите, чтобы проекция отображения была равна каждой принимающей его стороне. Угол подхода гизмо должен быть сходным у всех граней. Однако, когда угол проецирования гизмо становится отличным от 90°, проецируемый образ начинает вытягиваться. Вытягивание корректируется настройкой проецирования вдоль вытягиваемой оси одним из трех способов: масштабированием гизмо проецирования, настройкой мозаичности UVW Mapping или настройкой мозаичности битовой карты материала. Какой бы метод не был выбран, его следует использовать последовательно, делая будущее редактирование более четким и легким процессом. Из всех методов масштабирование гизмо наименее точно и трудно настраивается. Мозаичность материала является хорошим выбором только тогда, когда материал всегда применяется под углом, для корректировки которого производилось масштабирование. В большинстве случаев наибольший смысл имеет работа с мозаичностью модификатора UVW, поскольку модификатор соответствует проекции и может быть получен другими модификаторами проецирования, нуждающимися в сходных значениях. Рисунок 22.18 показывает, как это выполняется со значениями мозаичности.
Для корректировки вытянутого проецирования необходимо увеличить мозаичность карты. Значение увеличения зависит от угла поверхности и гизмо проецирования. Для углов в 90° (справа) коррекция происходит при мозаичности 1.414 - квадратном корне из двух и очень хорошем числе для запоминания, поскольку корректировка для квадратных углов достаточно распространена. Корректирующее отношение можно вывести либо из подхода, либо из включенного угла:
Рисунок 22.20 показывает вычисление отношения на практике. Обратите внимание на то, что угол подхода гизмо составляет половину угла, образуемую двумя сторонами. Если ваш гизмо расположен под равными углами к сторонам, то корректирующее отношение порождается из угла между сторонами.
Не бойтесь этих формул - они все одинаковые- Просто для некоторых проще полагаться на один метод, нежели на другой. Маленькая арифметика заходит далеко и можно запомнить корректирующее отношение 1.414 для работы со всеми прямоугольными проецированиями.
Хотя косая планарная проекция корректируется один раз для всех поверхностей, во второй раз ее корректировать нельзя. Рисунок 22.19 показывает, что вращение гизмо проецирования второй раз порождает угловое проецирование на всех поверхностях. Данное приложение может оказаться весьма удобным, если битовая карта случайна и мозаична, что также демонстрируется на рисунке 22.19. Если необходим последний эффект, лучше воспользоваться проецированием Box.
Как показано на рисунке 22.20, цилиндрическое проецирование отображает свои координаты из центра гизмо наружу в бесконечность, подобно ряби на пруду. Высота цилиндра гизмо диктует размер высоты битовой карты, или скорее V измерения. По этой причине радиус гизмо неважен - важно только положение центра. Вы можете представлять цилиндр как визуальную помощь для определения высоты, центра, вершины, шва и того, был ли гизмо неоднородно масштабирован.
Обратная сторона пиктограммы, зеленое ребро, указывает на то, где встречаются ребра битовой карты. Если битовая карта немозаична в направлении U, то при визуализации здесь возникает шов. Задний шов является также начальным положением мозаичности. При работе с мозаичными деколями шов становится левой стороной битовой карты.
Традиционно поверхности, которые параллельны цилиндрической проекции, склонпы к завихрениям или прожилкам, как показано на рисунке 22.21. Поскольку такие прожилки и завихрения обычно нежелательны, окончательный визуализатор обрабатывает ситуацию как особый случай и считает цвет первого пиксела, найденного на вершине, цветом всего покрытия. Ввиду того, что подобного рода коррекция не отображается интерактивным визуализатором, она может сбить с толку. Если вы хотите сохранить спиральные эффекты, показанные в видовом окне, а не принимать коррекцию, то можете либо переместить одну из определяемых вершин на небольшое расстояние, либо повернуть секцию гизмо проецирования на небольшую величину (0.03 градуса будет достаточно).
Опция Cylindrical Mapping Cap применяет к верху и низу цилиндрической проекции планарное проецирование. Такое применение похоже на то, что делает Box Mapping. Ограничение угла как "покрытия" гораздо ниже, чем ограничение угла как стороны отображения коробки, при помощи граней, становящимися пла-нарным проецированием при подходе к 20-25° от горизонтальной плоскости.
Интересная черта цилиндрического гизмо заключается в том, что его можно масштабировать неоднородно так, чтобы проекция оказалась "эллиптической". Выполнение неоднородного масштабирования вокруг осей X, Y гизмо не влияет на проецирование, однако неоднородное масштабирование осей Х и Y создает эллипс. Рисунок 22.22 демонстрирует приемлемость подобного проецирования.
СОВЕТ
Часто возникает необходимость неискаженной визуализации битовой карты при помощи цилиндрической проекции. Сказанное в особенности справедливо для элементов, искажение которых легко идентифицировать, например для текста, меток, логотипов, портретов или геометрических узоров. Рассмотрим классическую винную этикетку. В таком случае существует ряд факторов, которые следует определить: радиус бутылки, высота этикетки, процент бутылки, который будет обернут и пропорции этикетки. Если вы знаете три из указанных переменных, можете надежно высчитать четвертую. Таким образом, зная размер бутылки, пропорции этикетки и высоту, можно определить, какая часть бутылки будет обернута.
Один из методов обеспечения неискаженной карты заключается в балансе пропорций битовой карты с радиусом модели, чтобы выйти на гизмо требуемой высоты. Другой подход заключается в использовании геометрического размера и точного положения этикетки для определения пропорций нужной битовой карты материала. Факт заключается в том, что для битовой карты заданной пропорции имеется только одна высота гизмо, которая работает с конкретным радиусом объекта.
Общепринято рассматривать битовую карту материала в первую очередь вместе с отношением ширины и высоты, определяющим размер гизмо. Когда карта оборачивается вокруг цилиндра, ее ширина вытягивается до длины окружности. Умножение этой длины на отношение битовой карты определяет требуемую высоту цилиндра гизмо:
Если вы создаете специальную битовую карту для объекта особых размеров и пропорций - например, для банки - то должны пропорционировать битовую карту так, чтобы она совпадала с требуемым размером этикетки:
Часто этикетка предназначена для оборачивания только части окружности цилиндра. Хотя можно составить соответствующие формулы, но самый легкий способ - определить гизмо, как если бы этикетка оборачивала весь цилиндр и затем изменить мозаичность для управления пропорциями этикетки. Если результирующая этикетка окажется слишком короткой или будет оборачивать некорректное расстояние, то единственный выход заключаеся в изменении пропорций битовой карты этикетки.
При использовании функции Bitmap Fit высота гизмо поддерживается, а радиус гизмо масштабируется так, чтобы битовая карта четко оборачивалась вокруг цилиндра подобно этикетке "суповой банки", порождая идеально пропорциональный цилиндр для этой одной битовой карты. Найдя соответствие, следует либо однородно масштабировать гизмо для совпадения с радиусом геометрии, либо масштабировать геометрию так, чтобы ее радиус совпадал с радиусом гизмо. Значительно более распространен первый подход.
Сферическое проецирование отображает свои координаты из центральной точки наружу в бесконечность во всех направлениях, очень похоже на всенаправленное освещение (см. рис. 22.23). Размер пиктограммы не оказывает абсолютно никакого влияния на результирующие координаты проецирования. Однако если пиктограмма масштабируется неоднородно, то сферическое проецирование становится эллипсоидным - идеальным для продолговатых объектов ромбовидной формы. Даже в случае неоднородного масштабирования на проецирование влияет не сам масштаб, а скорее положение центра гизмо по отношению к объекту. Основное назначение сферического гизмо заключается в организации помощи в размещении центра и индикации верхнего, заднего и неоднородного масштабирования.
Опция Spherical Mapping может также представляться как "сброс" для других типов карт. Переключение на Spherical с другого типа всегда сбрасывает гизмо в точную сферу. Переключение назад к прежнему типу устанавливает гизмо в состояние по умолчанию (квадрат для планарного и цилиндр с высотой сферы для цилиндрического).
Ориентация гизмо обладает наибольшим влиянием на сферические проекции. Полюса пиктограммы являются точками конвергенции для битовой карты и могут стать причиной сдавливания и завихрений (известных под названием полюсной сингулярности или особых точек на полюсах). Большинство завихрений связано с плотностью каркаса в данной критической точке - чем плотнее каркас, тем чище результирующая карта. Зеленая дуга гизмо указывает на шов, по которому битовая карта из одной плитки мозаики соединяет ребра оси U. Шов может быть очень заметен, если битовая карта не мозаична вдоль данного ребра и может разрушить множество эффектов. Хорошая идея - повернуть шов в ту сторону, где он не будет реально виден.
Сферическое проецирование начинается с вытягивания битовой карты вертикально от полюса до полюса и затем загибания ее горизонтально, начиная с заднего меридиана. Затем карта проецируется обратно на поверхность. Как знает любой картографист, нет способа, по которому прямоугольная карта превратилась бы в сферическую без искажения. Единственной областью, где имеются определенные возможности управления искажением, является экватор координат проецирования, как показано на рисунке 22.24. Здесь на экваторе битовая карта была обернута вокруг всей окружности, тогда как верхняя часть была обернута только на одну ее половину. Таким образом для того, чтобы казаться неискаженной на экваторе, битовая карта должна иметь отношение ширины к высоте 2:1. Битовые карты, не имеющие исходного отношения 2:1, должны иметь U или V мозаичность, отмасштабированную так, чтобы обеспечивать то же самое отношение.
Можно выбирать, какую ось масштабировать, хотя большинство битовых карт имеют тенденцию быть слишком узкими для своей высоты- Например, квадратная битовая карта должна увеличить мозаику по оси U в 2 раза, тогда как ось V остается той же. Если вертикальный размер является полной высотой, то мозаичность U следует увеличить. Битовая карта 640 х 480 требует, чтобы значение U масштабировалось в б40/(2 х 480) = 0.6667. Если горизонтальный размер должен поддерживаться постоянным, значение V нуждается в масштабировании 480/(640/2) == 1.5.
Проецирование Shrink Wrap является интересной альтернативой сферическому проецированию и идеально подходит для множества приложений. В то время, как сферическое проецирование имеет сингулярность у обеих полюсов, Shrink Wrap сингулярно только на основании - в области, которую легко скрыть, - идеальное решение для голов, облаков, деревьев и сфер, находящихся на шпилях.
Shrink Wrap работает с учетом только центральной области битовой карты. Shrink Wrap по сути обрабатывает битовую карту как круглый лист резины, оборачивая его вокруг объекта и натягивая подрезанную карту к низу. В результате получается практически неискаженная верхняя половина и вполне приличные бока. Рисунок 22.25 показывает, как это работает, оборачивая битовую карту по кругу. Поскольку Shrink Wrap отрезает углы, то кажется будто применялась только белая карта, а не белый круг на черном поле.
Гизмо Shrink Wrap реагирует подобно сферическому. Его выбор всегда приводит к сбросу. Масштаб гизмо значения не имеет, значение имеет только расположение его центра. Как и сферический гизмо, гизмо Shrink Wrap можно масштабировать неоднородно, покрывая эллипсоидные формы.
Проецирование Shrink Wrap лучше всего использовать с битовыми картами, которые мозаичны как по оси U, так и по оси V, или с образами высокого разрешения. Подрезание Shrink Wrap оставляет для проецирования меньшую часть образа, и маленькие битовые карты могут выглядеть зернистыми, поскольку они просматриваются вне своего диапазона. Те карты, которые делаются мозаичными, идеальны для Shrink Wrap. Мозаичность в диапазоне от 3 до 4 по направлениям U и V порождает удивительно хорошие результаты, пример которых показан на рисунке 22.26.
Следующее, что следует рассмотреть в контексте Shrink Wrap, - это его хорошая работа с проекциями битовых карт VW и WU. При настройке гизмо, особенно расположенных под углом и предназначенных для органических моделей, в случае использования описанных ранее мозаичных карт различные осевые проекции могут дать исключительно хорошие результаты.
Прямоугольное (Box) проецирование следует рассматривать как планарное, примененное с шести направлений, поскольку именно это и происходит. Пропорции, проецируемые каждой стороной, соответствуют пропорциям битовой карты. Масштабирование гизмо изменяет размер результирующего проецирования, как это происходит и в случае планарного проецирования. Неоднородное масштабирование гизмо означает, что стороны будут иметь различные пропорции отображения.
ПРИМЕЧАНИЕ
Битовая карта поддерживает высоту гизмо и масштабирует ось Х для совпадения пропорций битовой карты. Проекции Front, Back, Top и Bottom настроены, оставляя квадратные стороны Left и Right. Теперь, если требуется различное представление, можно вращать гизмо Box Mapping как угодно. Причина выбора тех или иных сторон зависит от способа их проецирования. Левая и правая стороны (ось Х гизмо) всегда рассматриваются "сторонами", тогда как другие оборачиваются вокруг оси Y, как показано на рисунке 22.27.
Box Mapping присваивает проецирование в соответствии с ориентацией нормали к поверхности гизмо. После того, как грань пересекает порог 45° между плоскостями проекций гизмо, она принимает проецирование с другой стороны. Таким образом Box Mapping является быстрым способом присвоения проецирования трудной геометрии.
Часто желательно, чтобы отображение, порождаемое Box Mapping, было одинаковым для всех сторон проекции. Так получается только тогда, когда гизмо Box Mapping представляет собой идеальный куб. Абсолютно кубическое гизмо проецирования прекрасно работает для материалов, использующих квадратные битовые карты, но вытягивает или сдавливает битовые карты других пропорций. Функция Bitmap Fit масштабирует гизмо для совпадения с битовой картой, но оставляет два конца квадратными и другие четыре непропорциональными. Если требуется, чтобы все шесть сторон были пропорциональны друг другу и битовой карте, следует настроить мозаичность карты, как показано на рисунке 22.28, и выполнить следующие шаги:
При правильно настроенном размере битовой карты Box Mapping идеально подходит для прямоугольной геометрии. Планарное проецирование предпочтительнее для локального управления отдельными областями с целью обеспечения критических выравнивании.
Управление тем, как материал должен пересекать поверхность, зависит от корректного применения проецирования. Решение того, как применить проецирование для получения желаемого результата, становится вопросом планирования - где применить, с какой проекцией, в какой ориентации и с какой мозаичностью. При окончательной доводке своих поверхностей на эти вопросы следует ответить.
Хотя практически каждая модель требует несколько отличных технологий, приводимые ниже стратегии полезны для определения, какое проецирование лучше подходит для геометрии модели:
Еще один ключевой момент при проецировании заключается в назначении его тогда, когда объект присутствует в наиболее чистой геометрической форме. Прежде чем разрушить стек моделирования, проанализируйте развитие форм и идентифицируйте точки, в которых проецирование проще всего выполнить. Например, лист лучше проецировать тогда, когда он только что вытянут и является гладким, нежели потом, когда он скручен и согнут. Нередко можно встретить деформирование объекта в форму, наиболее удобную для применения проецирования и затем восстановление прежней формы.
Последним следует рассмотреть расположение в стеке модификатора UVW, особенно при выполнении анимации модели. Если деформации происходят после модификатора UVW, координаты проецирования "прилипают" и проецирование вытягивает вершины объекта. Если деформация происходит перед модификатором UVW, объект кажется двигающимся по координатам, поскольку именно это и происходит.