Вы не вошли.
И снова здравствуйте) В некоторых технических демках использовался револьвер Cerberus, к которому был применён PBR, и код для PBR из которого я и захотел взять для своей игры. Только вот там объект металлический, что значит, что он для PBR использует текстуры metallic и roughness, для людей же используется текстуры specular и gloss. Может кто-нибудь либо подсказать, как поменять эти два параметра в шейдере, либо либо подсказать, в каком демо используется PBR с неметаллическими предметами, пожалуйста?
Главный разработчик и дизайнер студии obsessed team. Группа студии - https://vk.com/TeamObsession
Offline
Разница не в том, металлический объект или нет. Эти две модели по сути одно и то же, просто они выносят в текстуры разные компоненты формулы освещенности. Насколько я понимаю, модель metallic+roughness придумана для того, чтобы соблюдался закон сохранения энергии (diffuse + specular < 1.0), то есть, грубо говоря,
specular = baseColor * metallic
diffuse = baseColor * (1 - metallic)
Roughness же - это просто 1-gloss.
Я сторонник metallic+roughness модели, во всех своих шейдерах использую ее) Если хранить сразу specular и diffuse, то есть вероятность, что получится "нефизичная" комбинация, где совокупная отраженная энергия больше падающей, а это уже не PBR . Для сохранения энергии нужно делать дополнительные телодвижения: текстуры должны быть взаимосвязанными - чем больше 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, и нужно переписывать рендер. А вот обратный процесс возможен.
Offline
Спасибо, за код! А также учту всё вышенаписанное при создании и импортировании в движок модели)
Редактировался Проклятый Порох (2023-05-01 08:41:18)
Главный разработчик и дизайнер студии obsessed team. Группа студии - https://vk.com/TeamObsession
Offline