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



Как создавать PBR текстуры. Том 2. Часть 1

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

Свет и материя

Практические рекомендации по созданию PBR текстур

Физически корректный рендеринг (PBR) можно рассматривать скорее как методику, а не как жесткий стандарт. Существуют его принципы и инструкции, но не верно считать его стандартом. Таким образом, могут быть различия в его реализации. Эти различия обычно можно найти в типах карт, используемых в процессе шейдинга (создания материалов), трактовке BRDF (двулучевой функции отражательной способности (ДФОС)) и в том, как значения данных отвечающих за шероховатость / глянцевитость могут быть переназначены в отдельных случаях. Иногда изменяются даже названия карт, но в основе использования PBR заложены одни и те же принципы.

В этом руководстве мы обсудим два наиболее распространенных подхода при создании материалов:

  1. на основе карт металличности (metall) и шероховатости (roughness) [будем этот подход дальше называть metall/roughness], а также
  2. на основе карт зеркального отражения (specular) и глянцевитости (glossiness) [этот подход будем называть specular/glossiness].

как показано на рисунке 01:

Разница между двумя подходами создания PBR материалов

Рисунок 01.

Инструменты Substance для создания PBR карт, входящие в состав программ SubstanceDesigner, SubstancePainter и Bitmap2Material 3, поддерживают оба эти подхода. Substance PBR-шейдеры metall/roughness и specular/glossiness используют т.н. GGX-разновидности функции BRDF, в которой не используется переназначение величин шероховатости и глянцевитости. Тем не менее, если пользовательские переназначения все же необходимы – это может быть легко реализовано в Substance материалах. Кроме того, пользовательские шейдеры поддерживаются инструментами Substance, что означает, что вы можете адаптировать Substance инструменты для всех пользовательских пайплайнов.

Важно отметить, что из-за наличия как достоинств, так и недостатков в реализации обоих описанных выше подходов, нельзя выделить только какой-то один идеальный подход. Что действительно важно, так это понимание основных принципов, лежащих в основе PBR – понятий и концепций, согласно которым создаются PBR карты, а не сам процесс. Рабочие процессы [далее я буду использовать также английский термин workflow/-s (который еще означает последовательность операций или подход) или его грубую транскрипцию - воркфлоу/-с) представляют одни и те же данные, но реализуются эти данные по-разному.

В первом томе данного издания мы рассмотрели PBR с технической и теоретической точки зрения. Во 2-м томе мы будем обсуждать практическое применение PBR текстур и сформулируем набор принципов, основанных на фундаментальных знаниях, установленных в первом томе. Мы начнем с переопределения PBR с художественной точки зрения. После этого мы рассмотрим workflow создания двух типов материала: metall/roughness и specular/glossiness, отвечающих общепринятым принципам и правилам. Затем мы подробно определим различия в методах создания (авторинга) таких типов материалов. Поэтому, стоит коротко напомнить основные моменты, чтобы получить полное представление об общих принципах создания PBR текстур.

Что такое PBR?

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

Каковы преимущества PBR?

Рассматриваемые преимущества PBR с художественной точки зрения и эффективности производства, могут заключаются в следующем:

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

Что это означает для художника?

Мы, как 3D художники должны думать несколько иначе о картах, которые описывают свойства поверхности. Существуют новые типы карт с правилами их создания и принципами которые стоит соблюдать.

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

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

Подход metall/roughness.

Подход metall/roughness определяется набором каналов, которые передаются в виде определённых текстур в PBR-шейдер. Основными картами при создании материала по подходу metall/roughness являются карты:

  • базового цвета,
  • металличности и
  • шероховатости,

как показано на рисунке 02:

metall/roughness подход для создания PBR материала

Рисунок 02.

Мы обсудим каждый из этих типов карт ниже. PBR-шейдеры также используют карту ambient occlusion, карту нормалей, и даже карту высоты для параллакс-маппинга, как показано на рисунке 03. Эти типы карт являются общими для обоих видов материалов (см. выше) и будут обсуждаться в разделе "Общие карты для обоих воркфлоу".

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

Использование карты высот и AO

Рисунок 03.

Значения френелевского коэффициента F0 для диэлектриков (неметаллов) не определяются вручную, эту функцию берет на себя шейдер. Когда такой шейдер видит черный цвет на карте металличности, он обрабатывает соответствующие области в карте базового цвета как для диэлектрика и использует значение коэффициента отражения 4% (0,04 в линейном пространстве), как показано на рисунке 04. Как мы уже обсуждали в первой части, значение 4% считается наиболее распространенным для диэлектрических материалов. Важно отметить, что все значения, такие как: F0 для диэлектриков, отражающая способность, диапазон яркостей для альбедо (т.н.  рассеянного цвета или чистого диффузного цвета), устанавливаются на основе реальных измерений. Яркости обеих карт на рисунке 04 также основаны на измерениях.

В первом томе мы обсуждали понятие сохранения энергии где говорилось, что интенсивность света, отраженного от поверхности никогда не будет выше интенсивности света, падающего на поверхность. С точки зрения работы материалов, шейдеры, как раз, и осуществляют управление сохранением энергии, как в случае с шейдерами Substance. При подходе metall/roughness закон сохранения энергии нарушить невозможно. Баланс между дифузом (отраженным цветом) и отражательной способностью контролируется маской металличности. Это означает, что мы не можем смоделировать ситуацию, когда диффузную и отражательную составляющую можно объединить с целью отразить/преломить больше света, чем первоначально получила поверхность.

Как выполняется закон сохранения энергии в pbr материалах

Рисунок 04.

Константа F0 для диэлектриков.

Инструментарий Substance или UnrealEngine 4 для metall/roughness материалов дает возможность контролировать зеркальность или блеск материала с помощью изменения значение константы F0 (коэффициента отражения по френелю) для диэлектриков. Это значение называется "specularLevel" в Substance. Значения константы F0 представлены интервалом 0,0 – 0,08, как показано на рисунке 05. Если вам в Substance Designer нужно вручную установить F0 для диэлектрика, вы можете сделать это, используя выход "specularLevel", как показано на рисунке 06. Мы подробно обсудим значения F0 для диэлектриков далее, при обсуждении подхода specular/glossiness.

Коэффициент преломления френеля для диэлектриков

Рисунок 05.

различные IOR для F0

Рисунок 06.

Базовый цвет (RGB - sRGB).

Карта базового цвета – это RGB карта, которая может содержать 2 типа данных:

  1. отраженный цвет для диэлектриков и
  2. силу отражения для металлов,

как показано на рисунке 07.

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

 что означает цвет на текстуре базового цвета

Рисунок 07.

Рекомендации по созданию текстуры базового цвета.

Карта базового цвета (альбедо) может рассматриваться как изображение более равномерное по тональности, т.е. менее контрастное, чем традиционная диффузная текстура. Такой подход нужен, чтобы избежать слишком светлых или слишком темных значений. С точки зрения тона, объекты, на самом деле, намного светлее, чем они нам кажутся. Видимый диапазон тональной яркости можно представить себе разбросом от самого тёмного материала - древесного угля с одной стороны и свежим белым снегом с другой. Мы знаем, что уголь темный, но это не 0,0 значение черного. Значения цвета, которые мы выбираем должны оставаться в пределах диапазона яркости. В отношении диапазонов яркости, в основном, следует ссылаться на значения отраженного цвета для диэлектриков. На рисунке 08, можно увидеть пример, где значение загрязнений находятся ниже правильного диапазона яркости. Для темных участков, значения яркостей должны находиться в диапазоне 30 – 50 sRGB. При этом точность значений должна возрастать: при 30 sRGB они могут быть менее точными и более точными при 50 sRGB. Для ярких цветов значения яркостей не должны быть выше 240 sRGB.

Правильные яркости базового цвета (альбедо)

Рисунок 08.

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

Значения яркостей для карты, которая описывает отражательную способность для металлов, должны быть получены реальными измерениями значений. Значения коэффициента отражения находятся в диапазоне 70 – 100%. Этот диапазон может быть отображен значениями sRGB 180 – 255. В разделе Substance PBR Utilities мы обсудим инструменты, которые обеспечивают предустановленные значения F0 для обычных материалов. Полезным информационным ресурсом, кроме этого, может стать блог Себастьяна Лагарда (Sebastien Lagarde), где приведены графики значений яркостей для карт металличности и шероховатости.

микро-затенения и базовый цвет

Рисунок 09.

  1. Цвет представляет собой альбедо для неметаллических материалов и значение отражения для металлов.
  2. Основной цвет должен быть лишен информации об освещении, за исключением микро-затенений.
  3. Для темных участков, значения яркостей должны находиться в диапазоне 30 – 50 sRGB. При этом точность значений должна возрастать: при 30 sRGB они могут быть менее точными и более точными при 50 sRGB.
  4. Для ярких цветов значения яркостей не должны быть выше 240 sRGB.
  5. Коэффициент отражения для чистого (неокрашенного) металла будет в диапазоне 70-100%, который можно отобразить значениями sRGB 180 – 255.

В следующем разделе, посвященном картам, описывающим металлы, будет показано, что базовый цвет также может содержать значения для описания отражательной способности металлов. Если информацию об участках поверхности с загрязнениями или окислениями добавить к карте базового цвета, то это приведет к тому, что отражательная способность участков металла будет понижена до диапазона, которые не должен соответствовать значениям чистого металла. Добавление участков загрязнений или окисления также должны быть учтены в карте металличности. Значения для отражений на metallic map также должны быть снижены в этих областях, чтобы обозначить, что эти участки больше не рассматриваются в качестве исходного металла. Например, на рисунке 10 видно, что ржавый металл рассматривается как диэлектрик и описан черным цветом в карте металличности.

карта металличности для PBS ржавого металла

Рисунок 10.

Карта металличности (metallic map, в градациях серого, в линейном пространстве).

Карта металличности используется, чтобы определить, какие участки материала обозначают чистый необработанный металл. Карта металличности – это изображение в оттенках серого или, грубо говоря, чёрно-белая текстура. Она работает как маска для карты базового цвета, и указывает шейдеру, как необходимо интерпретировать данные, найденные в карте базового цвета. Данные в карте металличности не содержат реальных данных, которые непосредственно описывают качества металла. Эта карта просто указывает шейдеру, какие области на карте базового цвета должны быть поняты как диффузный цвет диэлектрика, а в каких областях – как отражающие участки для металла. В карте металличности, значение 0,0 (черный – 0 sRGB) представляет неметаллические области, а 1,0 (белый – 255 sRGB) – чистый металл.

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

карта металличности в качестве маски для базового цвета

Рисунок 11.

Рекомендации по созданию текстуры металличности.

При создании карт для металлов следует учитывать две важные особенности:

  1. отражательная способность металлов имеет высокие значения в диапазоне 70 – 100%;
  2. некоторые металлы могут подвергаться коррозии.

Далее эти особенности будут учтены отдельно при обсуждении практических рекомендаций для создания PBS текстур.

Продолжение читайте тут.

Если вы хотите более подробно узнать о фотореалистичном рендеринге, то вам сюда.

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



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


Источник.

Спасибо за помощь с переводом Игорю Гнатюку.

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




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

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

комментария 22 к статье “Как создавать PBR текстуры: практический курс. Часть 1”

  1. Очень интересно. Но непонятно, как их создавать-то(

    • В смысле, что тут непонятного ? Методика точно такая-же как и обычных текстур. Можно конечно упростить процесс вспомогательным софтом типа Quixel Suite/SubstanceDesigner/SubstancePainter.

      Но суть та-же, как и раньше : Photoshop/GIMP (любой растровый редактор) и вперед — слои/фильтры, дорисовка, декали), использование запеченных текстур, фототекстуры.

  2. >> вспомогательным софтом типа Quixel Suite/SubstanceDesigner/SubstancePainter
    ни че не пойму, а как без этих прог создавать PBR?

    обычные диффуз,нормал,спекулар,АО понятно, а эти PBR? Как без спец софта делать?

    В чем принципиальная разница межу старым подходом и PBR?

    • Метод создания текстур идентичный в обоих случаях. Берете Photoshop — делаете текстуры, все. Да хоть в MS Paint, по-барабану.

      Спец-софт просто упрощает (и от части автоматизирует) их создание. Собственно раньше использовали старый Quixel dDo 5.2 (который не предназначен для PBR-Шейдинга), но в ходе создания текстуры адаптировали результат к PBR-у.

      А до 2011 года и вовсе не было никакого спец-софта. Вон PBR-Рендеру в Houdini (Mantra Render) сколько лет, и как-то же справлялись все это время 🙂 Сейчас-то уже вышел PBR-ориентированный dDo, который просто упрощает этот процесс. Поэтому я его и упомянул.

      А будет-ли итоговый набор текстур под PBR или под Старый вариант шейдинга — решаете только вы (на раннем этапе, естественно). Разница между Старым и Новым вариантом как раз описывается в этих уроках (гайдах) которые Юрий переводит.

      Дополнительно могу скинуть это (по сути — то-же самое, только в более ужатом варианте):
      http://www.marmoset.co/toolbag/learn/pbr-theory
      http://www.marmoset.co/toolbag/learn/pbr-practice
      http://www.marmoset.co/toolbag/learn/pbr-conversion

      P.S. Я вообще считаю что нужно САМОМУ оттекстурить модель под PBR, без всякого софта, чисто в Photoshop-е. Сначала в Metalness-методе а потом адаптировать результат к Specular-методу. Вопросы сами по себе отпадут, тогда можно смело начинать использовать Quixel Suite/Substance Painter, Designer.

  3. Спасибо. То есть остались те же обычные диффуз,нормал,спекулар,АО только они теперь отображаются с помощью PBR шейдера?

    • Все это описано в этих трех гайдах которые Юрий переводит и по ссылкам которые я скинул. Там все более чем понятно написано.

      Эх… В общем : Вместо Diffuse — Albedo/ColorMap. Вместо — Specular может быть Metalness, но не обязательно. Ведь есть 2 подхода, при одном есть Specular, при другом его нету. AO не запекают в Albedo (бывший Diffuse), и используют иногда один AO для макро уровня и отдельный для микро уровня. Например для прожилок древесины один, для трещин другой. AO теперь немного по другому взаимодействует с освещением, и обязательно должен идти отдельной текстурой. Или в другой текстуре в ЧБ Альфаканале. Normal-Map — Абсолютно не изменились. Specular — Работает в зависимости от выбранной модели. Если вы текстурите через Metalness то Specular-а и вовсе может не быть. Glossiness — переименовали в Roughness-Map/Microsurface-Map.

      Ну если видео-вариант хотите то вот :
      https://youtu.be/LNwMJeWFr0U
      https://youtu.be/LpLBzV9uG0Y
      https://youtu.be/Tt30zzBQb3w (В описании есть моделька + Сцена под Мармосет и Текстуры).

    • То-есть еще раз !

      От старой шейдерной модели в своем исходном виде и назначении остались только : Normal-Map/Glow-Map(Heat-Map)/Parallax-Map/Opacity-Map(Alpha-Map). Да и все, если ничего не забыл.

      Все остальное — поменялось как в названии так и в назначении/применении !

  4. IntelXeon Ok. Спасибо.
    >> Вместо Diffuse — Albedo/ColorMap. Вместо — Specular может быть Metalness
    Только названия поменялись? Технически они рисуются так как и Diffuse и Specular?

    • Ну блин, как текстура может рисоваться по другому ‘технически’ ? Ну никак. Вы рисуете текстуры точно так-же как и раньше — Кисточками/Слоями/Декалями/Фильтрами/От руки/Выделениями/Альфа-Масками/Фото-Текстурами. И тд и тп.

      Но ведь сама текстура то отличается, Альбедо и Diffuse это ВООБЩЕ разные текстуры по своей сути/механике/назначению. В Альбедо — вы рисуете цвет поверхности, без затенений, без света/бликов. В Diffuse вы рисуете результат на который уже падает свет, возможно есть блики, затенения подчеркивающие детали, но самое важное что в Diffuse вы рисуете цвета (как мы их видим на фото/в жизни). В Альбедо текстуре все по другому. Ну и в зависимости от метода Metalness/Specular — части Альбедо-Текстуры могут выступать заменителем Specular-а.

      Я уже несколько раз говорил что в этих уроках (гайдах) что я скинул ВСЕ это уже объясняется, такое впечатление что вы их не читали если такие вопросы возникают.

  5. Это опять я 🙂
    А есть где нибудь толковый ПРАКТИЧЕСКИЙ урок как именно рисовать ПБР тесктуры от и до с самого начала?
    А не просто куча теории с парой-тройкой скринов, типо вот так надо.

  6. Когда уже вторая часть? )
    Я жду с нетерпением.

  7. так и не понял — откуда берется цвет метала??
    подскажите пожалуйста кто-то :))

  8. Большое спасибо за прекрасный перевод!
    Будет продолжение?

  9. Добрый день! Очень интересная тема самостоятельное создание PBR текстур. Специфики там много, так как много условий в уровнях цветов внутри текстуры. Видел какую-то таблицу, где указано в каких пределах каких параметров нужно что выставлять для типичных случаев (металл, дерево, пластик, керамика, ворсистые поверхности)
    Было бы очень интересно почитать более развернутый тутор на эту же тему. И побольше бы примеров.
    Про то, что растушевывать надо в фотошопе — понятно, хочется примеры именно чистых текстур, и какие параметры можно потом в рунтайме менять, чтобы эффекты получать. но например степень свечения если менять — можно сделать например лаву, которая «дышит»… Наверняка для разных типов материалов есть свои специфики.

    За этот урок отдельное спасибо!

  10. А как понять, что mid-gray, который должен быть 127, почему-то 187, или 186, примерно? Вот написано, что reflectance в sRGB — 0.57. Это как задать в колор пикере фотошопа? Где это число выставить конкретно? то есть это каждый канал должен быть 255*0.57, так чтоле?

  11. Спасибо) Жду продолжения)

  12. Куча воды а сути голяк

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

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