Наша новая игра 8 сентября в раннем доступе на steam



Наука фотореалистичного 3D, часть 5. экзотическая птица

Это пятая часть серии статей о реалистичном 3D. Другие части читайте тут: первая - основы создания фотореалистичного 3D, вторая - освещение в 3D, третья - тень в компьютерной графике и четвертая - отражения в CG.

Поехали! Для начала немножко закрепим пройденный материал об отражениях.

Отражения и преломления перебивают диффузный цвет.

Это означает, что если у вас есть сильно отражающий материал, металл, к примеру, то диффузный цвет вообще не будет виден. Поэтому 100% отражений = 0% диффузного цвета. 100% прозрачность  – означает, что отражения могут иметь место, но полностью исключает диффузный цвет. Проводники (металлы) не имеют диффузной составляющей, поэтому для металлов вы ставите diffuse на 0% (черный цвет).

Отражения и прозрачность перебивают диффузный цвет

ЛЮБАЯ поверхность отражает.

Существующий на Земле реальный материал с наименьшей отражающей способностью отражает 0.045 % падающего на него света. Таким образом, даже "абсолютно черная" поверхность все равно отражает какую-то долю света. Что уж говорить об обычных материалах, существующих в реальной жизни, а не созданных в лабораторных условиях.

Большинство поверхностей имеют глянцевые отражения. Поверхности с чисто зеркальными отражениями встречаются очень редко.

Самый отражающий материал – Spectralon. Он отражает приблизительно 99% падающего света. Похож по виду на материал с BRDF по Ламберту, но точно им не является.

Лист белой бумаги отражает приблизительно 80% света.

Поэтому, если хотите добиться реалистичного результата, следует добавлять текстуру отражения ко всем без исключения материалам.

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

Ниже представлено изображение, визуализированное с и без отражений. Посмотрите, на сколько богаче смотрится картинка с отражениями.

Коридор с и без отражений

А вот то, что архитектурные визуализаторы используют постоянно – френелевские (Fresnel) отражения. Поскольку отражения в реальном мире в большинстве своем размытые, а не зеркальные.

 

Разница между размытыми отражениями и зеркальными

Тоже самое можно сказать о четких и размытых тенях. Постоянно используя мягкие тени – вы не допустите ошибки.

Самый темный материал, который более-менее доступен обычному человеку, отражает минимум 3% света. Конечно, вы можете создать материал, который будет отражать только 1% света, но в реальной жизни такой материал можно будет встретить разве что в лаборатории.

Идея такова: реальные материалы отражают довольно много. Но отражения у диэлектриков должны иметь френелевское затухание (Fresnel falloff), поговорим о нем немножко позже.

2. Пропускание (Transmission).

Прозрачность на уровне микроструктуры означает, что световая энергия не трансформируется в тепловую (последнее характерно для черных или темных материалов) и материал пропускает свет полностью.

Если прозрачный или полупрозрачный материал окрашен в некоторый цвет, то он поглощает определенные длины волн света, а этот некоторый цвет проходит без каких либо препятствий. При этом другие цвета вовсе не проходят сквозь такой материал.

Пропускание света, виды прозрачности

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

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

Таким образом, металл отражает 50% фотонов попадающих на него и поглощает оставшиеся 50%. Если нужно смоделировать стекло, то мы скажем, что оно пропускает 90% фотонов падающих на него перпендикулярно, 5% отражает и оставшиеся 5% поглощает.

Преломление (Refraction).

Этот эффект связан с пропусканием.

Преломление – это искривление лучей света (изменение их направления движения) при прохождении границы раздела двух сред (материалов). Различная среда преломляет по-разному, это называется коэффициент преломления - IOR.

Нулевой IOR означает, что прозрачный объект невидим (нет искривления лучей, обе среды имеют одинаковую плотность). К примеру, стекло вы видите только благодаря преломлению лучей света и частичному их поглощению. Причина преломления – различная плотность сред. Свет движется медленнее, когда проходит сквозь более плотную среду.

Представьте камень, брошенный в воду под прямым углом – он не изменит своего направления, просто замедлит ход. Но если бросить камень под острым углом к поверхности воды, то, войдя в воду, он изменит свое направление полета из-за большой плотности воды по сравнению с плотностью воздуха.

Именно поэтому когда вы смотрите на стеклянную бутылку, вы почти не видите ее переднюю сторону, а видите только преломленные силуэт.

Демонстрация дисперсии, преломления света

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

IOR зависит как от коэффициента преломления, так и от коэффициента отражения, поскольку и один параметр, и второй описывают отклонение фотонов при прохождение сквозь материал. IOR также зависит и от энергии света, т.е. показывает как эта энергия перестает поглощаться материалом и начинает отражаться от него. Поэтому все материалы (не только прозрачные) имеют свое значение IOR, который влияет не все типы поведения света: все виды отражений и преломления.

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

Рендерер Mental Ray позволяет контролировать эти оба значения посредством одного параметра – IOR (отражения по Френелю), а вот VRay, использует два раздельных параметра – IOR в свитке Reflection и Fresnel IOR в свитке Refraction.

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

Дисперсия (Dispersion).

Существует также такой эффект как дисперсия, когда падающий на материал свет расщепляется. Дисперсия происходит из-за свойства материала преломлять электромагнитные (световые) волны разной длины под разными углами. Дисперсия является причиной появления таких цветовых явлений как радуга.

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

Пример дисперсии на алмазе

Дисперсия является причиной дисперсионных отражений (на счет этого определения я не особо уверен). Выглядит это как окрашенные отражения и как результат окрашенная каустика.

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

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

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

Полупрозрачность (Translucency).

Полупрозрачность – это частный случай прозрачности.

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

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

На микроструктурном уровне: полупрозрачность – это подповерхностный эффект. Я не уверен, есть ли официальная терминология для того, что я опишу ниже, но лично я использую термин "подповерхностное отражение" для эффекта, когда свет входит в материал, рассеивается и, отражаясь там внутри, выходит там же, где попал внутрь. А также понятие "подповерхностное прохождение" для эффекта, когда свет входит в материал с одной стороны, рассеивается и отражается там внутри, а выходит с противоположной стороны объекта.

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

Подповерхностное рассеивание это частный случай прохождения и происходит это так: свет входит в материал, многократно отражается от атомов внутри и выходит наружу не в том же месте, где вошел.

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

Подповерхностное рассеивание происходит только у диэлектриков. Именно поэтому неметаллические материалы имеют свой определенный цвет (а вот блики у диэлектриков всегда белого цвета). Т.е. каждый раз, когда вы видите цветной объект, знайте, это не металл, поскольку свет входит в материал, скачет там внутри, немножко "подкрашиваясь" в процессе, а потом покидает материал из другой точки.

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

Измеренную BSSRDF можно использовать для материалов с большим внутренним рассеиванием, таких как органические материалы, к примеру, для кожа.

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

Такие трассировщики (вид реалистичных рендереров) как Maxwell вообще не используют BSSRDF, но вместо этого они напрямую симулирует случайное блуждание для расчета подповерхностного рассеивания.

Отличие между свойствами шейдера Diffuse и SSS/Translucency состоит в (подповерхностном) распространении света. Или, другими словами, как далеко от точки вхождения фотона в материал, будет находится точка выхода этого же фотона (луча) наружу. Таким образом, свет, попадающий на твердую каменную стену, выйдет из ее подповерхностного слоя так близко к точке вхождения, что шейдер считает эту величину равной нулю. Но свет, попадающий на кожу, обычно выходит на заметном удалении от точки вхождения. Поэтому это нельзя игнорировать, иначе кожа будет выглядеть мертвой. Отсюда и необходимость в шейдере подповерхностного рассеивания (SSS).

3. Поглощение (Absorption).

Энергия электромагнитной (световой) волны преобразуется в тепловую энергию и "пропадает". Конечно же, пропадает она не по настоящему, но когда мы визуализируем картинку, мы концентрируемся на свете, а не на тепле. На практике это означает, что никакой материал никогда не должен отражать 100% падающего на него света, если вы хотите, чтобы он смотрелся реалистично.

Если поверхность белая, значит, она отражает все длины волн, если она окрашена – значит, отражает только определенные световые волны, которые вы видите. Для вас это должно значить одно, некоторые цветные поверхности могут взаимодействовать с цветным освещением совсем не так как вы того ожидаете.

Падая на гладкую поверхность (гладка на микроуровне), фотон отражается и пропадает. Но падая на шероховатую поверхность, с фотоном после отражения может случится целая куча вариантов: может отразится и пропасть, может переотразится несколько раз от микрошереховатостей и пропасть, а может и поглотится в конце-концов.

Когда свет поглощается поверхностью, то мы видим ее темной (поэтому темные одежки всегда теплее, чем белые).

Итак, 100% черный означает 0% отражений, а этого никогда не происходит в реальной жизни. ВСЕ материалы ВСЕГДА отражают в какой-то степени.

Цвет – это результат выборочного поглощения и выборочного отражения.

Поверхности предстают нам окрашенными поскольку они поглощают некоторые волны (тот цвет, что вы не видите), а некоторые волны отражают (тот цвет, что мы видим). Таким образом, 0% диффузной составляющей (черный) означает, что никакой свет не будет отражаться, с какой бы интенсивностью он не светил бы, поскольку вы сказали материалу полностью поглощать свет. Именно поэтому, вы никогда не должны выставлять 0% для диффуза (черный цвет в слоте Diffuse), даже если создаете очень темный материал.

Выводы.

Свет, если не отражается, то проходит сквозь поверхность, а если не проходит, то преобразуется в тепло (поглощается), как результат мы видим темный материал (видимая световая информация отсутствует). Если свет не проходит полностью сквозь материал (пропускание), то выходит из той же точки, что и вошел (подповерхностное отражение). Цвет - это всегда случай поглощения, будь то в прозрачном или непрозрачном материале, т.е. избирательное поглощение определенной длины волны. Черный – значит все волны поглощаются, белый – отражаются.



Подпишитесь на обновление блога (вот 3 причины для этого).
Введите ваш e-mail:


Читайте следующую (финальную) часть, которая посвящена материалам металла и френелевским отражениям.

 

P.S. Работа из заглавия статьи, с изображением экзотической птицы (Тукан - Toucan), выполнена британским автором в 3ds Max и Mudbox (небольшая детализация клюва), а визуализирована с помощью VRay. Мех и перья сделаны с помощью плоскостей с прозрачностью. Плоскости для перьев были неможко изогнуты, чтобы на них получился красивый блик. Свет устроен так: низкий уровень GI (глобального освещения) и куча объемных (area) источников света с разной интенсивностью и цветом. Один из источников имел проекционную карту, чтобы получить эффект просветов между листьями. Смотрите увеличенную версию и обсуждение работы тут.

 

В последнее время появились помехи для моего беспроводного интернета от Интертелекома на даче (где я в данный момент работаю). Как результат, интернет на даче вообще не берет. Пришлось искать новое рабочее место, офис, так сказать, где бы интернет брал. Просмотрел несколько объявлений типа "аренда помещений". Нашел. Комнатушка маленькая, возле речки, но мне кроме розетки и стола со стулом ничего не нужно. Главное, чтобы интернет принимал. Теперь езжу работать в свой "офис" 🙂




Вам понравилась статья? Хотите отблагодарить автора? Расскажите о ней друзьям.
Или подпишитесь на обновление блога по E-Mail.

Введите ваш e-mail (используется только для отправления обновлений блога):

комментариев 11 к статье “Наука создания фотореалистичного 3D (часть5). Прозрачность, преломление, подповерхностное рассеивание, дисперсия”

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

    • Такие таблицы существуют, но большинство параметров бесполезны, поскольку фотореалистичные рендереры используют симуляцию физических (реальных) эффектов и свойств материалов.

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

  3. А как дисперсию делать ? в V-Ray? сколько не лазил по сайтам не нашел ответа, говорят что типо вирэй для интерьеров и даже каустика считается ненужным атрибутом для него. Нашел для ментала, но хотелось бы с помощью вирэй попробывать, хотябы любым способом

    • Если у вас VRay 2 или выше, то дисперсия включается в редакторе материалов (галочка Dispersion на свитке Basic Parameters в разделе Refraction)

      • а блин, сори не внимателен, спасибо что хоть написали в каком свитке) а то бы пол века искал)

  4. Отражения в компьютерной графике
    «додали отражений — более реалстчно и инитереснее» лучше перефразировать «добавив отражений, получили более реалистичную и интересную картинку»

  5. Во-первых, спасибо за науку!
    И, если возможно, не могли бы Вы подсказать, как в Vray for Cinema выставить мягкие тени?

  6. КНОПКУ пост ВООБЩЕ НЕ ВИДНО

Извините, в данный момент комметарии закрыты.

© 2008 - 2018 3dyuriki.com
Для связи со мной 3dyuriki@gmail.com