Наглядная ситуация: после применения дисторсии на рендер его границы предательски лезут в кадр.
Без паники!
Для решения проблемы потребуются:
композер джун обыкновенный - одна штука;
продукт компании The Foundry - «Nuke»;
несколько минут для прочтения данной статьи.
За данность примем наличие трекнутой камеры и модели дисторсии линзы. Разрешение исходника 3840 х 2160. Начинаем!
В Нюке к отснятому материалу
применяем андисторт - bounding box(пунктирная линия по периметру) картинки увеличится.
В левом нижнем и правом верхнем можем увидеть цифры, описывающие увеличение ббокса картинки
-248 - значение по х
-141 - значение по у
4088 - значение по х
2301 - значение по у
Далее добавляем ноду Reformat, ставим ей тип ресайза(resize type) на none и в поле разрешения вписываем размер ббокса (сумма по горизонтали Х и вертикали Y, все значения приводим к абсолютным значениям). Сложение можно прописывать непосредственно в поле ввода, ставя знак «+».
У нас получилось новое разрешение 4336 х 2442.
Затем разделим его на старое - получим коэффициент увеличения кадра по горизонтали и вертикали.
4336 х 2442 - новое разрешение.
3840 х 2160 - старое разрешение.
4336/3840 = 1,13 - горизонтальный коэффициент.
2442/2160 = 1,13 - вертикальный коэффициент.
На эти коэффициенты(у горизонтали и вертикали они могут отличаться) умножаем соответсвенно размеры матрицы камеры - так мы получим немного расширенный FOV, так и надо. Вот исходные данные нашей условно трекнутой камеры:
Горизонтальный размер - 24,576
Вертикальный размер - 18,672
24,576 * 1,13 = 27,77 - новый горизонтальный размер матрицы.
18,672 * 1,13 = 21,1 - новый вертикальный размер матрицы.
Далее выбор за вами:
забить новые значения размеров матрицы в камеру и передать ее 3д отделу;
передать камеру как было и попросить 3д отдел самим у себя вписать новые размеры матрицы(ориентируйтесь на слова filmback size или sensor size).
Выводим сиквенцию с андистортом и новым форматом для 3д отдела для подстановки на бэк.
В синеме я накидал вот такую простую сцену:
Расположил четыре сферы на пересечениях линий для более наглядного примера. Заменил старый размер матрицы на новый 27,77:
Как только получили отрендеренную сиквенцию
применяем к ней обратный алгоритм:
Реформатим к старому разрешению. Используем ноду Reformat, режим none, галочку напротив preserve bounding box, разрешение ставим старое - кадр кропится к исходному формату с появлением увеличенного ббокса
Применяем дисторсию
Вуаля! Рендер корректно наложился с дисторсией съемочной линзы на исходный материал без обрезанных краев!