Перейти к публикации
Bezz

Перевод статьи Tutorial: Physically Based Rendering, And You

Рекомендованные сообщения

Физически обоснованный рендеринг ( Physically Based Rendering), и Вам это по силам!

 

Автор: Joe “EarthQuake” Wilson

 

Оригинал статьи : http://www.marmoset.co/toolbag/learn/pbr-practice

 

Будет свинством не поблагодарить Антона Фокина (Dusk) и Наталью Дрыганец (Minority) за то время, что они потратили на помощь в переводе и редактировании данной статьи. Ну и за саму помощь, разумеется. А то я типа один тут такой переводчик, - прим. пер.

 

Еще примечание: Статья размещена на сайте Marmoset, поэтому по тексту регулярно происходят отсылки к внутренним компонентам и возможностям программы Marmoset Toolbag 2.

 

Этот урок призван охватить основы создания арт контента, некоторые рассуждения о разных PBR (Physically Based Rendering) стандартах (не вдаваясь в технические подробности), и развеять некоторые распостранённые заблуждения. Jeff Russell написал отличную статью по теории Физически обоснованного рендеринга (http://www.marmoset.co/toolbag/learn/pbr-theory), которую я очень рекомендую прочитать в первую очередь. (перевод тут: http://arttalk.ru/forum/viewtopic.php?t=10504)

 

 

Мне помогали Jeff Russell, Teddy Bergsman и Ryan Hawkins. Отдельное спасибо Wojciech Klimas и Joeri Vromman за ценную информацию и восхитительный арт.

 

Новые стандарты

 

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

 

header01_139.jpg

 

 

Физически обоснованный рендеринг (PBR) берет за основу идею использования реалистичных моделей затенения / освещения вместе с заданными значениями свойств поверхности с целью точного воспроизведения реальных материалов.

 

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

 

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

 

PBR FAQs

 

Прежде чем начать, давайте ответим на самые частые вопросы, связанные с PBR.

 

1) Я не знаю, как использовать систему PBR, должен ли я буду заново учится создавать контент?

 

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

Если в основном вы имели опыт даботы в хэнд-пэйнт стиле или для мобильных платформ, изучение описанных здесь новых техник может быть несколько сложнее. Но, вероятно, не сложнее понимания традиционного рабочего процесса с применением карт нормалей (Normal Maps).

 

2)Должны ли будут художники сами снимать фото референсы при помощи камеры с поляризующим фильтром (polarized camera system) для каждого материала, который они создают?

 

Нет, ваша студия скорее всего предоставит вам референсы нужных материалов. В противном случае, вы можете найти известные значения в различных сторонних источниках, таких как Quixel’s Megascans. Сканирование таких данных самостоятельно очень технически сложный и долгий процесс, в большинстве случаев необязательный.

 

3) Если я использую PBR шейдер значит ли это что моя работа физически верна?

 

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

 

4) Должен ли я использовать metalness map чтобы получился настоящий PBR?

 

Нет, metalness map это просто один из методов задания отражательной способности поверхности, который в целом не более физически точен, чем specular color/intensity map.

 

5) specular map больше не используется?

 

Не совсем. интенсивность спекулярного света (Specular reflection intensity) или отражающая способность (reflectivity ), это все еще очень важный параметр в PBR. У вас может не быть карты, которая нарпямую задает reflectivity (например, если задается metalness - насколько материал ведет себя как металл), но specular всё ещё требуется в PBR.

 

6) gloss maps заменили specular maps?

 

Нет. Gloss или roughness map определяет микрошероховатость материала (на сколько он грубый или гладкий), и не заменяют specular intensity map. Однако, если Вы не привыкли работать с gloss map, прийдется менять привычки и добавлять на gloss map детали, которые Вы бы добавили на specular map.

 

7) Может ли PBR использоватся для создания стилизованноог арта?

 

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

 

Хорошим примером могут послужить работы Pixar, которые являясь очень стилизованными, находятся впереди планеты всей по достоверности материалов Вот прекрасная статья о PBR в Университете Монстров: fxguide feature on Monsters University http://www.fxguide.com/featured/monsters-university-rendering-physically-based-monsters/

 

Входные параметры и терминология (Inputs and Terminology)

 

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

 

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

 

Сохранение энергии (Energy Conservation)

 

Понятие сохранения энергии гласит, что объект не может отражать больше света, чем принимает.

 

energycompare02_597.jpg

 

В практическом смысле, это означает, что более грубые материалы, склонные к поглощению света будут иметь тусклые и широкие блики, а гладкие и более отражающие материалы - яркие и резкие

 

Альбедо (Albedo)

 

Albedo, это входной параметр базового цвета, широко известный как diffuse map.

 

albedocompare02_178.jpg

 

Карта Albedo задает цвет диффузного света. Одним из крупнейших различий между albedo в pbr и традиционной diffuse map является отсутствие засвеченного направленного света или ambient occlusion. Запеченный свет в некоторых условиях освещения будет смотреться неправильно, а Ambient occlusion следует назначать в специальный слот под AO.

 

Albedo иногда задает больше, чем просто диффузный цвет. Например, при использовании metalness map, albedo задаёт диффузный цвет для диэлектриков и reflectivity для металлических поверхностей.

 

Микроповерхность (Microsurface)

 

Microsurface задает насколько гладкой или шероховатой является поверхность материала.

 

microcompare05_155.jpg

 

На кртинке выше видим, как принципы сохранения энергии подвергаются влиянию микроповерхности материала. На грубых поверхностях блик шире, но тусклее, в то время, как на гладких - ярче, но резче.

 

В зависимости от движка, под который вы готовите контент, карта может называться roughness map вместо gloss map. На правтике разницы особой нет, хотя roughness map может иметь инвертированные значения, то есть темные места - глянцевая/гладкая поверхность, а светлые - грубая/матовая. По умолчанию, Toolbag считает белое за самые гладкие места, а черное - за самые грубые. Если Вы загружаете gloss/roughness map с обратными значениями, поставьте галочку в поле invert в gloss-модуле.

 

Отражательная способность (Reflectivity)

 

Reflectivity, это процент света, который поверхность отражает.

 

reflcompare10_260.jpg

 

Важно отметить, насколько узкий диапазон reflectivity отводится диэлектрикам. Прибавив к этому закон сохранения энергии, легко сделать вывод, что вариации поверхности должны передаваться через microsurface map, а не через reflectivity map. Для заданного типа материала, reflectivity остается практически постоянной. Цвет отражений у непроводников обычно нейтральный/белый, и цветной у металлов. Таким образом, карта, специально направленная на определение цвета/силы отражений (известная как specular map) может быть отброшена в пользу metalness map

 

metalness02_182.jpg

 

Использование Metalness map:

 

Параметры для непроводящих поверхностей (их пикселям на metalness map ставится значение 0.0 - черный):

  • Значение коэффициента отражения reflectance value: в линейном пространстве 0.04, в sRGB 0.06
  • Из albedo map берется значение диффузного цвета (diffuse color)

 

Параметры для металлических поверхностей (значение пикселя на metalness map равно 1.0 - белый):

  • из albedo map берется цвет и сила отражения
  • diffuse приравнивается к 0 (черный)

 

Серые места в metalness map воспринимаются как частично металлические, и для них берется значение reflectivity из albedo, а diffuse затемняется в зависимости от значения серого (частично металлические материалы редки).

 

Еще раз повторим, что metalness map настолько же физически корректна, как и обычная specular map. Однако, это более простая для понимания идея, к тому же metalness map можно упаковать в черно-белую текстуру для экономии памяти. Недостатком metalness map перед specular map является потеря непосредственного контроля над параметрами диэлектриков.

 

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

 

PROTIP: в Metallnes map рекомендуется использовать 1 или 0 (можно небольшой градиент в местах переходов). Материалы вроде покрашенного металла (painted metal) не стоит обозначать как металл, так как краска, это диэлектрик. Значение metalness должно отражать верхний слой материала.

 

Френель (Fresnel)

 

Fresnel, это процент света, отражаемого поверхностью под крутыми углами.

 

fresnelcompare02_134.jpg

 

Fresnel обычно стоит ставить на 1 (если в модуле reflectivity выбран тип metalness, то Fresnel блокируется в положении 1), так как все виды материалов становятся на 100% отражающими под критическими углами. Вариации микроповерхности, из-за которых эффект Френеля становится более или менее выраженным, автоматически учитываются по содержимому gloss map.

 

Замечание: В данный момент Toolbag 2 не поддерживает контроль интенсивности Френеля с помощью текстурных карт.

 

Ambient Occlusion

 

ao01_607.jpg

 

Ambient Occlusion (AO) представляет собой самозатенение в масштабе всего объекта и обычно запекается с 3д модели.

 

Добавление АО в качестве отдельной карты, вместо того, чтобы запекать в Albedo и Specular map дает шейдеру возможность использовать его более разумно. Например, Функция АО затеняет окружающий рассеянный свет (diffuse компонет image based lightning-системы в Toolabag 2) , а не направленный свет от динамических источников света или спекулярных отражений любого вида.

 

АО обычно не стоит добавлять через multiply поверх Specular или Gloss map. Эта техника применялась для избегания некорректных отражений (напр. небо, отражающееся от затененного объекта). Но в настоящее время local screen-space reflections гораздо лучше справляются с передачей межобъектных отражений.

 

Трещины\полости (Cavity)

 

cavity01_166.jpg

 

Cavity map представляет собой затененный свет в мелком масштабе и обычно запекается с 3д модели или из normal map.

 

Cavity map должна содержать только углубления (ямы) поверхности, а не выпуклые места, так как Cavity map накладывается через Multiply. СОдержимое должно в основном быть белым с темными местами, передающими впалые участки поверхности, где будет теряться свет. Cavity map влияет и на diffuse и на specular компоненты окружающего и динамичного освещения.

 

В качестве альтернативы в этот слот можно включить reflection occlusion map (карту затенения отражений). Но в таком случае убедитесь, что выставили значение diffuse cavity на 0.

 

Определение параметров материала (Finding Material Values)

 

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

 

В этом случае очень полезен сервис Quixel’s Megascan’s , который предоставляет большую библиотеку откалиброванных тайлящихся текстур, полученных путем сканирования природных материалов.

 

materialref01_759.jpg

materialref01.thumb.jpg.0d0846e746d9564ebd77f060ddbe19e5.jpg

cavity01.jpg.3eb6c807ad98f51e4f646f055ed04ce7.jpg

ao01.jpg.e762f33c2b2e8237892704683eec5876.jpg

fresnelcompare02.thumb.jpg.f1ea66914fb492c6aafc9318676f0a40.jpg

metalness02.thumb.jpg.7b68c17da762e6dccbce26a16cd5fffc.jpg

reflcompare10.thumb.jpg.a2e07740b29d4b0d77da2e7d5d3ad5fb.jpg

microcompare05.thumb.jpg.95e434d0ab0cd154ca8bc9b758c6191a.jpg

albedocompare02.thumb.jpg.5a34501e32855aef3d77e49533e113ad.jpg

energycompare02.thumb.jpg.84f572e32775ff530309cb0e868c3d40.jpg

header01.thumb.jpg.fcc3d998ac613d7d05fbc145e6bef4ee.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создание текстурного контента (Creating Texture Content)

 

layering01_177.jpg

 

Существует множество способов создать текстурный контент под PBR системы; Конкретный способ будет зависеть от ваших личных предпочтений и доступных программ. Ниже приведено короткое описание того, как я создавал вышеприведенный объектив:

 

psd01_610.jpg

 

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

 

lenstextures01_377.jpg

 

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

 

Подобным образом работают такие приложения, как dDo, Mari и Substance Designer.

 

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

 

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

 

Вопросы художникам (Artist Q&As)

 

Мы были очень впечатлены работами, сделанными с тех пор как вышел Toolbag 2 и хотели бы воспользоваться возможностью продемонстрировать некоторые особо выдающиеся образцы и задать их создателям вопросы касательно PBR.

 

Wojciech Klimas

 

Wojciech Klimas - художник из Польши, работающий в DNV над проектом Survey Simulator. Wojciech так же принимает заказы на фриланс. Портфолио: http://www.wklimas.weebly.com

 

teapot04_141.jpg

 

Вопрос (В): В чем была самая большая трудность при освоении методов работы под PBR?

 

Ответ (О): Пожалуй, самое трудное, это соблюсти точные значения Albedo, Reflectence и roughness. Легко сжульничать и подстроить параметры под конкретные условия освещения, но при этом в других условиях он может смотреться плохо. Если все сделать правильно, используя физически-корректные значения, смотреться будет хорошо при любых условиях. Ничего не смотрится лучше, чем реальность. :)

 

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

 

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

 

О: Путем поиска в интернете. Измерять самому вне моих возможностей, но я бы хотел попытаться, мне кажется, я бы многое узнал.

 

В: Ваш секрет крутости?

 

О: Сложный вопрос. Лучшее, что могу посоветовать - учить физику. :) Очень помогает понять, почему материалы ведут себя именно так, а не иначе. НА пути к крутости срезать не получится - только практика, практика, практика.

 

Joeri Vromman

 

Joeri Vromman - художник из Бельгии, обучающийся в DAE http://www.digitalartsandentertainment.be/ и открытый для фриланса между занятиями. Его работы можно увидеть тут: http://www.joerivromman.com

 

joerishota02_136.jpg

 

В: В чем была самая большая трудность при освоении методов работы под PBR?

 

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

 

joerishotb01_151.jpg

 

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

 

О: В моей работе есть следующие этапы:

  • Собрать референсы для каждого типа материала/части объекта
  • Начать с создания грубого наброска каждого типа материала. Эти наброски не должны быть точными. но должны давать хороший базис от которого можно отталкиваться.

 

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

 

С Reflectance легче всего начинать и она служит хорошей основой для других карт. Для диэлектриков важно сохранять значения в коротком спектре, в котором они обычно отражают. Для металлов важно сначала выставить diffuse в черный, а затем подобрать подходящее значение reflectance. По том я выставляю временные значения roughness, обычно просто разделив материалы на три категории (блестящий, средний или грубый). Затем я подбираю значние Albedo, следя за тем, что бы все материалы согласовывались между собой, а картинка не была слишком темной. Так же я переключаюсь между различными режимами освещения, чтобы убедиться, что материалы согласовываются между собой в любых условиях.

 

Когда начальная стадия завершена, я, полагаясь на визуальные наблюдения точно настраиваю значения для каждого отдельного материала, не выпуская из виду концепцию PBR. На этом этапе я предпочитаю через overlay добавлять к normal map детали тем материалам, у которых присутствует выраженная неровность поверхности, вроде бугристого пластика.

 

Важно помнить, что значение reflectance map меняются только от материала к материалу.

 

В: Ваш секрет крутости?

 

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

 

Ссылки (References)

joerishotb01.thumb.jpg.161abade1b5397fae9455466d305a410.jpg

joerishota02.thumb.jpg.493524b18d3db0307d55de4e99edf686.jpg

teapot04.thumb.jpg.f5f37ca9d33e87b86fc1599d90d25897.jpg

lenstextures01.thumb.jpg.d5f93796b52ac59ca99770a35449a6b1.jpg

psd01.jpg.42990135ff161801c00d05c41eb29f1b.jpg

layering01.thumb.jpg.8176ae370202749f99e2f7324f126049.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Невероятно, спасибо! :II:

С нетерпением ждем новых переводов :rj:

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Во, круто ! Перечитаю еще разок, на родном языке ;-) Огромное спасибо :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вах! отлично! спасибо, тоже перечитаю на родном языке! :rj: :rj: :rj:

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

poboroznyuk, спасибо)

Вообще, не планировал. В планах есть перести несколько статей из второго выпуска Vertex'a, но и то позже. Перевод все-таки нормально времени съедает, а ведь еще и самому хочется творчеством заняться :oops:

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Bezz

Буду очень благодарен, да и не только я наверное, если у вас будет возможность перевести и ту статью), но не в ущерб себе :wink:

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Шикарно! А насчет библиотеки материалов MegaScans, как я понял она еще не появилась. Интересно что она будет из себя представлять? будет ли возможность вытащить текстуры и числовые значения материалов из нее и перенести их в врей к примеру. Или это будет применимо только к мармосету и кейшот ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

2 TheDreamer. А это не в самой программе библиотеки материалов? Пакет из всего софта Квикселей стоит 100 баксов. По-моему, так всё есть.

 

ПС. хотя нет. будет доступно в будущем.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

TheDreamer, Megascans это будет набор откалиброванных тайлящихся текстур оч высокого разрешения. Сканы же. Если я правильно понял, это отдельная библиотека, из которой можно загружать материалы в Ddo. Или юзать отдельно.

Сейчас в DDo есть 2 варианта: add smart material и add material. Вот второе это пресеты из Megascans. Что есть первое не разобрался.

НАсчет вытащить: "C:\Users\Public\Quixel\SUITE\script\patterns" Вот тут по дефолту тежат паттерны для фотошопа, которые можно вытащить. и пользоваться отдельно :twisted:

 

Еще к вопросу о материалах. Андрей Максимов запускает интересный проект "Materialing", который представляет собой бесплатный скрипт для фотошопа для рисования PBR матералов. Ознакомиться можно

. Стоит заценить хотя бы из-за того, что к скрипту прилагается небольшая база хороших материалов под PBR. CСсылки там в описании

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×
×
  • Создать...

Важная информация

Чтобы сделать этот веб-сайт лучше, мы разместили cookies на вашем устройстве. Вы можете изменить свои настройки cookies, в противном случае мы будем считать, что вы согласны с этим. Условия использования