
- •Рендер простой сцены
- •Часть 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
Назначение mib_cie_d в качестве параметра цвета светового шейдера точечного источника в 3ds max
Phenomena
Возможность назначения шейдеров в качестве параметров лежит в основе phenomena. Phenomenа расширяют концепцию шейдеров, позволяя строить из простых шейдеров более сложные, соединяя их в разветвленные цепочки (shader graph) посредством параметров. Для mental ray phenomena не отличается от обычных шейдеров - как и шейдеры, phenomena так же должны быть декларированы и имеют параметры, значения которых должны быть определены перед использованием. Как и шейдеры, phenomena должны иметь свой mi-файлы, которые хранят их "код". Но в отличие от шейдеров, phenomena не являются настоящими программами, поэтому для них не нужен dll (dso) -файл с программным кодом, реализующим их функции. По сути, phenomena просто описывают какие шейдеры, в какой последовательности и для каких параметров используются.
Для удобства написания и использования phenomena предусмотрены так называемые интерфейсные параметры. С их помощью phenomena передаются значения параметров извне, от пользователя. Также, важной особенностью phenomena является и то, что они позволяют управлять сложным набором шейдеров, каждый из которых обладает собственными параметрами, при помощи небольшого набора собственных параметров phenomena.
Назначение mib_cie_d в качестве параметра светового шейдера, в примере который мы рассмотрели чуть выше, может быть оформлено как phenomena.
declare phenomenon |
color |
"light_color_phen" |
|
(scalar |
"temp", |
|
scalar |
"inten") |
apply light |
version 1 |
|
#"код" phenomena# |
|
|
shader |
"color_light" |
"mib_cie_d" ( |
|
"temperature" |
= interface "temp" , |
|
"intensity" |
= interface "inten") |
shader |
"my_light" " |
mib_light_point" ( |
|
"color" |
= "color_light", |
|
"shadow" |
on, |
|
"factor" |
|
|
"factor" |
0, |
|
"atten" |
off, |
|
"start" |
0, |
|
"stop" |
40) |
root |
= "my_light" |
|
end declare |
|
|
Параметры phenomena "temp" и "inten" являются интерфейсными параметрами, то есть предназначены для передачи значений извне для параметров шейдера mib_cie_d: "temperature" = interface "temp" и "intensity" = interface "inten". Затем, шейдер mib_cie_d назначается в качестве параметра другого шейдера - mib_light_point, его значение определит цвет источника света (параметр "color"). Наконец, оператор root определяет значение, которое будет возвращать phenomena. В данном случае это значение шейдера my_light типа mib_light_point. Обратите внимание, что тип возвращаемого шейдером my_light результата и объявленный тип результата в декларации phenomena идентичны - color. Такая идентичность типов - обязательное условие.
Если написанный выше "код" сохранить в файл с расширением .mi, например "my_phen.mi", и подключить его при помощи директивы mi "путь_к_файлу\my_phen.mi" в rayrc или в standard.mi, то phenomena "light_color_phen" может быть использован в сцене как обычный световой шейдер:
$include |
"my_phen.mi" |
................................................
shader |
"my_light_color" |
"light_color_phen" |
|
("temp" |
; = 2500, |
|
"inten" |
= 1 |
................................................
Более того, phenomena "light_color_phen" будет виден в 3ds max как обычный световой шейдер с двумя настроечными параметрами - температурой и интенсивностью.