Настройка материалов (прозрачность)


Прозрачность в Hydra имеет очень схожее описание с прозрачностью в VRay. C параметрами прозрачности в материалах VRay можно более поробно ознакомится на этой странице http://www.spot3d.com/vray/help/150SP1/examples_material.htm#refraction_color

Рисунок 1. Драконы с 3 различными прозрачными материалами.

Далее приведены параметры позрачности для материала самого левого дракона.


 
<transparency>
   <color sid="transparency">1.0 1.0 1.0 1.000000</color>
   <IOR> 1.600000 1.600000 1.600000 1.000000 </IOR>
   <cos_power> 1000000.0 </cos_power>
   <fog_color>0.380392  0.721569 0.772549 1.000000</fog_color>
   <fog_multiplyer> 2.00 </fog_multiplyer>
   <exit_color>0.380392  0.721569 0.772549 1.000000</exit_color>
</transparency> 


color - собственно цвет прозрачного объекта.

IOR - Index Of Refraction. Показатель преломления. Предполагается, что его можно задавать разным для разных цветовых компонент, симулируя таким образом дисперсию света. Однако на данный момент дисперсия в рендере не поддерживается.

cos_power - то же самое что cos_power для отражений. Позволяет делать 'glossy' (матовые) преломляющие объекты.

fog_color - цвет внутри объекта. Используется при учете затухания по закону Бугера-Ламберта-Бэра.

fog_multiplyer - множитель параметра 'fog_color'. Значение fog_multiplyer*fog_color есть степени экспоненты в законе Бугера-Ламберта-Бэра.

exit_color - цвет, который принимает луч, достигший предельной глубины переотражений, но тем не менее не вышедший из прозрачного объекта.


Важное отличие между параметрами fog_color и color (мы его удем называть в дальнейшем transperency_color). Параметр color сделан для того, чтобы имитировать простую прозрачность (без учета затухания внутри объекта).  Параметр fog_color - напротив, предназначен исключительно для учета затухания. Давайте рассмотрим формулу, используемую в рендере для учета затухания (вычисления повторяются для каждого цветового канала -r,g,b):

Рисунок 2. Формула затухания света внутри прозрачных объектов, используемая в Hydra.

Здесь d - расстояние, пройденное внутри объекта. Видно, что параметр transparency color влияет на затухание линейно, а параметр fog_color экспоненциально. Причем, исходя из приведенной выше формулы, нет смысла задавать значения fog_color выше 1 (ниже нуля тоже не имеет смысл, рендер автоматически проверяет такие вещи). Если вы хотите реализовать простую прозрачность без учета затухания, ставьте параметр fog_multiplyer в 0. Сравните самый первый скнишот с тем, что приведен ниже.

 

Рисунок 3. Драконы с 3 различными прозрачными материалами. У левого дракона fog_multiplyer = 2.

Для самого левого дракона на первом скриншот параметр fog_multiplyer равен 0.01, на втором 2.0. Важный момент, как и в VRay, параметр fog_multiplyer влияет на степень прозрачноти в зависимости от абсолютной толщины объекта. 

Экспериментируя с этими параметрами, можно получить различные интересные эффекты. Ниже приведены параметры материала для кролика на следующем скриншоте.


<transparency>
  <color sid="transparency">0.85 0.85 0.45 1.000000</color>
  <IOR> 1.500000 1.500000 1.500000 1.000000 </IOR>
  <cos_power> 1000000.0 </cos_power>
  <fog_color>0.5 0.75 1.0 1.000000</fog_color>
  <fog_multiplyer> 2.0 </fog_multiplyer>
  <exit_color>1.45 0.85 1.45 1.000000</exit_color>
</transparency>


Рисунок 4. Заяц из странного стекла. 

На приведенном ниже скриншоте показывается эффект от задания различных fog_color и fog_multiplyer:


 

<fog_color>0.85 0.85 0.0 1.000000</fog_color>
<fog_multiplyer> 0.5 </fog_multiplyer>

...

<fog_color>0.0 0.0 0.85 1.000000</fog_color>
<fog_multiplyer> 2.5 </fog_multiplyer>

...

<fog_color>0.0 0.85 0.0 1.000000</fog_color>
<fog_multiplyer> 20.0 </fog_multiplyer>


Чем больше парамтр fog_multiplyer тем быстрее затухает свет внутри прозрачного объекта. Из-за относительно малой толщины коробки на приведенном скриншоте этот эффект может быть незаметен. При этом transparency_color на данном скриншоте был поставлен равным (0.95, 0.95, 0.95) для всех 3 коробок.

Рисунок 5. демонстрация fog_color и fog_multiplyer.

На следующем скриншоте показано влияние параметра cos_power(1000000, 4000, 500). Из-за того что при преломлении луч проходит через поверхность дважды, при тех-же значениях cos_power преомления будут размываться намного силнее отражений.

Рисунок 6. Демонстрация различных cos_power.

На следующем скриншоте показаны прозраяные сцеры с разными показателями преломления (слева направо - 0.8, 1.2, 1.6). На самой левой сфере хорошо виден эффект полного внутреннего отражения.

 

Рисунок 7. Демонстрация различных IOR (Index Of Refraction).

 




<< Вернуться назад

Статьи и обзоры

Поиск пересечений

Обратная трассировка лучей

Быстрая трассировка лучей

Индустриальная основа

Фотореалистичная визуализация

GPU ray tracing

Сферические гармоники

Дружественные проекты:

OpenSource RTRT

Siberian renderer

Наши разработки

Hydra renderer

AdaRT

Публикации

Загрузить

Скриншоты и видео

ССЫЛКИ

© Copyright 2007 Владимир Фролов, Александр Фролов

При поддержке Лаборатории компьтерной графики и мультимедия ф-та ВМК МГУ
Создание сайта: Александр Фролов