Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Часть 4. Упрощенная модель подповерхностного рассеяния SSS Fast

Читайте также:
  1. ATTENTION!! тут не описано как проверять партиклы! только модель с текстурами
  2. Best Windows Apps 2013. Часть 1. Или приводим чистую операционную систему в рабочее состояние.
  3. F) Бинарная модель
  4. I. Общая часть (титульный лист)
  5. I. Общая часть.
  6. II. Практическая часть.
  7. II.Основная часть

 

Физически корректная модель подповерхностного рассеяния, реализованная в mental ray шейдером/материалом SSS Physical (miss_physical), может оказаться неэффективной для решения ряда задач.
Для корректного просчета SSS Physical требует, чтобы рассеивающий объем был замкнутым, имел ненулевую толщину и состоял из одного слоя. Расчет рассеяния в тонких слоях может вызывать определенные трудности. Если к тому же вспомнить, что для эффективного расчета рассеяния предпочтительно иметь выделенный узконаправленный источник света, становится понятно, что SSS Physical мало подходит для расчета рассеяния в таких объектах, как кожа человека, листья деревьев и тому подобных "тонких" протяженных материалах.

Для расчета подобных объектов в mental ray предусмотрен специальный набор шейдеров и материалов.

Шейдеры:

Материалы:

В скобках приведены названия, как они появляются в редакторе материалов 3ds max.

Скрытые шейдеры можно открыть, отредактировав файл subsurface.mi — в разделе declare shader каждого шейдера необходимо найти "gui" и убрать "hidden".

Расчет подповерхностного рассеяния выполняется при помощи двух специальных типов карт — карты диффузного освещения lightmap и карты глубины depthmap. Lightmap содержит информацию об освещенности точек поверхности, depthmap – об их расстоянии до камеры (z-расстояние). Каждая из них представляет собой растровую карту в формате с плавающей запятой. Обе карты записываются в один файл, lightmap — в RGB каналы, depthmap — в альфа-канал. Поэтому, к формату файла предъявляется ряд требований. Он должен поддерживать хранение четырех каналов RGBA в 32-битном численном представлении данных в формате с плавающей запятой.

Пиксели, хранящие данные карт, выровнены по горизонтали парами. Первый пиксел пары содержит информацию о передней поверхности, второй — о задней. При явном указании файла для хранения карт освещенности, нужно указывать размер карт по горизонтали, вдвое превышающий размер рендера.

Для 3ds max карты можно сохранять в формате tif, а просматривать сохраненные карты при помощи утилиты inf_disp или другой программы просмотра, поддерживающей работу с 32-битными файлами.

Lightmap является камерозависимой картой. Это означает, что при построении lightmap для какого-либо объекта, его поверхность проектируется на двумерную плоскость в пространстве камеры. Та часть объекта, которая ближе к камере — это "передняя" поверхность, "задняя" поверхность — это следующая по удаленности от камеры поверхность объекта, обычно — обратная, задняя сторона.

Передняя поверхность преимущественно определяет визуальное представление подповерхностного рассеяния. Задняя поверхность помогает реализовать эмуляцию рассеяния в объеме — подсвечивает переднюю поверхность рассеянным светом. Сила проявления этого эффекта зависит от расстояния между передней и задней поверхностями и некоторых настроечных параметров материала.

 


Рассеянный задней поверхностью свет освещает
переднюю поверхность

При изменении положения камеры карты нужно пересчитывать, это необходимо учитывать при анимации. Следует также избегать линз и зеркальных объектов, которые могут показать проекцию стороны объекта, отличающуюся от проекции камеры на большой угол — в этом случае в рендере будут наблюдаться артефакты. Например, для куба с SSS-материалом, если плоскость камеры выровнена строго параллельно вдоль одной из его граней, на перпендикулярной грани будут артефакты, поскольку ее проекция в пространстве камеры будет ребром куба. Увидеть артефакты можно, поместив отражающую поверхность возле этой грани.

Создание и запись данных в карты осуществляется шейдером misss_lightmap_write. Данные карты могут либо резидентно храниться в оперативной памяти, либо записываться в файл.

В соответствии с физической моделью подповерхностного рассеяния, которую мы рассмотрели в предыдущем обзоре, луч света, падающий в некоторую точку поверхности, освещает не только точку падения, но и некоторую площадку поверхности с центром в точке падения луча. Размер площадки и ее свойства подповерхностного отражения зависят от коэффициентов рассеяния и поглощения материала, а затухание интенсивности освещения происходит по экспоненциальному закону от центра к краям площадки и также зависит от характеристик рассеивающего материала.

 

Этот факт можно довольно просто использовать. Вместо того чтобы задавать характеристики материала и честно рассчитывать радиус рассеяния и величину затухания, будем просто "руками" задавать радиус затухания при помощи величины радиуса рассеяния и сравнивать получаемый рендер с тем, что необходимо получить.

Данные о диффузной освещенности точек поверхности карты Lightmap рассчитываются по закону Ламберта. По умолчанию, этот расчет выполняется шейдером misss_lambert_gamma. Размер карты, то есть общее количество точек с посчитанной освещенностью, можно задавать в настройках. Когда луч от камеры достигает некоторой точки поверхности, ее освещенность от подповерхностного рассеяния рассчитывается сбором освещенностей соседних точек из lightmap с учетом затухания, определяемого заданным радиусом подповерхностного рассеяния. Количество просматриваемых соседних точек также можно изменять в настройках.

Таким образом, расчет подповерхностного рассеяния при помощи lightmap и depthmap опирается на физическую модель рассеяния света, но позволяет настраивать расчет по "визуальному" принципу, без необходимости использовать реальные физические характеристики рассеивающего материала.

Именно поэтому группа шейдеров SSS Fast считается "физически некорректной" — для них мы задаем в качестве параметра то, что miss_physical "честно" рассчитывает как результат рассеяния света в объеме материала.

SSS Fast не требует для расчетов испускания фотонов, GI, замкнутости объема и даже рейтресинга.

Рассмотрим смысл и назначение настроечных параметров шейдеров и материалов.


Дата добавления: 2015-10-28; просмотров: 81 | Нарушение авторских прав


Читайте в этой же книге: Настройка фотонных карт | Интерфейс настройки фотонных карт в mr 3.3 для 3ds max | Final Gathering | Свойства и использование Ambient/Reflective Ocllusion | Физическая модель подповерхностного рассеяния в mental ray – SSS Physical Material | Шейдер miss_physical | Тест 1. Расчет подповерхностного освещения методом однократного рассеяния | Шейдеры группы miss_fast | Создание собственных материалов SSS Fast | Запекание с mental ray |
<== предыдущая страница | следующая страница ==>
Тест 5. Текстурные трехмерные карты для коэффициента рассеяния| Материал miss_fast_simple_phen

mybiblioteka.su - 2015-2024 год. (0.006 сек.)