Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Вопрос о PBR, использующийся в некоторых демонстрациях возможностей дв
#2
Разница не в том, металлический объект или нет. Эти две модели по сути одно и то же, просто они выносят в текстуры разные компоненты формулы освещенности. Насколько я понимаю, модель metallic+roughness придумана для того, чтобы соблюдался закон сохранения энергии (diffuse + specular < 1.0), то есть, грубо говоря,

Код:
[== Неизвестный ==]
specular = baseColor * metallic
diffuse = baseColor * (1 - metallic)

Roughness же - это просто 1-gloss.

Я сторонник metallic+roughness модели, во всех своих шейдерах использую ее) Если хранить сразу specular и diffuse, то есть вероятность, что получится "нефизичная" комбинация, где совокупная отраженная энергия больше падающей, а это уже не PBR Wink. Для сохранения энергии нужно делать дополнительные телодвижения: текстуры должны быть взаимосвязанными - чем больше gloss, тем ярче specular (и, соответственно, тусклее diffuse). У metallic+roughness такой связи между текстурами нет, что довольно удобно.

Также разница в экономии по весу:

Specular+gloss - 24-bit (diffuse) + 24-bit (specular) + 8-bit (gloss)
Metallic+roughness - 24-bit (baseColor) + 8-bit (metallic) + 8-bit (roughness)

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

В общем случае, если текстуры создавались под рендер specular+gloss, то их уже не сконвертировать в metallic+roughness, и нужно переписывать рендер. А вот обратный процесс возможен.
Ответ


Сообщения в этой теме

Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)