Конструкция стандартного материала
Материал и материальный шейдер в mental ray - не одно и то же. Материальный шейдер является обязательной составной частью материала. Материал же реализует боле сложную конструкцию, состоящую из нескольких частей. Сделано это с одной единственной целью - стандартизировать функции материального шейдера, чтобы не усложнять излишне его программирование, и передать другие функции шейдерам иных типов. Таким образом, материал реализован как конструктор или модель с определенным набором свойств, расчет каждого из которых возложен на отдельный шейдер специализированного типа. Каждый шейдер относительно самостоятелен и, благодаря этому, во-первых, каждый из них может быть легко заменен на другой, и во-вторых, благодаря специализации и независимости, программирование новых шейдеров существенно облегчается. Заменяемость шейдеров в рамках модели материала позволяет получить огромное многообразие материалов с самыми различными свойствами простой заменой тех или иных шейдеров на другие, с иными свойствами. Таким образом, возможности материала в mental ray ограничены только имеющимися в нашем распоряжении библиотеками шейдеров, которые в свою очередь, могут пополняться и расширяться.
Материалы определяют вид геометрических объектов. Указание материала при определении геометрического объекта выполняется по его имени, при этом сам материал должен быть предварительно определен (определен до его первого использования в каком-либо геометрическом объекте). Для полигонных объектов указание имени используемого материала обязательно выполняется для каждого полигона, либо явным указанием его имени, либо при помощи тэгов. Правила определения полигонных объектов подробно рассматриваются в обзоре "Как использовать все возможности mental ray в работе с 3ds max. Часть 4. Геометрические объекты".
По принятым в mr правилам, источники света и текстуры не могут быть указаны в определении объекта. Они указываются только в материалах. Таким образом, материалы являются единственным источником информации об освещенности объектов и используемых текстурах. Если с текстурами все ясно, то определение источников света в материалах, а не в объектах, выглядит несколько странно. На самом деле все логично - дело в том, что именно материальный шейдер, являющийся частью модели материала, а не объекта, отвечает за расчет освещения точки поверхности.
Разработчики 3ds max решили отойти от этого правила. Так, они включили описание источников света непосредственно в определение объекта при помощи специальной структуры пользовательских данных max_NodeData. Эти данные содержат поля "illuminators" и "shadowmakers", определяющие источники света и расчет теней от них.
Такая схема в общем случае не конкурирует со схемой, используемой mr, поскольку шейдеры, написанные специально для 3ds max, используют для расчета освещения именно пользовательские структуры данных и оставляют без внимания способ указания источников в материалах. Шейдеры же mental ray, поставляемые в его стандартных библиотеках, используют для расчета освещения списки источников, указываемые в материальных шейдерах и не используют пользовательские данные. В конечном итоге - дело каждого шейдера, откуда получать данные, лишь бы это происходило правильно.
Таким образом, если работать со стандартными материалами 3ds max, о привязке освещении можно не беспокоиться - она может быть выполнена стандартными средствами max. Но если в материале используются стандартные шейдера mental ray, может возникнуть ситуация, когда придется редактировать списки источников в материалах. Это вполне возможно сделать, отредактировав раздел gui в декларации материальных шейдеров mental ray (файлы base.mi и physics.mi, категория Illuminations, убрать hidden у параметров lights и mode). По умолчанию в стандартных материальных шейдерах mental ray значение mode равно 0, то есть материал освещается всеми присутствующими в сцене источниками.
В остальном, конструкция материала в 3ds max, реализованная при помощи mental ray Connection и mental ray material, совершенно аналогична конструкции, используемой в mental ray.
Определение материала на языке описания сцен mental ray выглядит следующим образом:
material | " material_name " |
|
| [ opaque] |
|
| material | shader [shader_list] |
| [ displace | shader [ shader_list]] |
| [ shadow | shader [ shader_list]] |
| [ volume | shader [ shader_list]] |
| [ environment | shader [ shader_list]] |
| [ contour | shader [ shader_list]] |
| [ photon | shader [ shader_list]] |
| [ photonvol | shader [ shader_list]] |
| [ lightmap | shader [ shader_list]] |
end material |
|
|
и в 3ds max:
- Рендер простой сцены
- Часть 2. Options и ключи рендеринга командной строки
- Группа операторов сэмплирования
- Группа операторов рендеринга с использованием аппаратных возможностей видеокарты
- Группа операторов тесселяции
- Группа операторов Motion Blur
- Группа параметров Shadows
- Группа параметров Rendering Algorithms
- Группа операторов Feature Disabling
- Группа параметров Caustics
- Группа параметров Global Illumination
- Группа операторов Frame Buffer Control
- Группа параметров Scene Geometry
- Группа операторов Contours
- Группа операторов Diagnostic Modes
- Группа дополнительных операторов
- Ключи рендеринга командной строки ray.Exe
- Часть 3. Источники освещения
- Параметры шейдера ctrl_objectlights
- Только прямое освещение от протяженного источника-полусферы, имитирующего Sky light
- Часть 4. Геометрические объекты
- Тестовая сцена
- У стеклянного бокала visible off и в камеру он не виден. Но его тени и отражения в шейкере присутствуют
- В свойствах подложки установлено reflection 6 и refraction 6, поэтому ни шейкер, ни бокал ее не "видят"
- Для подложки refraction 12 и поэтому бокал ее не "видит", а reflection 3 и шейкер отражает подложку Обратная ситуация: для подложки refraction 3, reflection 12
- Fg Accuracy 280 сэмплов, радиусы 100 - 10 см
- У одного из объектов сцены finalgather 9, у остальных 3
- Противоположная ситуация: тумба не отражает вторичный свет, но сама его "видит"
- Расчет вторичного освещения методом fg, выполненный только для одного объекта сцены - шара. Fg accuracy: 1200 сэмплов на точку, минимальный радиус 1 см, максимальный - 10 см
- Часть 5. Камеры
- Часть 6. Материалы
- Конструкция стандартного материала
- Конструкция материала типа mental ray mental ray Connection стандартных материалов
- Шейдеры и параметры
- Назначение шейдеров в качестве параметров других шейдеров в 3ds max
- Назначение mib_cie_d в качестве параметра цвета светового шейдера точечного источника в 3ds max
- Phenomena в 3ds max виден как обычный шейдер заданного apply типа
- Is_mat_irradiance - шейдер расчета вторичного освещения индивидуально для материалов
- Интерфейс шейдера is_mat_irradiance
- Расчет освещения методом fg с глобальными настройками
- Расчет вторичного освещения с индивидуальными настройками fg для материала чайника и цилиндрической подставки (увеличено число сэмплов)
- Расчет вторичного освещения с индивидуальными настройками fg для материала чайника и цилиндрической подставки (увеличено число сэмплов) и материала конуса и земли (увеличены только радиусы)
- Рендеринг с Fast Sky