PBR совместимость текстур — различия между версиями
VolgaIgor (обсуждение | вклад) (Новая страница: «Проект War Thunder был переведён на Физически Корректный Рендер (PBR) в патче 1.53. Ниже приведено…») |
VolgaIgor (обсуждение | вклад) м (Защитил PBR совместимость текстур ([Редактирование=Разрешено только администраторам] (бессрочно))) |
(нет различий)
|
Версия 15:37, 25 мая 2018
Проект War Thunder был переведён на Физически Корректный Рендер (PBR) в патче 1.53. Ниже приведено описание новых возможностей рендера, которые вы можете использовать при создании и модификации самолётных текстур.
Содержание
Альбедо текстура
Ранее известная как диффуз. Текстура альбедо это комбинация физически корректных цветов рассеянного отражения для диэлектриков и зеркального отражения для металлов. Альбедо текстура является базовой текстурой цвета поверхностей.
Свойства альбедо текстуры
При рисовании текстуры альбедо необходимо иметь ввиду 2 значения, в качестве опорных точек:
- Альбедо угля ~RGB 59 или 23% яркости в пространстве sRGB
- Альбедо чистого снега ~RGB 236 или 93% яркости
Чёрная краска примерно ложится в диапазон 50-60. Белая краска не может быть ярче белого снега.
В качестве примера можно рассмотреть значения физически правильных цветов стандарта FS 595C:
FS37038 - Интернациональный чёрный, матовая краска, со значениями RGB 55; 56; 56. Это близко к 59 FS37875 - Интернациональный белый, матовая краска, со значениями RGB 227; 229; 218. Значения не превышают 236
Цвета альбедо ниже 59 вносят вклад в Рассеянное Затенение альбедо/Карту полостей (Albedo AO/Cavity Map). Карта полостей интегрирована в альбедо и необходима для подчёркивания микро детализации поверхности.
Цвета альбедо выше 236 вносят вклад в эффект свечения.
В диапазоне альбедо 59-31 происходит плавное исчезновение блика.
В диапазоне альбедо 31-0 происходит плавное исчезновение основного затенения поверхности.
При нулевом значении альбедо поверхность будет чёрной при любых условиях освещения. Эту особенность можно использовать для рисования технологических отверстий.
Для любой окрашенной поверхности значения яркости краски не должны опускаться ниже ~12% (RGB 31) Хорошее практическое значение для чёрной краски RGB 43; 43; 44.
PBR совместимые цвета
В основном мы используем цвета стандарта Federal Standard 595C для окрашенных поверхностей. Во время перехода на новый рендер была создана библиотека физически правильных FS цветов, которые были вычислены на основе спектральных данных рассеянного отражения, при освещении образцов стандартным источником света D65, с последующим переводом цвета в нелинейное пространство sRGB. Получившаяся библиотека хорошо совпала с публично доступными цветовыми раскладками, находящимися по адресу http://www.e-paint.co.uk/chart_options.asp Цвета британского стандарта British Standard BS 381C также физически правильные. Мы рекомендуем использовать FS и BS цвета с этого сайта для работы с PBR красками. Альбедо различных материалов и поверхностей, а также оптические свойства металлов можно найти в соответствующих справочниках.
Пожалуйста, обратите внимание, что в альбедо текстуре находится цвет зеркального отражения для металлов. Это не альбедо металла. Альбедо металла почти всегда чёрное.
Практические значения зеркального отражения для различных металлов:
- Алюминий на сколах краски - ~0.5-0.6 яркости (RGB 128-153)
- Обширные некрашеные алюминиевые поверхности - ~0.6-0.96 яркости (RGB 153-250). С оттенком ~190-200 и насыщенностью ~3-4%
Коэффициент отражения алюминия зависит от степени окисленности.
Некоторые значения из игры:
- Алюминиевые поверхности F-82E усредняются к значению RGB 174; 178; 179. С пиками до 250
- Алюминиевые поверхности F-84B усредняются к значению RGB 179; 186; 187. С пиками до 220
Коэффициент отражения алюминия для видимых длин волн по справочнику равен ~0.92 в линейном пространстве. Это соответствует ~0.96 (RGB 246) в нелинейном гамма-пространстве sRGB. Если мы будем использовать только это значение для рисования поверхности, то получим неправдоподобную картинку. Значение из справочника нужно использовать с поправкой на внешнюю среду. Поверхности металлов окисляются и оптические характеристики деградируют под воздействием внешней среды.
- Хром и сталь - ~0.6 яркости (RGB 153). Нейтрального оттенка с небольшим уводом в область сине-зелёного.
- Нержавеющая сталь может быть немного темнее. ~0.5-0.6. С добавлением сине-фиолетового оттенка.
Гладкость
Новая компонента текстуры, которая описывает гладкость поверхности. Гладкость заменяет бывшую спекуляр компоненту.
Оттенки темнее = поверхность более шершавая
Оттенки светлее = поверхность более гладкая
Гладкость влияет на размер и яркость пятна блика. Чем шершавее поверхность - тем шире и тусклее блик.
Для красок (диэлектриков) рекомендованы к использованию следующие значения:
- Матовая краска - яркость ~0.2-0.4
- Полуглянцевая краска - яркость ~0.4-0.6
- Глянцевая краска - яркость > ~0.6
Свежеокрашенный самолёт (глянцевой краской) может иметь гладкость ~180-200.
Для металлов рекомендованы следующие значения:
- Хром = ~0.6
- Нерж. сталь = ~0.6
- Алюминиевые поверхности = ~0.35-0.4
Чем больше гладкость металла - тем больше он отражает.
Также часто встречающийся компонент - резина:
- Резина = ~0.25-0.3
При такой гладкости хорошее значение альбедо для запылённых покрышек - RGB 34,33,28.
Гладкость может быть получена из вашей старой спекуляр текстуры.
Металличность
Это новая текстурная компонента, описывающая металличность/проводимость поверхности. Для чистых металлических поверхностей металличность = 1.0. Для диэлектриков металличность = 0. Как правило все окрашенные поверхности являются диэлектриками. Необходимо помнить, что необработанные поверхности металлов могут окисляться. Дюралюминий легко окисляется, поэтому в нормальном состоянии металличность поверхности не может быть 1.0. Золото, хром, или нержавеющая сталь подвержены окислению гораздо меньше, поэтому их металличность может быть 1.0. У карты металличности 256 градаций (0-255). Располагается она в синем канале "_n" текстуры нормалей.
Практические значения металличности для самолётов:
- Хром - 1.0 металл (255)
- Нержавеющая сталь - 1.0 металл (255)
- Алюминиевые поверхности - 0.5 - 0.7 металл (128-178)
Модернизация текстур до PBR стандарта
При модернизации существующих текстур в формат PBR примите во внимание следующие шаги:
- Альбедо. Окрашенные поверхности не должны опускаться ниже ~17% яркости (RGB 43)
- Альбедо. Избегайте 0 черного (если это не отверстие или глубокая щель)
- Альбедо. Сделайте ярче металлические участки. Например штоки амортизаторов на диффуз текстуре как правило были черными
- Текстура нормалей. Нарисуйте карту металличности (в синем канале "_n" текстуры)
- Текстура нормалей. Увеличьте гладкость для окрашенных поверхностей (если вы делаете гладкость из спекуляра)
- Текстура нормалей. Уменьшите гладкость для металлических участков. Сделайте более шершавыми
Если вы используете наши стандартные "_n" текстуры, тогда вам нужно поправить только альбедо.
В предыдущей версии "_n" текстур синий канал нормалей (Z координата) заливался чёрным и не использовался. В новом рендере синий канал используется для металличности. Это автоматически делает "_n" текстуры прошлого поколения диэлектриками в новом рендере. Это хорошо, поскольку большинство самолётов окрашены. Все текстуры прошлого поколения будут работать в 1.53 и выглядеть приемлемо. Осталось только улучшить их, уделяя особое внимание неокрашенным самолётам.
Экспериментируйте, чтобы найти лучшие значения для различных материалов используя Asset Viewer. Для отладки текстур и внешнего вида в настройки окружения Asset Viewer была добавлена вкладка визуализации G-буфера.
В ней можно посмотреть компоненты сцены, такие как рассеянное и зеркальное отражение, базовый цвет, металличность, гладкость и другие составляющие рендера финальной сцены.
Каналы "_n" текстуры
Для художников, работающих с уже выгруженными/переставленными (ARGB->RAGB) текстурами. Порядок каналов в финальном *.dds следующий:
- R - гладкость
- G - нормаль Y
- B - металличность
- A - нормаль X
Z координата вычисляется в шейдере и является производной от X и Y.
Для художников, выгружающих текстуры в паки через Asset Viewer.
Пожалуйста используйте обычный порядок каналов:
- R - нормаль X
- G - нормаль Y
- B - металличность
- A - гладкость
Каналы будут переставлены в нужный порядок автоматически во время экспорта в паки.
Спасибо.