Параметры шейдера ctrl_objectlights
Среди настроечных параметров ctrl_objectlights наиболее важными для нашей цели являются transform, куда нужно вводить имя объекта- формы и light, куда необходимо вводить имя источника света.
Процедура создания источника света произвольной формы состоит из следующих шагов:
В сцене создаем обычный источник типа mr Area omni и помещаем его в начало координат. Источник типа mr Area omni рекомендуется к использованию во всех случаях создания источников произвольной формы.
Создаем mrShader объект, назначаем ему геометрический шейдер ctrl_objectlights и помещаем объект в начало координат
Создаем объект, который будет определять форму, и помещаем его в то место сцены, где он нужен
Перетягиваем шейдер ctrl_objectlights в редактор материалов и в поле transform вводим: Имя_объекта |Instance(Mesh00). Почему именно так? Дело в способе автоматической генерации имен для instance, который использует 3ds max - приставка "|Instance(Mesh00)" всегда добавляется к имени объекта и результат присваивается как имя для instance объекта. Например, если объект имеет в 3ds max имя "Pyramid01", то в transform нужно ввести: Pyramid01|Instance(Mesh00), поскольку именно таким будет имя instance для Pyramid01 и это легко проверить, экспортировав сцену в mi-файл. В поле light нужно ввести Имя_источника_света|Light, поскольку, опять же 3ds max так генерирует имя источника света при его определении в конструкции light … end light. Например, если имя источника в max Pyr_light, то в поле light шейдера ctrl_objectlights следует вводить Pyr_light|Light. Остальные параметры можно оставить неопределенными, поскольку это никак не повлияет на результат (такова не очень приятная особенность использования ctrl_objectlights в 3ds max). Однако аналогичные свойства можно определить при помощи свойств исходного источника - mr Area omni: видимость источника в камеру и качество сэмплирования для теней в пределах прямой видимости (первые два U и V samples).
В свойствах объекта-формы источника и в секции Rendering control выключаем все, кроме Renderable
Если планируется испускание фотонов, в свойствах объекта на закладке mental ray также нужно отключить все галочки напротив receive/grenerate GI/caustic
Используя эту схему, мы воспроизведем результат, полученный при ручном редактировании mi-файла. Итак, вот настроенный файл (ссылка), рендер которого выглядит
совершенно аналогично рендеру, полученному первым способом.
Файл сцены: second.zip
Шейдер ctrl_objectlights написан для Maya и standalone mr и не учитывает некоторых особенностей транслятора 3ds max. В результате, при рендере иногда возникают досадные ошибки. Если это произошло, в большинстве случаев достаточно повторно запустить рендер или "подергать" настройки сэмплинга в mr Area omni, незначительно меняя их значения. В особо тяжелых случаях может потребоваться удаление исходного источника и создание нового. Как только рендер получился, в дальнейшем его результат остается стабильным.
Теперь займемся практическими вещами и создадим альтернативу встроенному в 3ds max Sky light - источник света, форма которого будет определена полусферой, покрывающей сцену. Источник будет испускать прямое освещение, фотоны и иметь мягкие тени.
Альтернативный Sky light
Известно, что расчет освещения от стандартного Sky light в 3ds max, имитирующего освещение от небесного свода, при использованием mental ray возможен только методом final gather. Это означает, что от такого типа источника мы можем посчитать только вторичное освещение. На практике часто возникает необходимость иметь полноценный источник света, дающий прямое освещение и способный испускать фотоны. Реализовать такой источник довольно просто, если воспользоваться описанной выше методикой создания источника произвольной формы. Итак, создаем собственный Sky light.
1. Форма источника. В качестве формы используется полусфера радиусом в 50 метров, полученная из стандартного примитива Geosphere со следующими настройками: radius = 50 метров, segments = 1, type = Icosa, smooth, hemisphere. Полусфера помещалась в начало координат (0, 0, 0) конвертировалась в Editable Mesh, нижние грани удалялись, а направления нормалей остальных граней изменялись на противоположные (flip). Имя полусферы изменено на SkyU1.
2. Источник света. В качестве исходного выбран mr Area omni с ray traced shadow, Samples U = V = 18, Intensity = 2,5 и остальными настройками по умолчанию. Помещен в начало координат и переименован в SkyL.
3. В сцене создан объект типа mr Shader с назначенным ctrl_objectlights. Затем базовому источнику назначена полусфера в качестве формы по описанной схеме. Базовая модель источника готова для дальнейших экспериментов.
Первое, что теперь можно сделать - через закладку mental ray Light Shader в свойствах источника назначить Light Point (base)в качестве light shader. Использование Light Point дает несколько преимуществ - расчет прямого освещения выполняется немного быстрее, шейдер оптимизирован для процедуры излучения фотонов, но, что важнее, он позволяет определить цвет светового потока (параметр Color) при помощи не только Color picker, но и посредством любого шейдера, возвращающего в качестве результата цвет.
Используя это свойство, для параметра Color шейдера Light Point можно назначить, например, HDRI - карту. Тогда карта будет определять цвет и интенсивность различных участков протяженного источника. Карту следует брать низкого разрешения, не более 256х256, и размытую. Ее можно создать из HDRI высокого разрешения в такой программе, как HDRShop.
Или же, для определения цвета можно использовать шейдер mib_cie_d. В этом случае нужно немного отредактировать декларацию шейдера в base.mi - добавить в разделе apply шейдера ключ "texture" или "material", иначе mib_cie_d будет не виден при выборе шейдера для цвета.
- Рендер простой сцены
- Часть 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