Пешеходный переход
Как в реальном времени из NURBS-плоскости сделать пешеходную «зебру», растворяющуюся в густом тумане?
Тема:
Аппаратный Рендеринг.
Используемые техники и инструменты:
Assign Material per Patch (Попатчевое присвоение материала), Hardware Fog (Аппаратный туман).
В отличие от полигональной NURBS-поверхность не имеет граней, поэтому она допускает наложение одной-единственной текстуры на всю поверхность целиком. Если вы, скажем, хотите приклеить логотип компании на NURBS-тостер, вы, скорее всего, используете метод Stencil (Трафарет). Но поскольку Stencil (Трафарет) фактически плавает над поверхностью (что иногда имеет свои преимущества), этот метод бесполезен, если вы хотите использовать параметризацию поверхности в качестве текстурных координат при наложении текстуры. Скажем, у вас есть NURBS-улица и вы хотели бы добавить к ней осевую линию. Вам бы долго пришлось возиться с параметрами закладки place2dTexture окна Attribute Editor (Редактор Атрибутов), пока не получили бы требуемое, как на рис. 23.1. Но этот метод не абсолютно точен при интерактивной работе [Здесь имеется в виду, что при визуализации расположение текстуры может отличаться от того, что вы видите в окне моделирования. -Примеч. ред. ], и если вы дополнительно (еще) захотите добавить «зебру», то у вас ничего не получится.
Вы должны были использовать многослойную текстуру, но для такой простой задачи это было бы чересчур сложное решение. Не правда ли, было бы здорово, если бы мы могли использовать патчи NURBS-поверхности, которые мы видим в окне моделирования, для того, чтобы частично и в интерактивном режиме раскрасить улицу в серый и белый цвета?
Теперь это желание может быть реализовано. Мауа 4 позволяет вам присваивать индивидуальные цвета к различным частям NURBS-поверхности. Правда, с большим ограничением: результат можно увидеть только при использовании аппаратного шейдинга - он не визуализируется! Тем не менее это довольно заметный шаг вперед, поскольку многие художники используют Мауа в проектах реального режима времени.
Но все-таки в процессе работы над этим уроком помните, что вы не сможете использовать этот метод (или новый инструмент Hardware Fog Tool (Аппаратный туман) в высококачественно визуализирован- ной анимации. Однако я уверен, что вы оцените быстрый и простой способ тек- стурирования улицы осевой линией и пешеходной «зеброй». Кроме того, он по требует хороших навыков выделения отдельных патчей.
Рис. 23.1.
Утомительный метод назначения уличной разметки NURBS-поверхности использованием шахматной текстуры. Слева: шахматная текстура, наложенная на всю поверхность целиком. В середине: параметры расположения текстуры настроены так, чтобы получить разметку пешеходной «зебры». Справа: текстура, настроенная так, чтобы получить осевую линию. Используя такой подход, получить одновременно и осевую линию, и пешеходную «зебру» невозможно
Создайте NURBS-плоскость.
В окне Channel Box (Окно Каналов) откройте секцию makeNurbsPlane и измените Width (Ширина) на 3, a Length Ratio (Соотношение сторон) на 10.
Увеличьте количество патчей вдоль U до 21, а вдоль V до 11 (см. рис. 23.2).
Мы получили плоскость следующего размера: ширина - 3 единицы, длина - в 10 раз больше, прямо как на настоящей дороге. Количество патчей - это шаблон для аппаратного текстурирования.
Выберите Window / Rendering Editors (Окно / Редакторы Рендеринга), для того чтобы открыть Hypershade. Создайте материал для асфальта улицы и материал для белой разметки.
Назначьте серый материал всей улице.
Этот - и только этот - материал будет использоваться при программном рендеринге. Все остальные цвета в этом уроке будут видимы только при аппаратном рендеринге.
Рис. 23.2.
Новая NURBS-плоскость с относительно высокой плотностью геометрии
Щелкните правой кнопкой мыши по дороге для получения изображения (только) Surface Patches (Патчи Поверхности) NURBS-плоскости (рис. 23.3).
Рис. 23.3.
Используя контекстное меню поверхности, сделайте патчи видимыми и доступными для выделения
Заметьте: в модуле меню маски выделения в верхней части окна Maya Surface Patches (Патчи Поверхности) называются NURBS-Patches (рис. 23.4). Оба термина обозначают одно и то же.
Рис. 23.4.
Вместо контекстного меню вы можете использовать маску выделения в верхней части окна Мауа для отображения патчей поверхности
В следующем шаге мы найдем самый лучший способ для выделения отдельных патчей, используя различные окна моделирования.
В окне Front View (Вид Спереди) выделите центральные патчи улицы (рис. 23.5).
Рис. 23.5.
В окне Front View (Вид Спереди) вы можете одновременно выделить все центральные патчи улицы
В окне Top View (Вид Сверху) снимите выделение с каждого второго патча (клавиша CTRL) (см. рис. 23.6).
Проверьте выделение в перспективном окне. Если вы случайно снимете выделение, используйте команду Undo (Отменить Действие).
Откройте Hypershader. Щелкните правой кнопкой мышки по белому материалу и, используя команду Assign Material to Selected (Назначить Материал выделенным объектам), наложите белую разметку на выделенные патчи (см. рис. 23.7).
Как только вы снимете выделение и вернетесь из режима Component mode (компонентный режим ) в режим Object mode (объектный режим), то увидите белые полосы вдоль дороги (см. рис. 23.8). Если разрешение поверхности вдоль оси U (вдоль длины улицы) у вас небольшое, полоски будут широкими. Если по какой-то причине вы недовольны размером линий разметки, выполните команду Edit NURBS / Insert Isoparms (Редактирование NURBS / Вставить изопармы). Так вы добавите дополнительные изопармы, а значит, и новые патчи к поверхности.
Рис. 23.6.
В окне Top View (Вид Сверху) снимите выделение с каждого второго патча
Рис. 23.7.
Оставшиеся патчи получают белый материал для изображения осевой линии улицы
Рис. 23.8.
Теперь осевая пиния разметки видна
Плотность ячеек по оси V (по ширине улицы) позволит нам нанести разметку пешеходного перехода.
Выделите пары соседних патчей для пешеходного перехода. Оставьте невыделенными по два патча между каждой парой выделенных.
Мы получили разметку пешеходного перехода, и расстояние между ее линиями в два раза больше, чем ширина осевой линии разметки.
Назначьте белый материал выделенным ячейкам (см. рис. 23.9).
Если серый патч случайно окрасится в белый цвет, просто снова назначьте ему серый асфальтовый цвет тем же самым способом.
Деформируйте поверхность так, чтобы улица слегка изогнулась (см. рис. 23.10).
Наконец, давайте используем еще один эффект, видимый лишь при аппаратном шейдинге, но не при рендеринге. Выберите Shading / Hardware Fog (Шейдинг / Аппаратный туман) (рис. 23.11). Вы можете настроить этот эффект в окне настроек. Это великолепное презентационное средство, особенно если вы проанимируете камеру и просчитаете тестовую анимацию. Для «настоящего» (то есть программного) рендеринга вам нужен другой вид тумана, который не реализуется графической картой на аппаратном уровне: Environment Fog (Туман в Окружающей Среде).
Рис. 23.9.
А теперь у нас есть и пешеходный переход
Рис. 23.10.
Деформированная улица
Рис. 23.11.
Эффект Hardware Fog (Аппаратный туман) идеален для презентаций в реальном режиме времени
А теперь кое-что новенькое. Не приходилось ли вам сравнивать одуванчик, который растет перед вашей дверью, с одуванчиком, созданным в Мауа?