Автоматическое построение PBR текстур для фотограмметрических моделей
3D-модели в играх и фильмах выглядят гораздо реалистичнее, если на них наложены детализированные текстуры и если на них правдоподобно воздействует освещение. Реалистичность текстур часто достигается получением 3D-моделей путём фотографирования объекта с большого числа ракурсов и дальнейшей обработки средствами фотограмметрии. Но для того, чтобы поверхность объекта реалистично реагировала на освещение и, особенно, на перемещение источника света, недостаточно знать детализированные цвета поверхности. Нужно также знать, как именно разные части поверхности реагируют на свет и его перемещение:
- где блик будет ярким (глянцевая поверхность), а где блика не будет вовсе (например, какой-нибудь сухой мох)?
- где блик будет большим, а где — маленьким пятнышком?
- где игра света обнаружит трещину, а где — идеально отполированную поверхность?
Для реалистичного описания взаимодействия поверхности и света часто используют Physically-Based Rendering (PBR). Этот подход позволяет передать ощущение металличности, мокрости, глянцевости и рыхлости поверхности.
На лекции обсудим программу, разработанную в рамках летней стажировки. В рамках проекта был разработан метод, строящий правдоподобные и детальные PBR-текстуры (albedo map, normal map, roughness map, metallic map) методом математической оптимизации. Обсудим также, как этот алгоритм был ускорен на видеокартах.
Предполагается, что слушателям:
- интересна компьютерная графика;
- понятно, что такое градиентный спуск;
- не страшны рассуждения с частым упоминанием векторного произведения.
