Текст книги "3ds Max 2008. Секреты мастерства"
Автор книги: Владимир Верстак
Жанр: Программы, Компьютеры
Возрастные ограничения: +12
сообщить о неприемлемом содержимом
Текущая страница: 40 (всего у книги 46 страниц)
Глава 13
Текстурирование автомобиля
• Основы текстурирования автомобиля
• Текстурирование деталей автомобиля
После построения модели автомобиля необходимо ее текстурировать. Именно удачные текстуры придают модели вид, который может претендовать на реалистичность.
Текстурирование – не менее сложная и увлекательная задача, чем моделирование. В данной главе я хочу высказать свою точку зрения на текстурирование модели, в частности такой сложной, как автомобиль.
Глава разделена на два упражнения. В первом рассматриваются общие вопросы и текстурирование кузова. Второе описывает текстурирование отдельных элементов.
Текстурирование неразрывно связано с визуализацией, поэтому речь пойдет и о визуализации, и о текстурировании. Почему именно с визуализацией? Вы когда-нибудь обращали внимание, что на современных компьютерах даже сложная геометрия без текстур визуализируется достаточно быстро? Но стоит ввести в сцену материалы с трассируемыми отражениями, глобальное освещение или мягкие тени, и время визуализации увеличивается в несколько или даже десятки раз.
Основы текстурирования автомобиляПрежде чем начинать текстурировать, необходимо определиться, для каких целей нужна модель. Если для игр или Интернета, то лучше всего подойдет низкополигональная модель с качественными текстурами, скрывающими недочеты подобного моделирования (кроме того, модели для визуализации в реальном времени (Real Time[3]3
Визуализация в реальном времени применяется в играх и программах, позволяющих интерактивное управление. Суть ее состоит в том, что объекты визуализируются почти мгновенно (без больших затрат времени на просчеты). При этом используются низкополигональные модели, а текстуры не могут быть составными и иметь небольшой объем, на них сразу присутствуют тени, отражения и т. д.
[Закрыть]) чаще всего имеют одну текстуру на весь объект). Если размер (я имею в виду количество полигонов) и время визуализации не принципиальны, то больше внимания стоит уделить качеству модели, материалам и текстурам.
При текстурировании модели я придерживаюсь той точки зрения, что все, что можно сгенерировать при помощи процедурных карт и окрасить при помощи материалов, должно быть сделано именно так. Такие материалы дают максимальное качество, возможность быстро менять параметры и не занимают дисковое пространство. Естественно, все должно быть в разумных пределах. Например, я не стал бы делать регистрационный номер на автомобиле методом моделирования с последующим наложением материалов, если он не будет основной деталью изображения. Не следует уделять слишком пристальное внимание и материалам, находящимся в салоне автомобиля, которые будут едва видны через стекла. Очень часто при попытке сделать реалистичные материалы процессор нагружается настолько, что тестовая визуализация длится часами. Хочу предостеречь вас от этого. Всегда существует возможность оптимизировать сцену. Например, исключить из визуализации колеса, которые расположены с противоположной стороны автомобиля, но у которых протектор на шине состоит из большого количества полигонов, а для диска используется такой материал, как Raytrace (Трассировка), и т. д.
Прежде чем приступить к непосредственному выполнению практической задачи, обратимся к теории.
Что делает модель автомобиля реалистичной? Прежде всего материалы и отражения, затем свет и тени, которые помогают ощутить объем, и, конечно, окружение.
Возьмем две фотографии автомобилей. На рис. 13.1 (смотрите также цветное изображение CH13_01.jpg на прилагаемом к книге DVD в папке ImagesГлава 13) представлена фотография автомобиля с «жесткими» отражениями, что, с одной стороны, привносит некоторый хаос, а с другой – позволяет лучше ощутить пространство.
Рис. 13.1. Фотография автомобиля с «жесткими» отражениями
На фотографии видно, как отражаются в капоте деревья, небо, а на крыле и пороге – трава. Такие отражения могут появиться, только если краска покрыта слоем лака и отполирована. Создавая их на вашей модели, нужно иметь в виду, что вся геометрия должна быть построена безукоризненно, иначе в отражениях проявятся все неровности кузова.
На второй фотографии (рис. 13.2) у автомобиля более «мягкое» распределение цвета по поверхности.
Отражения не такие «жесткие» и почти незаметны, но вместе с тем видна глубина цвета, а выглядит автомобиль ничуть не хуже предыдущего. Судя по тени, падающей от автомобиля, фотография сделана в солнечный день, а отсутствие ярко выраженных отражений говорит о том, что поверхность имеет матовую основу. Равномерное распределение цвета по поверхности создает целостное восприятие автомобиля, от чего он только выигрывает.
Рис. 13.2. Фотография автомобиля с «мягким» распределением отражений
В качестве исходной модели для текстурирования я буду использовать модель BMW пятой серии (рис. 13.3), вы же можете применить другую модель или BMW из предыдущего упражнения по моделированию автомобиля.
Рис. 13.3. Модель автомобиля без текстур
Начните с расстановки освещения. Это первое, на что нужно обратить внимание при текстурировании. В данном случае вполне подойдет трехточечное освещение с ключевым тенеобразующим источником света. Сразу же настройте свет так, чтобы он не требовал значительной коррекции в процессе работы. Изменения настроек освещения, которые могут потребоваться в дальнейшем, должны быть незначительными, так как свет влияет на восприятие материалов и текстур, что, в свою очередь, может потребовать повторной настройки этих компонентов.
Прежде чем заняться материалом для кузова автомобиля, присвойте какую-нибудь текстуру плоскости, на которой он стоит. Это может быть земля, асфальт или дорожная плитка, как в моем случае.
ПРИМЕЧАНИЕ
Создание плоскости, на которой стоит автомобиль, имеет важное значение для текстурирования. Это связано с тем, что полированная поверхность автомобиля должна отражать окружающие предметы. Часть окружения можно создать при помощи текстурных карт, но поверхность, на которой стоит автомобиль, лучше делать при помощи редактирования на уровне подобъектов, так как, кроме участия в отражениях, она принимает тени от объектов, создавая глубину пространства.
Напомню, как присваиваются текстуры объектам.
1. Откройте окно Material Editor (Редактор материалов), щелкнув на кнопке
находящейся на панели инструментов, либо выполнив команду Rendering ► Material Editor (Визуализация ► Редактор материалов), либо нажав клавишу M.
2. В окне Material Editor (Редактор материалов) щелкните на любой незадействованной ячейке с образцом материала.
3. В свитке Maps (Карты текстур) нажмите кнопку None (Отсутствует) рядом с картой Diffuse Color (Цвет рассеивания).
4. В открывшемся окне Material/Map Browser (Окно выбора материалов и карт) выберите из списка карту Bitmap (Растровое изображение). В результате откроется окно диалога Select Bitmap Image File (Выбор растрового изображения).
5. Выберите текстурную карту с изображением плитки.
В данном разделе речь идет о создании материала для кузова и лобового стекла автомобиля, поэтому все остальные объекты можно убрать со сцены, чтобы исключить их визуализацию. На рис. 13.4 представлены объекты сцены, с которыми мы будем работать.
Теперь создайте простой материал. Для этого откройте окно Material Editor (Редактор материалов) и щелкните на любой незадействованной ячейке с образцом материала. В качестве тонированной раскраски стандартного материала выберите в раскрывающемся списке свитка Shader Basic Parameters (Основные параметры затенения) строку Multi-Layer (Многослойная раскраска).
ПРИМЕЧАНИЕ
Можно воспользоваться и другой тонированной раскраской, например Phong (По Фонгу), но в таком случае придется в качестве цвета рассеивания использовать карту Falloff (Спад), а у Multi-Layer (Многослойная раскраска) данная возможность заложена в базовых параметрах. Именно эта тонированная раскраска лучше всего позволяет управлять двумя независимыми подсветками и создавать вид окрашенной поверхности, покрытой воском или лаком.
В свитке Multi-Layer Basic Parameters (Основные параметры многослойной раскраски) задайте значения параметров раскраски, показанные на рис. 13.5.
Рис. 13.4. Кузов автомобиля, подготовленный для текстурирования
Рис. 13.5. Свиток Multi-Layer Basic Parameters (Основные параметры затенения) со значениями параметров раскраски
Задайте для параметров цвета свитка Multi-Layer Basic Parameters (Основные параметры затенения) следующие значения:
■ Ambient (Цвет подсветки): Red (Красный) – 17, Green (Зеленый) – 36, Blue (Синий) – 54;
■ Diffuse (Цвет рассеивания): Red (Красный) – 3, Green (Зеленый) – 59, Blue (Синий) – 129;
■ Color (Цвет) в области First Specular Level (Первый слой отражения): Red (Красный) – 200, Green (Зеленый) – 191, Blue (Синий) – 237;
■ Color (Цвет) в области Second Specular Level (Второй слой отражения): Red (Красный) – 82, Green (Зеленый) – 116, Blue (Синий) – 227.
Обратите внимание, что вряд ли вид визуализированного вами автомобиля будет в точности соответствовать тому, что получится у меня. Я никогда не копирую старых настроек материалов, так как в другой сцене они обычно выглядят иначе. В связи с этим попробуем разобраться с настройками этого материала, чтобы понять, как он работает, и уметь создавать такие материалы самостоятельно.
Цвет диффузного рассеивания Diffuse (Цвет рассеивания) – основной цвет, определяющий цвет материала. От него зависит то, какого цвета будет кузов вашего автомобиля. Подбирается из возможных цветов заводской раскраски. Цвет окружающей среды Ambient (Цвет подсветки) – это обычно цвет, совпадающий с цветом диффузного рассеивания, но я предпочитаю использовать более темные тона (чаще всего черный). Параметры этого цвета не критичны.
Параметр Color (Цвет) в области First Specular Leyer (Первый слой отражения) определяет глянец поверхности автомобиля. Он создает впечатление окрашенной поверхности, находящейся под слоем лака. По тону он должен быть близким к цвету, но значительно ярче его.
Параметр Color (Цвет) в области Second Specular Layer (Второй слой отражения) задает цвет в местах бликов. Он должен содержать в себе цвет диффузного рассеивания, но стремиться к белому.
Остальные параметры – Level (Уровень), Glossiness (Глянец), Anisotropy (Анизотропия) и Orientation (Ориентация) – могут различаться в зависимости от геометрии и источников света. В основном они контролируют положение и размер бликов на поверхности объекта. Счетчик Diffuse Level (Уровень рассеивания), который расположен под параметром цвета диффузного рассеивания, позволяет дополнительно контролировать уровень яркости основного цвета.
Кроме того, вы можете применить в качестве карты Reflection (Отражение) карту Falloff (Спад) (рис. 13.6), использующую в качестве подматериала карту Raytrañe (Трассировка).
Рис. 13.6. Фрагмент свитка Maps (Карты текстур) с картой Falloff (Спад) в качестве карты Reflection (Отражение)
Материал усложняется картой Falloff (Спад) в качестве карты Reflection (Отражение), но с ее помощью можно получить контроль над интенсивностью отражений на поверхности. Настройки этой карты представлены на рис. 13.7.
Цвета Front : Side (Перед : сторона) – градации серого, такие же, как и на рис. 13.7. График Mix Curve (Кривая смешивания) определяет степень участия обеих карт в отражении по мере удаления от середины объекта к его сторонам.
Настройки карты Raytrañe (Трассировка), являющейся составной частью карты Falloff (Спад), представлены на рис. 13.8. Они не имеют почти никаких изменений относительно установок по умолчанию, кроме цвета окружающей среды в области Background (Фон), который я сделал светло-голубым.
После создания и настройки материала можно применить его к элементам кузова автомобиля. Для этого щелкните в окне Material Editor (Редактор материалов) на ячейке образца материала кузова и перетащите его в окно проекции на объект, который надо текстурировать. Затем можно провести тестовую визуализацию. Для этого выполните команду Rendering ► Render (Визуализация ► Визуализировать). В появившемся окне Render Scene (Визуализация сцены) выберите окно проекции и щелкните на кнопке Render (Визуализировать). В результате получится визуализированное изображение кузова автомобиля с материалом (рис. 13.9).
Вполне возможно, вы обратили внимание, что в изображении отсутствуют блики. Пусть это вас не смущает – просто я отключил их в настройках источников света. В своей работе я предпочитаю выставлять блики позже при помощи специально созданных для этого источников света, когда можно управлять их местоположением на поверхности объекта и интенсивностью вне зависимости от основных источников света.
Рис. 13.7. Свиток Falloff Parameters (Параметры спада) настроек карты Falloff (Спад)
Рис. 13.8. Свиток Raytracer Parameters (Параметры трассировки) настроек карты Raytrace (Трассировка)
Проанализируем то, что получилось при визуализации. Цвет покрытия кузова соответствует тому, который предполагался для этого материала, но отражений по-прежнему не хватает. Появились отражения на боковых дверках, бампере и немного на капоте, но этого мало для реалистичной модели. Чтобы усилить ощущение пространства, нужно добавить отражения к кузову автомобиля.
В настройках визуализатора или карты Raytrace (Трассировка) можно использовать текстурную карту в качестве карты Environment (Окружающая среда). Это, пожалуй, самый простой способ, но не лучший. Такое качество отражений удовлетворяет требованиям скорее второстепенных деталей, чем основных (рис. 13.10).
Можно создать окружение, то есть построить дополнительно геометрию (деревья, здания, людей и т. д.), которые будут отражаться в кузове и стеклах автомобиля. Метод хороший, но чреват долгой визуализацией (ведь процессору придется дополнительно просчитывать все эти объекты). Кроме того, вам придется создавать все эти объекты, если нет готовых (рис. 13.11).
Рис. 13.9. Визуализированное изображение с примененным материалом для кузова
Рис. 13.10. Отражения, полученные при помощи карты окружения
Можно построить полусферу, накрывающую автомобиль на значительном расстоянии (чтобы внутрь поместилась не только машина, но и камеры с источниками света). Затем к внутренней стороне этой полусферы применить текстуру с панорамным изображением того, что должно отражаться в автомобиле (рис. 13.12). Кстати, после того как будет построена такая полусфера, не забудьте повернуть ее нормали внутрь. Такой метод получения отражений, пожалуй, проще, но требует дополнительной работы с панорамной текстурой и ее местоположением на сфере.
Рис. 13.11. Отражения на капоте, полученные от объектов сцены
Рис. 13.12. Взаимное расположение объектов сцены при построении отражений от поверхности полусферы
Последний способ – организовать в сцене присутствие дополнительных плоскостей с текстурами, которые будут отражаться в кузове автомобиля. Он допускает относительную свободу в распределении отражений по поверхности кузова автомобиля и их контроль.
Именно четвертый метод будет рассмотрен немного позже как самый подходящий для этой задачи. Сейчас создадим еще один материал – стекло. Это позволит настраивать отражения не только на кузове, но и на стеклах автомобиля, которые также являются отражающей поверхностью и занимают значительное место в восприятии целостного изображения.
Можно использовать прозрачное стекло, но я предпочитаю немного тонированное, чтобы скрыть объекты салона, сделанные с малым количеством полигонов и не перегружающие сцену. И лобовое, и заднее стекла имеют темную обводку по периметру, поэтому начните работу с присвоения этим объектам текстурных координат. Рассмотрим данный процесс для лобового стекла (для заднего он аналогичен). Для этого выполните следующие действия.
1. В любом окне проекции выделите лобовое стекло (должно быть отдельным объектом или как минимум самостоятельным элементом с уникальным значением параметра ID (Идентификатор материала)).
2. Добавьте модификатор Unwrap UVW (Расправить UVW-проекцию), выполнив команду Modifiers ► UV Coordinates ► Unwrap UVW (Модификаторы ► UV-координаты ► Расправить UVW-проекцию).
3. Щелкните на кнопке Edit (Редактирование), в результате чего откроется окно редактирования текстурных координат.
4. В меню окна редактирования текстурных координат выполните команду Mapping ► Flatten Mapping (Проекционные координаты ► Плоские проекционные координаты) и, не меняя настроек в появившемся окне, нажмите OK.
В результате этих операций в окне редактирования должна появиться развертка лобового стекла, показанная на рис. 13.13.
Полученную развертку необходимо скопировать в любую программу для работы с растровыми изображениями, где вы сможете сделать карту маски (например, Adobe Photoshop).
СОВЕТ
Если вы не пользуетесь программами захвата изображения с экрана, то копирование можно провести через буфер обмена, нажав клавишу Print Screen (расположена справа от ряда функциональных клавиш) и затем вставив экранную копию в файл при помощи сочетания клавиш Ctrl+V (стандартная операция вставки из буфера обмена).
Используйте скопированное изображение в качестве слоя фона в приложении растровой графики и сделайте маску для лобового стекла. Если помните, по периметру стекла идет темная, почти черная, тонировка – именно ее необходимо сделать, выполнив отступы на небольшое расстояние от краев контура стекла (рис. 13.14).
Сохраните полученное изображение в цветовом режиме Grayscale в любом доступном формате.
В качестве материала для лобового стекла я использую Blend (Смешиваемый), где первый материал – тонированная окантовка стекла, второй – стекло, а маска (созданный в программе Adobe Photoshop файл GlassFront.jpg) управляет долей каждого материала в результирующем (рис. 13.15).
Рис. 13.13. Развертка проекционных координат лобового стекла автомобиля
Рис. 13.14. Текстурная маска для материала лобового стекла
Рассмотрим материал стекла подробнее. Параметр Material 1 (Материал 1) – окантовка лобового стекла. Здесь используется материал Standard (Стандартный) с прозрачностью, равной 80, и цветом, соответствующим тому, который вы хотите видеть на краях стекла. У меня это серо-коричневый цвет для Diffuse (Цвет рассеивания) и для Ambient (Цвет подсветки) с настройками Red (Красный) – 107, Green (Зеленый) – 103, Blue (Синий) – 99. В качестве карты Reflection (Отражение) я использовал карту Falloff (Спад), настройки которой идентичны установкам такой же карты, использованной при создании материала кузова, с той разницей, что величина параметра Reflection (Отражение) в данном случае составляет 45 (рис. 13.16).
Рис. 13.15. Настройки материала Blend (Смешиваемый) для лобового стекла
Рис. 13.16. Настройки первого материала стекла
Параметр Material 2 (Материал 2) – средняя часть лобового стекла (его заполнение). Материал сделан по тому же принципу, что и окантовка, с той разницей, что я использовал немного другой цвет и величина прозрачности здесь составляет уже 35, а отражений – 80. Для Diffuse (Цвет рассеивания) и Ambient (Цвет подсветки) заданы следующие значения: Red (Красный) – 83, Green (Зеленый) – 72, Blue (Синий) – 49. Кроме того, я применяю двусторонний материал, а в качестве тонированной раскраски стандартного материала – Phong (По Фонгу), и хотя большой разницы нет, раскраска по Фонгу позволяет получить более мягкое сглаживание.
Если вы внимательно посмотрите на свиток Maps (Карты текстур), то заметите, что отсутствует карта преломления в строке Refraction (Преломления). Хотя стекло и является материалом, преломляющим свет, проходящий через него, но из-за его незначительной толщины и с учетом расстояния, с которого автомобиль будет визуализироваться, я не считаю нужным использовать в данном случае преломления. Эффект от их применения почти незаметен, а процессор получает ощутимую дополнительную нагрузку. При желании вы можете поэкспериментировать, используя карту Raytrace (Трассировка) или Reflect/Refract (Отражение/ преломление). На рис. 13.17 показаны использованные мною настройки второго материала для лобового стекла автомобиля.
Продолжим разговор об организации сцены и вернемся к отражениям. Дальнейшую работу продолжите, используя четвертый способ получения отражений при помощи дополнительных плоскостей. Для этого поместите в сцену несколько примитивов Plane (Плоскость): один должен быть расположен сверху (имитировать небо), оставшиеся (от четырех до восьми) располагаются по сторонам автомобиля. Все плоскости должны находиться на небольшом расстоянии от автомобиля (рис. 13.18).
Рис. 13.17. Настройки второго материала стекла
При создании плоскостей не забудьте проследить, чтобы их нормали были обращены к автомобилю. После этого присвойте плоскостям текстуры с изображениями, которые будут отражаться в автомобиле. Для всех плоскостей, кроме плоскости неба, я использовал одну фотографию, хотя можно и разные – дело вкуса.
Перед выполнением визуализации необходимо изменить параметры всех плоскостей. Для этого выполните следующие действия.
1. В любом окне проекции выделите все плоскости, построенные для генерации отражений.
2. Щелкните правой кнопкой мыши на выделении, в результате чего откроется контекстное меню.
Рис. 13.18. Расположение плоскостей с текстурами отражения в окнах проекций программы 3ds Max
3. Выберите пункт Object Properties (Свойства объекта).
4. В области Rendering Control (Управление визуализацией) появившегося окна Object Properties (Свойства объекта) задайте параметрам объекта значения, показанные на рис. 13.19.
Теперь можно провести тестовую визуализацию. Если использовались темные фотографии, то вам, возможно, понадобится скорректировать положение текстур и изменить значение параметра Self-Illumination (Собственное свечение). Иногда приходится менять положение плоскости, имитирующей небо, чтобы найти оптимальные отражения.
После добавления плоскостей я поместил в сцену один источник света, который создает блики на бампере и передней части капота, а также дополнил автомобиль некоторыми деталями и провел тестовую визуализацию. На рис. 13.20 показано получившееся у меня изображение.
На данном рисунке изображена только первая тестовая визуализация. Чтобы получить хорошие реалистичные отражения, нужно не только подобрать соответствующие текстуры, но и правильно их разместить относительно поверхности автомобиля. Желательно, чтобы текстуры и их отражения соответствовали окружающей среде вашей сцены.
Рис. 13.19. Настройка плоскостей отражения в области Rendering Control (Управление визуализацией)
Рис. 13.20. Визуализация кузова и стекол автомобиля с отражениями
ПРИМЕЧАНИЕ
На прилагаемом DVD в папке ExamplesГлава 13 находится файл Car_materials.mat, содержащий материалы кузова и стекла.
Правообладателям!
Это произведение, предположительно, находится в статусе 'public domain'. Если это не так и размещение материала нарушает чьи-либо права, то сообщите нам об этом.