Уроки: Общие принципы

Альбедо в реалистичной визуализации

Всем привет. Меня зовут Трофимов Максим. В этой статье я расскажу о понятии «Альбедо» и его значении в создании реалистичной визуализации. Начнём с теории. Вот его определение из физической энциклопедии:

АЛЬБЕДО (от позднелат. albedo — белизна) — величина, характеризующая рассеивающую или отражательную способность поверхностей или космических тел. Используется в атм. оптике и астрофизике. В широком смысле А.- отношение потока отражённого (рассеянного) излучения к потоку падающего излучения. В теории переноса (рассеяния) излучения используется также понятие единичного А., т. е. отношение числа рассеянных во все стороны фотонов к числу падающих фотонов.

В чём вообще смысл всего этого? Дело в основном в расчёте ГИ. Я использую термин ГИ как обобщённое название алгоритмов глобального освещения, имитирующих диффузное рассеивание. Ситуация следующая. Чем меньше это альбедо, для нас это яркость диффузного цвета в материале, тем быстрее свет будет затухать при каждом следующем отскоке от этой поверхности. А это будет влиять на реалистичность сцены в целом. Приведу пример на простых предметах.

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

Т.е., согласно понятию альбедо, получается, что для получения более реалистичного результата максимально белая диффузная поверхность в материале рендера не должна превышать значение 96% белого, это следует из приведённой далее таблицы. Конечно, искусству законы не указ, но меня здесь интересует чисто техническая сторона вопроса.

Я не раз замечал, что в настройках рендера скачанных сцен для врея значение мультиплая вторички ГИ ставят около 0,75. Возможно, это как раз попытка решить проблему излишнего переотражённого света ввиду того, что все материалы созданы из расчёта, что белый имеет 100% альбедо. Но, в таком случае, необходимо ещё уменьшить и первичный отскок ГИ на то же значение, на которое уменьшен отскок вторичного ГИ. Чтобы первый отскок ГИ затухал так же, как и все последующие. Такой подход весьма прост, но не очень корректен, т. к. альбедо материалов останется прежними для зеркальных и глосси отражений. Что будет влиять на реалистичность.

В рендере Mental ray есть похожие инструменты для уменьшения интенсивности последующих отражений в алгоритме Final Gather. Это параметр – «Weight» (вес). Находится он в настройках Final Gather. Работает он именно уменьшая интенсивность каждого следующего отскока, умножая текущую интенсивность на значение веса, а не уменьшая интенсивность всей просчитанной карты ФГ. Врей работает схожим образом. Я проверил это следующим образом. Сначала считалась простенькая тестовая сцена, с диффузным цветом равным единице (100% белый) и уменьшенными, равнозначными, значениями мультиплая ГИ для первичного и вторичного отскока. В ментале соответственно — мультиплай ФГ и вес. Обзовём эти значения переменной «X». Далее считалась картинка со значением диффузии равным «Х» и единичными значениями мультиплаев ГИ. Результаты схожие, что и позволяет говорить о параметрах мультиплая ГИ в врее и мультиплая и весе в ментале как о параметрах, работающих для каждого отскока ГИ. Тест провёл с разными значениями «Х».

К сожалению, в ментале нет подобного регулятора для фотонов. Мультиплай в настройках фотонов уменьшает интенсивность всей просчитанной карты фотонов. Т.е. остаётся использовать только ФГ с переотражениями. А это, зачастую, намного дольше при расчёте замкнутых сцен с кол-вом диффузных переотражений больше 2-х. К сведению, при просчёте сцены связкой фотоны + ФГ параметр «Weight» игнорируется так же, как и «Diffuse bounces», т. к. это параметры вторичных переотражений, реализацией которых займётся включённая опция фотонов.

Исходя из всего вышеизложенного, самым правильным будет редактировать материалы, выставляя значение «Diffuse Level» равным значению нужного нам альбедо. Можно менять просто интенсивность цвета, но при использовании текстур, а тем более многокомпонентных карт, проще менять Diffuse Level. Это, конечно, не очень удобно, т. к. придётся лопатить все материалы, но взамен мы получаем настройку не зависимую от алгоритма ГИ и корректную визуализацию отражающих (зеркальных) поверхностей.

Теперь испытаем нашу методику на тестовой сцене. Я буду использовать ментал рей, фотоны + ФГ.

Итак, поехали.

3d max 2011, mental ray, гамма 2,2. Материал Arch&Design. На всех материалах Diffuse = 1(Альбедо = 1).Я специально сделал пол красным, т. к. нас ждёт сюрприз. Дело в том, что альбедо оказывает влияние на цветовой перенос, т.е. на так нашумевший «колор блидинг». Лучше не использовать чистый цвет, т.е. имеющий 100% насыщенность, т. к. в природе таких материалов не бывает, и это повлияет на реальность визуализации. Даже минимальное уменьшение насыщенности позволит этому цвету смешиваться с другими, что отражает реальное положение дел. Я уменьшил насыщенность красного на минимально значение, с 1 до 0,992. Следующие примеры покажут, как альбедо влияет на цветовой перенос.

Для начала рендер только с источниками, без ГИ, для понимания интенсивности начального света. В окнах — Sky Portal, за окном — Daylight (mr Sun, mr Sky).

Включаем ГИ.

3 млн. фотонов. Merge1 см. Радиус 15см. Fast Look Up – вкл. Очень рекомендую использовать мердж для фотонов и Fast Look Up для ускорения расчёта ФГ и экономии памяти. Т. к. мердж уменьшает кол-во фотонов, заменяя все фотоны в радиусе мерджа на 1 фотон с усреднённым значением. Как следствие, вся фотонная карта уменьшается в объёме информации, и поэтому ФГ производит поиск нужных значений в ней в разы быстрее. FG = Density 1, Ray 500. В материалах включён AO с галкой колор блидинга, дистанция 30 см. Цвет Shadow Color чёрный, это полный колор блидинг, без AO. Считаем.

Мы наблюдаем типичную картину, с которой многие сталкивались. Картинке далеко до реальности именно из-за того, что выставлено слишком большое альбедо, которого вообще в природе не существует. Дело в том, что предметы, которые мы считаем белыми, на самом деле могут быть далеки от даже 90% белого. Понаблюдайте за поверхностью, про которую вы бы сказали, что она самая белая, а потом поднесите к ней лист белой офисной бумаги. Скорее всего, предмет окажется темнее бумаги. Я воспроизвёл этот тест и вот, что у меня получилось. Бумага уложена в 3 слоя, чтоб из-за просвечивающихся особенностей бумаги, стол на неё не влиял.

При фотографировании важно, чтоб в настройках фотоаппарата стояло как можно меньше корректирующих фильтров, которые могут повлиять на контраст изображения. В моём случае установлен линейный пресет, сделанный вручную и загруженный в зеркальный фотоаппарат. Т. к. заводские пресеты вызвали у меня подозрение в нелинейности из-за отсутствия отображения кривой контраста.

Как видно, все предметы, которые по отдельности мне казались очень белыми, в сравнении с бумагой кажутся серыми. А ведь у такой бумаги альбедо около 0,6-0,7(в других источниках до 0,8). И стандартный потолок, которому мы обычно ставим альбедо около 0,9, в большинстве случаев тянет всего на 0,6. Возможно, появится справедливый вопрос, ведь это уже не белые поверхности, а серые. Но в природе нет понятия белый и серый, а есть способность поверхности отразить больше или меньше света. Поэтому даже серый предмет, находясь в очень тёмно серой комнате, не имеющей других поверхностей с альбедо, превышающим альбедо серого предмета и не имеющей знакомых цветовых ориентиров, типа кожи наших рук, будет казаться белым. Причиной этому будет являться наша способность адаптироваться к освещению. И поэтому, скормив физически корректному визуализатору поверхности с реальными альбедо, нужно также выполнить адаптацию яркости сцены для удобного зрительного восприятия. Другими словами — выставить экспозицию. Можно увеличивать интенсивность освещения, но в 3д максе есть удобная опция для регулирования экспозиции – Exposure Control.

Казалось бы, простая вещь, но далее мы увидим, как меняется освещение по мере уменьшения альбедо. Ниже находится таблица со значениями альбедо некоторых материалов. В таблице указаны приблизительные значения, т. к. материалов с одноимённым названием может быть много. Например, гипс. Гипс бывает: строительный (гипсовый алебастр), формовочный (лепка, скульптура, моделирование), медицинский (более чистый) и прочие подвиды. Поэтому альбедо у них может отличаться. Таблица взята с сайта фототехнического сервера ОАО «Красногорский завод им. С.А. Зверева».

Отражательная способность различных поверхностей
Поверхность Вид отражения Коэффициент отражения
Окись магния
диффузное
0,96
Алебастр
диффузное
0,92
Серебро полированное
направленное
0,88--0,93
Белая гипсовая поверхность
диффузное
0,85
Снег свежевыпавший
смешанное
0,75--0,78
Стеклянное зеркало
направленное
0,72--0,85
Серебрение матовое
направленно-рассеянное
0,7
Алюминий полированный
направленное
0,65--0,75

Хромированная полированная поверхность

направленное
0,60--0,70
Алюминий матированный
направленно-рассеянное
0,55--0,60
Бумага белая матовая
направленно-рассеянное
0,60--0,70
Снег тающий чистый
смешанное
0,60--0,62
Хромирование матовое
направленно-рассеянное
0,50
Оштукатуренная поверхность
диффузное
0,40--0,45
Шелк натуральный
смешанное
0,35--0,55
Тес (дерево свежее)
направленно-рассеянное
0,35--0,42
Кожа лица
смешанное
0,25--0,35
Песок белый сухой
диффузное
0,24--0,32
Глина желтая
диффузное
0,16
Тес старый, посеревший
направленно-рассеянное
0,12--0,16
Песок белый мокрый
диффузное
0,11-0,20
Асфальтовое покрытие сухое
смешанное
0,10--0,18
Чернозем сухой
диффузное
0,07--0,08
Асфальтовое покрытие мокрое
направленно-рассеянное
0,06--0,08
Лиственная растительность летом
направленно-рассеянное
0,09--0,12
Хвойная растительность
диффузное и направленно-рассеянное
0,08--0,12
Лиственная растительность осенью
направленно-рассеянное
0,15--0,30
Черное сукно
направленно-рассеянное
0,10--0,12
Чернозем мокрый
направленно-рассеянное
0,02--0,05
Черный бархат
диффузное
0,01--0,03

Возьмём белый материал с текущим альбедо как самый яркий в сцене. Соответственно, будем уменьшать альбедо красного пола на это же значение, чтобы сохранить пропорции цвета и света поверхностей. По мере уменьшения альбедо изображения будут темнеть. Но, чтобы они оставались в равной экспозиции, я буду высветлять их в Exposure Control и в фотошопе.

Альбедо = 0,85 (по таблице белая гипсовая поверхность). Мне казалось, мой лев на фотографии из гипса, но сами видите, насколько он темнее бумаги. Поэтому в таблице приведён какой-то ну очень белый гипс. Ставим в материале Diffuse Level = 0,85. Тюль просвечивается, поэтому цвет транслюценции тоже нужно уменьшать пропорционально цвету диффузии, т. к. просвечивает она собственную диффузию. Настройки тюли: Прозрачность = 0,5. Цвет = falloff (настройки по умолчанию). Транслюценция = 0,5 (просвечивает 50%) и цвет = 0,85. Далее этот цвет тоже будем уменьшать.

Альбедо = 0,6.

Альбедо = 0,42 (оштукатуренная поверхность).

Обратите внимание, как уменьшился цветовой перенос, да и свет стал похож на реальный.

Альбедо = 0,2.

Меньше ставить я не буду, т. к., думаю, смысл происходящего понятен.

В связи с уменьшением интенсивности диффузии, нужно пересмотреть настройки силы отражений – «Reflection» в материалах. Их, скорее всего, нужно сделать меньше, если вы настраивали их на глазок, основываясь на интенсивности диффузии. Это повлияет на скорость затухания зеркальных и глосси переотражений, что добавит реализма.

Итак, как же теперь настраивать сцену, исходя из вышеперечисленной информации. Я предлагаю свой способ, возможно, кто-то найдёт лучше. Найдите в своей сцене самый белый объект, прикиньте какое у него альбедо, а лучше найдите подобный материал в реальном мире, и сравните его с листом белой офисной бумаги, альбедо которого примерно 0,7. Далее, выставите это значение альбедо в материале, в Diffuse Level, для своего белого объекта, например, 0,5. Затем, чтобы упростить настройку и видеть все материалы в редакторе в привычной экспозиции, мы изменим интенсивность света в настройках материал эдитора до 2-х. Чтобы материал с нашим максимальным альбедо стал 100% белый. Для других значений альбедо работает простая формула: 1 / «альбедо» = «интенсивность света». Обратите внимание, что материал эдитор не сохраняет изменённое значение интенсивности света для конкретной сцены, а использует его для всех сцен. Далее выставляйте значение максимального альбедо (0,5) в Diffuse Level во всех материалах, которые вы будете редактировать. Затем, по мере визуализации изображения отрегулируйте её экспозицию.

Таким образом, во времена физически корректных визуализаторов, на роль которых в той или иной степени претендуют практически все современные рендеры, необходимо учитывать такое важное звено в цепи создания реалистичного изображения, как альбедо. Я здесь не буду рассматривать шейдеры SSS и другие, но, думаю, что они будут работать по схожему принципу.

На этом у меня всё. Спасибо за внимание.

Блог автора: trofimm.blogspot.com

74614 Автор:
Актуальность: 831
Качество: 830
Суммарный балл: 1661
Выбор Публики
Голосов: 114 оценки

Отзывы посетителей:

2 | След.
аватар
 
sky_myth 23 0
Шикарная статья. Теперь я понял почему у меня хром был не похож на хром. Многое из этого я знал, но сейчас все выстроилось в общую картину.
аватар
 
Trofimm 22 0
Цитирую kIRr:
А что если просто уменьшить силу света и будет тотже результат


Нет, такого результата не получится. Возможно, пример с теннисным мячом стоило снабдить пояснениями, что мяч кидается всегда с постоянной скоростью, т.к. скорость света всегда постоянна. А интенсивность света, это не его скорость, а его кол-во, т.е. как мы бы вместо одного мяча кинули бы несколько, затухать они от этого по другому не станут.
аватар
 
kIRr 11 0
А что если просто уменьшить силу света и будет тотже результат
аватар
 
tfetx 1 0
Спасибо большое!!!!
аватар
 
Trofimm 22 0
Друзья, спасибо за комменты. Я уезжаю в отпуск и не смогу отвечать на ваши вопросы до 10 июля. До встречи в эфире. )
аватар
 
Rebate 59 0
В менталовской экспозиции есть важнейший параметр, который влияет на белёсость, это Highlight (burn), без уменьшения которого практически ни одна сцена не считается. Так же в ментале есть скрытые шейдеры для решения проблем блидинга, например Raytype Switcher; Falloff FG тоже позволяет уменьшать эффект сильного переноса дифуза.
аватар
 
Predator84 13 0
спасибо, познавательная статья. никогда не слышал про альбедо, хотя где то на подсознании сформировалось мнение что чисто белый цвет в материале ставить не нужно... его ж еще освещать нужно)
аватар
 
Trofimm 22 0
Цитирую m-dept:
Попытаюсь объяснить что хочу сказать, есть испущенный свет это будет единица (1) параметр 1 на диффузе говорит, что он полностью отражает его не поглощая и не преломляя, а если поверхность зеркальная то диффузия будет минимальной а отражаемость максимальной, а если брать предмет который слегка прозрачный да к тому же еще и отражает, что то и имеет диффузный цвет, как его настраивать. и при всё при том нужно сохранить эти парраметры что бы ох сумма не превышала 1 потому что, 1 это тот самый свет который был испущен и теперь отражается преломляет и поглощается.


Материал Arch&Design, по большей части заменивший DGS, был создан, так же как и DGS, со взаимозамещающими параметрами диффузии и отражения, всё по закону Ньютона. Поэтому, конечно, нужно учитывать это. Так же, я уверен, что можно создавать отличные работы и без знания каких-либо законов, просто на глаз. Но зная их, проще ориентироваться, т.к. они всегда будут опорой для дальнейших экспериментов.
аватар
 
Trofimm 22 0
Блин, да что ж такое. Вроде работающая ссылка.

http://imageshost.ru/photo/119169/id699793.html
аватар
 
Trofimm 22 0
Цитирую m3gac:
не могли бы вы выложить настройки ФГ и ГИ для особо "одаренных"? еще вопрос, менялся только Diffuse Level (и-или цвет тоже) у пола и экспозиция? Альбедо насколько я понял это Diffuse Level и Diffuse Color?


http://i055.radikal.ru/1106/f9/f9fd2c5569c9.jpg

Можно менять одно из двух, или цвет или диффуз левел. Просто если используются текстуры, то проще менять диффуз левел. Экспозиция меняется, чтоб картинка не темнела. Альбедо, это грубо говоря, итоговая интенсивность цвета материала, а какими рульками это было достигнуто не важно. Можно менять и то и другое, но так можно запутаться. Диффуз левел, это просто множитель для цвета.
аватар
 
m-dept 15 0
Если вести речь о физ корректности отскоков света от предметов то одним диффузным отскоком не обойтись. Попытаюсь объяснить что хочу сказать, есть испущенный свет это будет единица (1) параметр 1 на диффузе говорит, что он полностью отражает его не поглощая и не преломляя, а если поверхность зеркальная то диффузия будет минимальной а отражаемость максимальной, а если брать предмет который слегка прозрачный да к тому же еще и отражает, что то и имеет диффузный цвет, как его настраивать. и при всё при том нужно сохранить эти парраметры что бы ох сумма не превышала 1 потому что, 1 это тот самый свет который был испущен и теперь отражается преломляет и поглощается. В ментале есть такой шейдер как DGS и там то как раз и нужно настраивать по такому принципу, но в максе с некоторых пор его заботливо скрыли и мои попытки его раскрыть не дали мне полноценного DGS шейдера, настраивал и в максе это Арх и Диз по такому принципу вот только времени на тесты уходит много, да и порой приходится пренебрегать физ корректными параметрами потому как ну компьютерная графика это обман как не крути, если убедительный обман можно выдать за натуральность то к чему тогда все эти выпендрёжи с тем, что типо вот смотрите я тут с физически точными настройками света и материалов работал смотри как не красивая фигня получилась. Ни кого не хочу обидеть, только вот голову этим не всегда стои забивать, иногда достаточно иметь хороший глаз, тонкое чутьё и понимание что и как ведёт себя в жизни и почему оно именно так а не по другому, и тогда можно делать очень качественные картинки и без этих плясок.

P.S ложки не существует.........
аватар
 
m3gac 43 0
не могли бы вы выложить настройки ФГ и ГИ для особо "одаренных"? еще вопрос, менялся только Diffuse Level (и-или цвет тоже) у пола и экспозиция? Альбедо насколько я понял это Diffuse Level и Diffuse Color? матерьял отличный, но изложен для профи, мало скринов =) Спасибо за труды!!
аватар
 
vasabii 20 0
Все проблему решил, не знал что если в environment map просто без background switcher закинуть другую карту mr sky все равно будет действовать.
аватар
 
Trofimm 22 0
Цитирую vasabii:
Нет скайлайт я убрал а фон сделал чисто белым, в raytipe switcher для fg указал тоже чисто белый цвет, в exposure control whitepoint сбросил до минимума, в теории объекты должны стать серыми, но на самом деле присутствует слегка синеватый оттенок, это почти не заметно на простой сцене, но в одной недавней работе я с этим столкнулся и что ни делал но убрать этот синий оттенок так и не получилось.


Без скайлайта или скайпортала, ФГ не получить от энвиронмента. И как вы определяете оттенок, пипеткой или на глаз? Глазам в цветовых нюансах верить нельзя, а точнее монитору, даже профессиональному.
аватар
 
Earanak 12 0
vasabii, скажу сразу что в моем сообщение скорее всего не будет решения вашей проблемы. Я просто поведаю мою историю :)

В общем дело такое :
Я сталкнулся с тем что некоторые светлые оттенки становились синеватыми у меня (Maya+MentalRay).
Но когда я в Photoshop водил пипеткой то канал Blue был нулевым.

Когда перетягивал итоговый рендер на другой монитор - все становилось на свои места.
И как не старался крутить цветопередачу нечего толкового не выходило.

Первый монитор ЖК — ASUS VW222u (Нормальная цветопередача).
Второй монитор ЭЛТ — LG FLATRON F700P (Не нормальная цветопередача).

ps
Информация в этом уроке - просто жизненно необходимая начинающим визуализаторам !
аватар
 
vasabii 20 0
Цитирую Trofimm:
Я правильно понял, вы используете skylight и FG? По умолчанию, цвет skylight стоит не белый, а немного синий. Если поставить белый, всё должно стать белым, только что перепроверил.

Нет скайлайт я убрал а фон сделал чисто белым, в raytipe switcher для fg указал тоже чисто белый цвет, в exposure control whitepoint сбросил до минимума, в теории объекты должны стать серыми, но на самом деле присутствует слегка синеватый оттенок, это почти не заметно на простой сцене, но в одной недавней работе я с этим столкнулся и что ни делал но убрать этот синий оттенок так и не получилось.
аватар
 
Trofimm 22 0
Цитирую Feodor:
Поэтому вывод с таким подходом, значения альбедо может очень крупно не соответствовать виртуальным. В итоге все эти физические таблицы не стоит расценивать как точное, там 1 измерении не соответствует с тем что выдаст рендер, я думаю там стоит всё расценивать как процентный фактор, как разница один материал с другим.


Конечно, всегда есть какая-то погрешность в измерениях. Плюс к этому, один и тот же материал может быть сделан на разных заводах, с разными пропорциями веществ, разными технологическими решениями и т.д. Поэтому я рекомендовал относится к этой таблице как к ориениру, от которого можно оттолкнуться, в поиске более точно значения своего материала. И найдя в своей сцене самый белый объект, не важно с каким альбедо, использовать его как ориентир для настройки других материалов.
аватар
 
Trofimm 22 0
[/quote]
Цитирую vasabii:
Единственно чего я так и не смог понять почему в ментал рэе всегда белые материалы отдают синим reflectivity/glossiness сброшены на 0, вместо неба стоит белый цвет, white point в экспозиции сброшен до минимума(100)


Я правильно понял, вы используете skylight и FG? По умолчанию, цвет skylight стоит не белый, а немного синий. Если поставить белый, всё должно стать белым, только что перепроверил.
аватар
 
sanctus 16 0
молодец, держи 5
2 | След.
Зарегистрируйтесь, чтобы добавить комментарий.
Эту страницу просмотрели: 1772 уникальных посетителей