Как смоделировать фигуру, чья поверхность грубее, чем у обычного трехмерного персонажа?
Тема:
Моделирование, рендеринг.
Используемые техники и инструменты:
Subdivision Surfaces (SDS-поверхности), Split Polygon Tool (Разбиение Многоугольника), Extrude Faces (Экструдировать Грани), Displacement Shader (Шейдер Смещения).
Многие трехмерные объекты имеют безупречно гладкую поверхность, что хорошо не для всех задач. Обычно, для того чтобы сделать поверхность немного грубее и имитировать неровности, используют, так называемые Bump Maps (Карты Рельефа). В действительности же Bump Map (Карта Рельефа) - это свойство не поверхности, а камеры. В большинстве случаев Bump Mapping (Наложение Карты Рельефа) является достаточно эффективной процедурой и не требует много времени при рендеринге. Однако она совершенно неприменима, если вам нужны деформации и выпуклости, отчетливо выделяются на фоне.
Познакомьтесь с Displacement Mapping (Наложение Карты Смещения) - техникой, которая не просто имитирует деформации для камеры, а реально деформирует поверхность, используя полутона процедурной текстуры или растрового изображения. К сожалению, эти деформации нельзя видеть в окнах моделирования. Нам придется их отрендерить.
Этот урок состоит из двух взаимосвязанных частей. Мы начнем с моделирования высокого худого человечка с маленькой головой, используя SDS-поверхности.
Немного практики - и это займет лишь пару минут. (Перед эпохой SDS-поверхностей это стоило разработчику не меньше часа.) Если у вас нет Maya Unlimited, вы можете достичь тех же результатов, используя инструменты разбиения и экструдирования и выполнив после них операцию Polygon / Smooth (Многоугольники / Сглаживание). Если вы хотите пропустить моделирование либо отложить его на потом, просто возьмите любой примитив и приступайте ко второй части урока, посвященной технике Displacement (Смещение).
Если вы случайно назначили материал полигональному кубу (а это на самом деле внешнее покрытие SDS-поверхности, но не сама поверхность) вместо SDS-поверхности, отмените назначение. Выделите непосредственно SDS-поверхность polyToSubdShapel (например, в окне Hypergraph), перед тем как вновь назначить материал. Для этого щелкните правой кнопкой мыши по SDS-объекту и воспользуйтесь контекстным меню.
Рис. 10.1. Полигональный куб, преобразованный в SDS-поверхностъ. Его контекстное меню позволяет сделать видимым исходный полигональный объект
Вы можете моделировать SDS-поверхности в двух основных режимах. В первом вы используете инструменты полигонального моделирования, а во втором - инструменты из мира NURBS-моделирования. Классические инструменты полигонального моделирования незаменимы при получении высокой подробности геометрии (например, в области, где ноги прикрепляются к туловищу). Именно поэтому большую часть моделирования нашего человечка мы будем осуществлять в режиме Polygon mode (Полигональный режим).
Рис. 10.2. Используя Split Polygon Tool (Разбиение Многоугольника), разбейте нижнюю грань куба на две части
Рис. 10.3. Инструмент Extrude Tool локально увеличивает плотность геометрии. Здесь мы это сделали, для того чтобы начать вытягивать грани для моделирования ног
Рис. 10.4. Несколько последовательных экструдов (а не экструзий) - и ноги готовы. Не совсем идеальные по форме, но все-таки это ноги. Последнее экструдирование (на этот раз в горизонтальном направлении) создаст стопы
Рис. 10.5. Вид сбоку используется для более точного моделирования носков стоп
Рис. 10.6. Моделирование нижних конечностей завершено. Немного практики - и это займет лишь пару минут
Рис. 10.7. Работаем над верхней частью тепа. Это первые два экструда для рук
Рис. 10.8. Первые два экструда для шеи и головы
Рис. 10.9. Последние штрихи: вращение затылка
В окне Channel Box (Окно Каналов) вы увидите, что история создания поверхности содержит слишком много уже ненужной информации. Для того чтобы облегчить сцену, удалите историю: Edit / Delete by Type / History (Редактирование / Удалить в зависимости от типа / История).
Имейте в виду, что при этом вы не сможете удалить «сабдивность» поверхности.
Используя контекстное меню и команды Coarser (Грубый) и Finer (Подробный), вы можете переключаться с одного уровня иерархии на другой для более глобальной или локальной работы как в полигональном, так и в стандартном режиме (рис. 10.10).
Рис. 10.10. Контекстное меню SDS-поверхности позволяет вам переключаться между различными уровнями иерархии. Более подробные уровни позволяют работать локально
На этом этапе не стоит слишком увлекаться такими деталями, как нос, плечи или пальцы ног. Displacement Shader (Шейдер Смещения) может стереть нос, плечи и другие мелкие элементы.
Рис. 10.11. Так создается Displacement Map (Карта Смещения) трехмерной текстуры проекционного типа. Откройте Attribute Editor (Редактор Атрибутов) для Shading Group (Шейдинг-группа), щелкните по шахматной иконке рядом с полем Displacement Mat и в окне Create Render Node (Создать Функциональный Узел Рендеринга) выберите параметр «As projection» для метода и, скажем. Solid Fractal для текстуры
Поскольку в окне моделирования вы не увидите никаких изменений, отрендерите сцену.
Рендеринг не займет много времени, - может, несколько минут, в зависимости от используемой геометрии, материала и, конечно, скорости вашего компьютера. Результаты наглядно демонстрируют разницу между Displacement Mapping (Карта Смещения) и Bump Mapping (Карта Рельефа). В рис. 10.12 как к персонажу впереди, так и к дальнему персонажу применялась одна и та же текстура Solid Fractal. Однако переднему персонажу текстура была назначена с помощью Bump Map (Карта Рельефа), а не Displacement Map (Карта Смещения) (как дальнему). Поверхность передней фигуры выглядит неровной, однако ее контур остается гладким, что отчетливо видно на фоне фона.
Рис. 10.12. В основе этих двух персонажей одна и та же геометрия и одинаковая текстура. Разница - в способе наложения текстуры. Неровность поверхности передней фигуры обусловлена применением Bump Map (Карта Рельефа). А метод наложения текстуры дальней фигуры - Displacement Map (Карта Вытеснения). Края передней фигуры выглядят гладкими, a Displacement Map изменяет не только внутренние области, но и контур поверхности. И хотя больше никакие настройки процедуры отображения не менялись, Displacement Map значительно увеличивает толщину персонажа. Bump Map, в свою очередь, в основном сохраняет первоначальную геометрию модели
Displacement Mapping (Карта Смещения) может иметь больший или меньший эффект, в зависимости от размера узловатого человечка.
Есть два способа настройки интенсивности эффекта. Один из них - это изменение плотности наложения текстуры на геометрию. В окнах моделирования вы можете видеть каркасный куб с именем placeSDTexturel. Это именно тот инструмент, с помощью которого мы можем изменять плотность наложения текстуры (рис. 10.13).
На рис. 10.14 слева - отрендеренная сцена. С помощью отмеченной пиктограммы вы можете сохранить отрендеренное изображение в оперативную память. Оно не будет удалено до тех пор, пока вы не выйдете из Мауа (или пока не произойдет фатальный сбой в программе).
Второй способ настройки текстуры смещения - это использование градаций серого текстуры. Displacement Mapping (Карта Смещения), как и Bump Mapping (Наложение Карты Рельефа), использует только яркость (альфа-канал, а не цвет) текстуры в деформации геометрии. Для большинства текстур, таких, как Solid Fractal, вы найдете входные данные для полутонов в секции Color Balance в окне Attribute Editor (Редактор Атрибутов). Начните с самых темных, почти черных значений цвета и низкого значения для Alpha Gain (Усиление Альфа-канала) (рис. 10.15).
Рис. 10.13. Каркасный куб вокруг стоп персонажа определяет размер наложенной Displacement Map (Карта Смещения). Чем меньше куб, тем чаще текстура повторяется на объекте
Рис. 10.14. Объект, отображающий расположение 3d текстуры, теперь охватывает весь персонаж полностью
Рис. 10.15. Окно Attribute Editor (Редактор Атрибутов) для текстуры. В верхней части располагаются параметры, отвечающие за структуру фрактала, ниже - установки для градаций серого, отвечающие за деформации. Основные параметры для Displacement Map (Карта Смещения) - это Color Gain (Усиление Цвета) и Alpha Gain (Усиление Альфа- канала). Большие значения этих параметров означают более белый цвет, что приводит к увеличению объекта. Если Displacement Map (Карта Смещения) обнаруживает только черный цвет, геометрия остается нетронутой
Вообще-то, персонаж увеличивается в размере, если вы применяете яркую текстуру. Когда Displacement Mapping (Карта Смещения) обнаруживает только черный цвет, размер модели не меняется. Если текстура имеет значительные колебания в яркости, персонаж получится очень «комковатым». Выпуклости соответствуют наиболее ярким областям текстуры.
Вам придется приложить много усилий и совершить много (много... много) ошибок в поисках подходящей комбинации настроек для достижения желаемого результата. К сожалению, инструмент IPR (Интерактивный фотореалистичный рендеринг) не работает с Displacement Map (Карта Смещения). Это значит, что вам придется потратить много времени на тестовый рендеринг.
Используя настройки окна рендеринга, отрендерите либо часть изображения, либо изображение маленького размера.
SDS-моделирование и Displacement Mapping (Карта Смещения) - это два мощных инструмента для эффективного создания сложных персонажей, которые выглядят так, будто их вылепили из глины (рис. 10.16) или выковали из металла (рис. 10.17).
Рис. 10.16. Персонаж, вылепленный из глины
Рис. 10.17. Выкованные из металла узловатые человечки
Для создания более мелкой текстуры вы можете добавить Bump Map (Карта Рельефа) к Displacement Mapping (Карта Смещения). Bump mapping добавит мелкие шероховатости к изменениям поверхности, создаваемым техникой Displacement mapping.
При экструдировании UV-координаты текстуры очень неровно распределяются. Это можно видеть, если в качестве метода отображения выбрать Normal (Обычный), а не As Projection (Проекция). Для решения проблемы распределения текстурных координат вам нужно создать новую UV-карту например с помощью команды Automatic Mapping (Автоматическое создание текстурных координат), которую вы найдете в меню Subdiv Surfaces (SDS-поверхности).
Проекционная текстура, как та, с которой мы только что работали, не использует UV-координаты поверхности. Однако, как только вы начнете анимацию персонажа, вам придется зафиксировать проекционную текстуру на его геометрии. В противном случае, как только персонаж начнет двигаться, текстура буквально «поплывет» по его поверхности. Команду для фиксации текстуры на поверхности вы найдете в окне Hypershader. Выберите Edit / Convert to File Texture (Редактирование / Преобразовать в файловую текстуру). Если вы хотите для наложения текстур использовать какие-то изощренные средства из арсенала полигонального моделирования, то сохраните сцену и преобразуйте наше существо из SDS-поверхности в полигоны (выберите Modify / Convert / Subdiv to Polygons (Модифицировать / Преобразование / SDS-поверхности в Полигоны).
Рис. 10.18. Узловатые человечки, выкованные из золота
А теперь кое-что новенькое. Приходилось .ли вам в последнее время нажимать клавиши А или F?
Назад | Начало | Вперед |