Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Mental ray 3.3 для 3ds max.docx
Скачиваний:
5
Добавлен:
01.09.2019
Размер:
9.59 Mб
Скачать

Интерфейсы шейдеров mib_lightmap_write и mib_lightmap_sample

Поскольку, кроме mib_lightmap_sample, в библиотеке mental ray других сэмплеров нет, возникает вполне логичный вопрос - что еще, кроме карт освещенности, можно запекать средствами самого mental ray? Правильный ответ - ничего, кроме карт освещенности. Для появления новых возможностей нужно программировать дополнительные шейдеры - сэмплеры.

Существует еще один способ: в качестве сэмплеров можно использовать любой материальный шейдер mental ray. В этом случае основной шейдер будет в нужное время вызывать материальный шейдер для каждой точки поверхности и записывать возвращаемый им цвет в запекаемую текстуру.

Этот способ не совсем корректен, поскольку использовать материальные шейдеры напрямую в качестве сэмплеров нельзя, так как они используют в расчетах данные о положении камеры и BRDF - двунаправленную модель расчета освещения (падающее освещение - отраженное освещение). Использование материальных шейдеров будет совершенно корректным только в случае, если для конечного результата положение камеры несущественно. Например, этот подход позволяет запечь blend- материалы 3ds max, запекание которых штатными средствами "макса" (render to texture) все еще затруднительно, или ambient occlusion, или процедурные карты.

Использование материальных шейдеров является недокументированной возможностью mental ray, использовать этот метод "можно, но осторожно". Назовем этот способ запекания "способом №1"

Кроме средств mental ray в 3ds max предусмотрены штатные инструменты запекания в текстуры - render to texture (меню Rendering > Render To Texture, клавиатурное сокращение "0" на основной раскладке), сокращенно - RTT. RTT совместно с mental ray прекрасно запекает большинство "родных" материалов 3ds max, хотя есть и исключения -blend и материалы, реализованные с помощью mental ray Connection. Запекаются также и многие материальные шейдеры mental ray, прежде всего те, которые видны в редакторе материалов и снабжены приставкой "3ds max". Будем называть штатный RTT "способом №2".

Существенным недостатком RTT является некорректная работа с материалами, чьи свойства определяются шейдерами через mental ray Connection. При запекании таких материалов RTT воспринимает их как стандартный материал 3ds max, полностью игнорируя закладку mental ray Connection в его свойствах. В итоге, запекание дает совершенно неправильный результат. При этом даже оригинальный материал, по которому выполняется запекание, повреждается. В качестве выхода из этой ситуации можно либо воспроизвести материал на основе mental ray material, тогда RTT будет правильно его обрабатывать, либо использовать способ №1 запекания материала шейдером mib_lightmap_write.

Типичная процедура запекания материала при помощи шейдера mib_lightmap_write состоит из следующих шагов.

1. Создаем текстурные координаты объекта. Для проверки карты имеющихся координат нужно воспользоваться модификатором Unwrap UVW. Требуется, чтобы карта координат была удобна для редактирования и содержала как можно меньше швов, потому что редактировать координаты после запекания придется вручную. Дело в том, что из-за особенностей шейдера mib_lightmap_write, после запекания будут видны места стыков отдельных областей текстурных координат и тем явственнее, чем меньше разрешение запекаемой карты. Для устранения швов нужно отмасштабировать текстурные координаты - уменьшить их, чтобы обеспечить перекрывание на стыках. Делать это нужно уже после запекания. Штатный 3ds max RTT лишен этого недостатка, он имеет возможность управления перекрыванием швов еще на этапе настройки запекания (эта возможность называется padding и будет рассмотрена чуть позже). Другим важным условием, предъявляемым к карте текстурных координат, является отсутствие наложений (перекрывание) отдельных областей текстурных координат друг на друга.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]