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



Наука создания фотореалистичного 3D, виды отражений

Полностью компьютерное лицо Бенджамина на реальном теле в реальном окружении (сделано с использованием Light Stage).

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

Напоминаю, что это четвертая часть цикла статей о науке создания фотореалистичных рендеров. Вот ссылки для чтения предыдущих частей: 1, 2, 3.

Теперь о видах отражений.

В зависимости от качества поверхности, отражения делят на:

  • Зеркальные отражения (Specular reflections) характерны для отполированных, очень гладких поверхностей. Это – поверхностный эффект. Specular это корень греческого слова "зеркало".
  • Диффузные (рассеянные, размытые) отражения (Diffuse reflections) характерны для шершавых поверхностей. Это – подповерхностный эффект.
  • Глянцевые отражения (Glossy reflections) - это что-то среднее между зеркальными и диффузными отражениями.

Зеркальные, диффузные, глянцевые отражения

Есть определенные зеркальные отражения, которые характерны только для металлов – окрашенные отражения.

Проводники (металлы) не имеют подповерхностных отражений, а только поверхностные (зависящие от состояния (степени полировки) поверхности - зеркальные или матовые).

Разница в отражениях проводников и диэлектриков

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

Как отражается цвет (почему диэлектрики имеют цвет)

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

1. Отражения.

Отражение – это случай, когда фотоны отскакивают от поверхности. И это не благодаря микроструктуре поверхности, это благодаря ее атомному строению.

Диэлектрики всегда отражают точно такой по цвету свет, как и тот, что на них светит. Т.е. их отражения всегда "белые", бесцветные, чистые.

Проводники же окрашивают свои отражения.

Но есть редкие исключения, к примеру, атлас.

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

Зеркальные отражения могут быть:

  • Изотропными (isotropic).
  • Анизотропными (anisotropic).

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

Отличие изотропных и анизотропных отражений

Анизотропные отражения

Основной вклад в цвет отраженного света (в диффузную часть) вносят подповерхностные эффекты. А поверхностные эффекты зависят от степени шероховатости поверхности: начиная зеркальными и заканчивая диффузными (Lambert - Ламберт) отражениями.

 

BRDF

Bidirectional reflectance distribution function (BRDF) - двунаправленная функция распределения отражений (поверхностных отражений) описывает, как свет отражается или поглощается поверхностью в зависимости от разных углов падения.

Существует три вида BRDF:

  • Упрощенная BRDF (без учета трассировки лучей (raytracing – построение хода луча)).
  • Гибридная BRDF (упрощенная + raytracing).
  • Измеренная BRDF (комплексная, основанная на реальных измерениях).

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

Гибридная BRDF обеспечивает более реалистичный результат, чем упрощенная, ну а измеренная BRDF дает еще более реалистичную картинку.

Это видео 2007-го года:

На данный момент похожие технологии нашли применение почти во всех современных фильмах со спецэффектами: последние части Спайдермена, Кинг Конг, Супермен возвращается, Хэнкок, Загадочная история Бенджамина Баттона и, конечно же, Аватар. Во всех этих фильмах использовались разные версии оборудования и программного обеспечения Light Stage.

Упрощенная BRDF.

Упрощенная BRDF основана на цвете (diffuse) и отражениях.

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

Эта ситуация отлично отражена в 3D-редакторах: каждый современный рендерер обычно комплектуется объемным источником света (area light), который имеет реальное свое отражение (поскольку рендерер действительно может визуализировать трассируемое отражение) и при этом старые источники света не имеют реальных отражений, а только фальшивый зеркальный блик. Но, тем не менее, фальшивые блики все еще полезны.

Трассируемое и фальшивое CG отражение

 

Lambert и Oren-Nayar (Орен-Найар) – это наиболее распространенные упрощенные модели BRDF для цвета (diffuse).

 

Ламберт (просто цвет).

тип отражений Ламберт

Ламберт – по-простонародному это обычный диффузный (рассеянный) свет, а если по-научному – подповерхностное рассеивание. Другие модели работают в основном с фальшивыми зеркальными бликами (Blinn (Блин), Phong (Фонг)), которые обычно добавляются поверх Ламберта.

BRDF по Ламберту симулирует подповерхностное рассеивание таким образом: свет входит в материал равномерно рассеивается и выходя наружу попадает в объектив камеры. Но вы должны понимать, что свет, который попадает внутрь материала (при этом он там многократно отражается от атомов) и выходит наружу не может вести себя точно также как свет, который зеркально отражается от поверхности. Поэтому данная модель BRDF по Ламберту не отражает картину окружения.

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

 

Орен-Найар (цвет шершавых поверхностей).

Тип отражений Oren Nayar

Существует также "шершавая" функция для "цвета" (подповерхностного отражения). Называется она модель BRDF Орена-Найара. Эта модель имеет параметр для контроля шершавости поверхности. Этот параметр определяет, сколько света отразится назад в направлении источника света, что является характеристикой "шершавой" (запыленной) поверхности. Чем более шершавая поверхность, тем менее отчетливым является диффузное отражение.

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

К примеру, поверхность пластика не такая шершавая. А резина, камень, ржавчина значительно грубее (шершавее) кожи или бархата.

Шершавя поверхность рассеивает свет во всех направлениях, но абсолютно неравномерно. Поэтому Орен-Найар – это упрощенное представление реальности.

Blinn, Phong и Ward (Уорд) - это наиболее распространенные упрощенные модели BRDF для бликов (specular). Наиболее удачным будет материал, построенный на Ламберте + блик по модели Блинна или Фонга.

 

Blinn (световой блик с малыми искажениями если свет падает под скользящим углом).

Отражения по модели Блинна (Blinn)

Blinn – это улучшенная версия Фонга. Блики по модели Блинна в сравнении с моделью Фонга лучше держат форму при разных углах падения света.

 

Phong (световой блик).

Отражения по Фонгу (Phong)

Модель Фонга генерирует более растянутые блики под скользящими углами падения света, в то время как по модели Блинна форма бликов не меняется.

 

Ward-anisotropic (или просто Ward – анизотропные световые блики).

Тип затенения поверхности Уорд (Ward)

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

 

Cook-Torrance (металлы).

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

 

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

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

Но будьте осторожны: каждый рендерер имеет свои определения вышеперечисленных типов затенения. К примеру, в 3ds Max есть Oren-Nayar-Blinn – это не что иное, как шейдер Oren-Nayar + блик по модели Блинна. А Lambert – это обычно тот же Блинн, но без блика. Так что все это сильно зависит от 3D приложения.

Очень важно перестать полагать, что трассируемые отражения в корне отличаются от модели BRDF бликов по Фонгу или Блинну. Оба эти метода имитируют один и тот же процесс – зеркальное отражение от поверхности – они просто вычисляются разными методами. Но все-таки трассируемые отражения будут отличаться, если вы переключитесь на BRDF по Фонгу или Блинну.

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

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

 

Измеренная BRDF

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

Что происходит на микроструктурном уровне в реальной жизни.

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

Измеренная BRDF, модель реальной поверхности

Если поразмышлять на эту тему, то можно заметить, что некоторые зеркала будут затенены другими вершинами и, поэтому, не будут отражать свет. Аналогичным образом другие зеркала будут скрыты от нас за другими вершинами. Эти эффекты известны в литературе как затенение (shadowing) и экранирование (masking).

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

Затенение и экранирование – это два эффекта, которые есть в арсенале таких BRDF для поверхности с микрогранями как Cook-Torrance, Ward и A&S. Они моделируют эффекты от вершин на микроструктуре поверхности: затенение света другими микрогранями и блокирование объектива определенными микрогранями, соответственно. Измеренная BRDF также учитывает эти эффекты, но только как часть измеренных данных, а не как точные параметры модели.

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

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



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


Читайте пятую часть под названием "Прозрачность, преломление, подповерхностное рассеивание, дисперсия".




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

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

комментария 4 к статье “Наука создания фотореалистичного 3D (часть4). Виды отражений в компьютерной графике, BRDF”

  1. серьезно.. спасибо!
    и будет продолжение?!

  2. Надо-бы перечитать потом еще, не все усвоил.
    И если есть поподробнее про поверхности и подповерхности, то можно ссылку? В статье это не раскрывается.

  3. AkhmadMax, посвети фонариком на металл — это «чистая» поверхность с чистыми отражениями. А теперь тот же фонарик прижми к своей ладони и посмотри на ее обратную сторону. Это красное свечение из-под кожи, в котором можно разглядеть кости и даже толстые сосуды и есть результат подповерхностного рассеивания. Свет, проходя через кожу, проникает в более глубокие ткани, постоянно отражаясь ото всего, включая ваши каппиляры и сами кровяные тельца. Они и окрашивают это свечение в характерный красноватый оттенок. А то, что в итоге доходит до другой поверхности кисти имеет вполне равномерную яркость — вы видите только тот свет, который не поглотился вашими тканями (не рассеялся в них).

  4. Вопрос в статистической модели строения однородной шероховатости — из неё следуют почти все вопросы шейдинга.
    А я вот тут подвергся безжалостному ментальному насилию со стороны unbiased+NURBS, и осознал свою беспомощность перед фактом невозможности создать нормальный материал без проведения лабораторной работы с натурным образцом… Запиратить готовые материалы оказалось труднее, чем я предполагал — эти материалы явно дороже, чем просто композитные текстуры.

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

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