Ручне калібрування

Вступ

Screenberry надає широкий вибір методів для:

  • Геометричної корекції (викривлення);
  • Трансформації;
  • Зведення проєкцій;
  • Калібрування проєкції;
  • Проєкційного мапінгу.

Ці методи реалізуються за допомогою сім’ї нод з назвою Патчі (Patches) та інших спеціалізованих нод, що описані нижче.

Примітка.
Варто зазначити, що до кожного патча застосовуються загальні принципи роботи з нодами. Для додаткової інформації див. Editing Patches (Редагування патчів).

Rectangle

Нода Rectangle — це патч для планарних модифікацій на основі прямокутників. Здебільшого використовується для масштабування, вирівнювання й позиціонування зображення на прямокутних екранах (в основному LED) або для створення ефекту “картинка в картинці” за рахунок поєднання на одному екрані кількох зображень.

Зазвичай нода Rectangle отримує зображення на свій вхідний порт і виводить модифіковане зображення на ноди Display або Canvas.

Приклад нодового графа з нодою Rectangle.
Геометрію та позиціонування зображення можна модифікувати за допомогою ноди Rectangle в Patch Editor (Редактор патчів):

  • В області Geometry Layout Area (Область редагування геометрії) перетягніть контрольні точки сітки, змінюючи положення чотирьох вершин, щоб визначити масштаб, співвідношення сторін та розташування зображення.
  • В області UV Layout Area (Область редагування UV) перетягніть контрольні точки сітки, щоб змінити масштаб, співвідношення сторін та позиціонування текстури.
Під час редагування положення контрольних точок за допомогою патча Rectangle відображається додаткова біла пунктирна швидка напрямна, яка відповідає співвідношенню сторін вихідного зображення на основі його UV-координат.

QuadWarp

Нода QuadWarp — це патч, який в основному використовується для корекції геометрії зображення, яка компенсує спотворення внаслідок проєкції зображення на плоску поверхню під кутом (також відоме як трапецевидне спотворення).

Зазвичай нода QuadWarp отримує зображення на свій вхідний порт і виводить модифіковане зображення на ноди Display або Canvas.

Приклад нодового графа з нодою QuadWarp.
Модифікації геометрії та мапінгу зображення за допомогою ноди QuadWarp виконуються в Patch Editor (Редактор патчів):

  • В області Geometry Layout Area (Область редагування геометрії) перетягніть контрольні точки сітки й змініть положення чотирьох вершин, щоб виконати перспективні трансформації зображення.
  • В області UV Layout Area (Область редагування UV) перетягніть контрольні точки сітки, щоб змінити позиціонування текстури.

BezierWarp

Нода BezierWarp це патч для викривлення зображення за допомогою кривих Безьє. Він здебільшого використовується для відображення проєкції на вигнуті або частково вигнуті поверхні та інші об’єкти вільної форми.

Зазвичай нода BezierWarp отримує зображення на свій вхідний порт і виводить модифіковане зображення на ноди Display або Canvas.

Приклад нодового графа з нодою BezierPatch.
Модифікації геометрії та мапінгу зображення за допомогою ноди BezierWarp виконуються в Patch Editor (Редактор патчів):

  • В області Geometry Layout Area (Область редагування геометрії) перетягніть контрольні точки, щоб змінити сітку геометричного викривлення зображення.
  • В області UV Layout Area (Область редагування UV) перетягніть контрольні точки сітки, щоб змінити позиціонування текстури.
Зазвичай викривлення зображення за допомогою BezierWarp починається зі встановлення кутових контрольних точок сітки відповідно до геометрії проєкційної поверхні. Щільність сітки при цьому встановлюється на мінімальному значенні. Потім полігональна сітка поступово розбивається з одночасним уточненням кривизни на кожному етапі розбиття, поки не досягнуто бажане викривлення зображення.
Інший підхід до редагування сітки BezierWarp полягає у виборі режиму Interpolate Inner Points (Інтерполяція внутрішніх точок) на панелі Settings (Налаштування). . У цьому режимі координати внутрішніх контрольних точок автоматично перераховуються та адаптуються до кривої Безьє під час переміщення крайніх точок сітки патча.

QuadGrid

Нода QuadGrid — це патч, який застосовує перспективне викривлення до окремих площин визначеної користувачем сітки. Цей патч розроблений для відображення проєкції на поверхні об’єктів, які нагадують сходи.

Зазвичай нода QuadGrid отримує зображення на свій вхідний порт і виводить модифіковане зображення на ноди Display або Canvas.

Приклад нодового графа з нодою QuadGrid.
Щоб застосувати перспективне викривлення:

  1. Створіть полігональну сітку, увівши значення X та Y у параметрі Grid Size (Розмір комірки) на панелі Settings (Налаштування).

Типові значення для проєкції на об’єкт з горизонтальними площинами (сходинками):

  • Значення X дорівнює 2 (мінімальна кількість ключових контрольних точок для сітки з одним стовпчиком). Це значення може зростати для відображення проєкції на більш складні об’єкти.
  • Значення Y дорівнює загальній кількості видимих ​​поверхонь проступів та підсходинок.

Для проєкції на сходи зі східцями у вертикальному положенні значення X та Y міняються місцями.

Приклад полігональної сітки для вертикально орієнтованого об’єкта. Розмір сітки: X = 2, Y = 10.
Приклад полігональної сітки для горизонтально орієнтованого об’єкта. Розмір сітки: X = 10, Y = 2.
  1. В області Geometry Layout Area (Область редагування геометрії) перетягніть контрольні точки для кожної площини сітки, щоб змінити деформаційну сітку для проєктованого зображення.
  2. Якщо під час модифікації сітки чотирикутники набудуть трапецієподібної форми, на стику площин можуть виникнути деформаційні артефакти. Щоб цього уникнути, виберіть опцію Linear (Лінійна) для параметрів Horizontal Interpolation (Горизонтальна інтерполяція) або Vertical Interpolation (Вертикальна інтерполяція) на панелі Settings, що обмежить перспективні викривлення горизонтальних чи вертикальних площин сітки.

 

TriangleMesh

Нода TriangleMesh — це патч, який здебільшого використовується для відображення проєкції на поверхні об’єктів, що складаються з трикутників.

Зазвичай нода TriangleMesh отримує зображення на свій вхідний порт і виводить модифіковане зображення на ноди Display або Canvas.

Зазвичай нода TriangleMesh отримує зображення на свій вхідний порт і виводить модифіковане зображення на ноди Display або Canvas.
Щоб застосувати трансформації за допомогою сітки з трикутників:

  1. Створіть сітку з трикутників. Для цього:
  • Додайте контрольні точки. Розташуйте курсор над областю редагування, натисніть клавішу P або клацніть лівою кнопкою миші та виберіть пункт Add Point (Додати точку) у спадному меню.
  • Об’єднайте контрольні точки в трикутну сітку.. Виберіть контрольні точки та натисніть клавішу T або клацніть лівою кнопкою миші на виділених об’єктах та виберіть Create Triangles (Створити трикутники) у спадному меню. Якщо контрольні точки не вибрано, то натискання клавіші T з’єднає всі існуючі контрольні точки.
  • Видалити контрольні точки. Виберіть контрольні точки та натисніть клавішу Del або клацніть лівою кнопкою миші на виділених об’єктах та виберіть Delete points (Видалити точки) у спадному меню.
  1. В області Geometry Layout Area (Область редагування геометрії) перетягніть контрольні точки, щоб скоригувати полігональну сітку.
  2. В області UV Layout Area (Область редагування UV) перетягніть контрольні точки, щоб визначити позиціонування вихідного зображення для окремих трикутників сітки.

XGrid

Нода XGrid — це патч, який в основному використовується для відображення проєкції на поверхні, які складаються із сітки X-подібної форми.

Зазвичай нода XGrid отримує зображення на свій вхідний порт і виводить модифіковане зображення на ноди Display або Context.

Приклад нодового графа з нодою XGrid.
Щоб спроєктувати зображення на X-сітку:

  1. Створіть полігональну сітку, увівши значення X і Y для параметра Grid Size (Розмір комірки) на панелі Settings (Налаштування).
  2. В області Geometry Layout Area (Область редагування геометрії) перетягніть контрольні точки кожної комірки полігональної сітки, щоб змінити сітку деформації проєктованого зображення.
  3. В області UV Layout Area (Область редагування UV) перетягніть контрольні точки, щоб визначити позиціонування вихідного зображення для окремих комірок сітки.

PatchReplicator

Нода PatchReplicator — це патч, який дублює і поширює копії цільового патча відповідно до визначених користувачем правил. Зазвичай використовується для створення ефекту зображення в зображенні для поєднання на одному екрані кількох зображень.
Примітка
.
Нода PatchReplicator може приймати вхідний сигнал зображення тільки з патч-нод.
Приклад нодового графа з нодою PatchReplicator.

Доступні три типи реплікації: Rectangular Array (Прямокутний масив), Radial Array (Радіальний масив) і Mirror (Віддзеркалення). Їх можна обрати в параметрі Type (Тип) на панелі Settings (Налаштування) патча PatchesArray. Кожен тип має індивідуальні налаштування.

Реплікація прямокутного масиву

Використовуючи цей вид реплікації, можна задати певну кількість копій та їхнє зміщення вздовж осей X та / або Y.

Після вибору Rectangular Array у панелі Settings відкриваються такі параметри реплікації:

  • Значення X Count (Кількість по X) та Y Count (Кількість по Y), які визначають кількість копій, які потрібно створити вздовж осей X та Y.
  • Значення X Offset (Зсув по X) та Y Offset (Зсув по Y), які визначають зміщення між копіями відносно всієї ширини та висоти області відображення.

 

Реплікація радіального масиву

За допомогою Radial Arrayможна задати кількість копій та їх розміщення по колу відносно центра вихідного полотна (Сanvas). Найбільш характерним використанням цього типу реплікації є розміщення копій одного зображення радіально навколо зеніту купола.

Коли обрано тип Radial Array, на панелі Settings (Налаштування) з’являються такі параметри реплікації:

  • Параметр Count (Кількість) визначає кількість копій, які будуть створені.
  • Параметр Angle (Кут) визначає кут обертання.
  • Опції Offset Mode (Режими зсуву) визначають, як розміщуються копії. Якщо обрано режим Between (Кут між копіями), то кут між кожною створеною копією буде дорівнювати периметру Angle. Якщо обрати Total (Загальний кут), то копії розподіляться з рівними кутами в межах кута, заданого параметром Angle.
  • Опція Keep Aspect Ratio (Зберегти пропорції) вказує, чи зберігати пропорції створених копій.

Дзеркальна реплікація

За допомогою дзеркального відображення можна створити дзеркальну копію зображення по осях X або Y.

Коли вибрано тип реплікації Mirror (Віддзеркалення), для параметра Direction (Напрямок) виберіть опцію Horizontal (Горизонтально) або Vertical (Вертикально), щоб вибрати напрямок віддзеркалення.

SoftEdgeBlender

Нода SoftEdgeBlender забезпечує контроль за об’єднанням двох або більшої кількості проєктованих зображень в єдине безшовне зображення.

Нода SoftEdgeBlender під’єднується до вхідного параметра нодиBlender й генерує карти змішування для зображень, модифікованих патч-нодами.

Приклад нодового графа з нодою SoftEdgeBlender .
Панель Settings (Налаштування) ноди SoftEdgeBlender надає такі елементи управління зведенням проєкцій:
BlendMaps Size (Розмір карт перекриття) Встановлює розміри карт перекриття в пікселях.

Generation Method (Метод генерації) Дозволяє вибрати один з методів генерації карт перекриття: Linear Distance (Лінійна відстань) чи Gravity Function (Гравітаційна функція).

Horizontal Overlap (Горизонтальне перекриття) Вибирається, якщо зображення перекриваються горизонтально.

Vertical Overlap (Вертикальне перекриття) Вибирається, якщо зображення перекриваються вертикально.

Gravity Falloff (Гравітаційне затухання) Визначає параметр алгоритму виявлення країв на основі гравітаційної функції для генерації карт перекриття. Цей параметр активується, якщо обрано метод генерації карт перекриття на основі Gravity Function (Гравітаційна функція).

Quadratic Easing (Квадратичне пом’якшення) Вказує, що необхідно застосовувати функцію квадратичного пом’якшення для області перекриття зображень.

Blur radius (Радіус розмиття) Визначає радіус розмиття для карт перекриття.

Gamma (Гамма) Задає значення інверсійного розподілу гамми для карт перекриття.

Build Blend Maps (Побудувати карти перекриття) Генерує нові карти перекриття після натиску кнопки Build Blend Maps.

Disable Blending (Вимкнути карти перекриття) Скидає поточні карти перекриття.

Примітка
.
Нові карти перекриття потрібно генерувати щоразу, натискаючи кнопку Build Blend Maps, коли змінюються налаштування ноди SoftEdgeBlender або коли змінюється геометрія в патч-нодах, під’єднаних до ноди SoftEdgeBlender.

Transform2D

Нода Transform2D дозволяє застосовувати до патчів статичні або динамічні трансформації постобробки. Зазвичай вона використовується для розміщення, переміщення, масштабування та обертання патчів і створення численних варіантів ефекту картинка в картинці.

Нода Transform з’єднується з вхідним параметром Transform Matrix цільової патч-ноди.

Приклад нодового графа з нодою Transform.
Примітка
. Перевага використання ноди Transform2D полягає в тому, що вона дозволяє застосовувати перетворення до вихідного зображення, зберігаючи налаштування і геометрію цільової патч-ноди.
Панель Settings (Налаштування) ноди Transform2D надає контроль над такими параметрами перетворення:

Translate (Перенести) Переміщує патч по горизонталі (X) та / або вертикалі (Y) на задане значення.

Rotate (Обернути) Обертає патч навколо його центра на заданий кут.

Scale (Масштабувати) Масштабує патч з його центра на заданий коефіцієнт.

Transform Order (Порядок трансформації) Виберіть порядок, у якому здійснюються перетворення, наприклад, Scale, Rotate, Translate.

Flip V (Віддзеркалити вертикально) Віддзеркалює патч вертикально.

Flip V (Віддзеркалити вертикально) Віддзеркалює патч вертикально.

Aspect Ratio (Співвідношення сторін) Змінює співвідношення сторін патча горизонтально на заданий коефіцієнт.

Translation Speed (Швидкість переміщення) Задає швидкість безперервного горизонтального (X) або вертикального (Y) переміщення патча.

Scaling Speed (Швидкість масштабування) Задає швидкість масштабування патча щодо його центра.

Rotation Speed (Швидкість обертання) Задає швидкість безперервного обертання патча навколо його центра за заданим коефіцієнтом.

Reset to Default(Повернути початкові параметри) Скидає всі перетворення, застосовані до патча нодою Transform2D.

DomeTransform

Нода DomeTransform — це патч, який дозволяє додатково коригувати геометрію зображення купольної проєкції після автоматичного калібрування. Зазвичай цей патч використовується для компенсації положення, орієнтації та викривлення об’єктива калібрувальної камери. Зазвичай цей патч використовується для компенсації положення, орієнтації та викривлення об’єктива калібрувальної камери.

Зазвичай нода DomeTransform під’єднується до ноди Calibrator через ноду RenderTarget.

Приклад нодового графа з нодою DomeTransform.
Коли додається нода DomeTransform, то в списку віджетів з’являється DomeTransform Controls (Елементи управління DomeTransform).
Панель Settings (Налаштування) ноди DomeTransform
Віджет DomeTransform Controls
Панель Settings (Налаштування) ноди DomeTransform і віджет DomeTransform Controls надають контроль над такими параметрами перетворення:

Grid Size (Розмір сітки) Встановлює кількість рядків та стовпців полігональної сітки. Subdivisions (Розбиття сітки) Встановлює рівень деталізації полігональної сітки.

Subdivisions (Розбиття сітки) Встановлює рівень деталізації полігональної сітки.

Rotation Angle (Кут обертання) Задає кут обертання зображення.

Flip V (Віддзеркалити вертикально) Віддзеркалює зображення вертикально.

FOV (Поле зору) Змінює кут поля зору на заданий коефіцієнт.

Lens Distortion (Спотворення об’єктива) Компенсує спотворення об’єктива калібрувальної камери. Значення параметра визначає функцію відображення об’єктива: Equidistant (Еквідистантна) для значення 0, Equisolid angle (Азимутальна) для значень, близьких до 0.5 (1/k2 value), та Orthographic (Ортографічна) для значення 1
.
Більш детально читайте тут: https://uk.wikipedia.org/wiki/%D0%A0%D0%B8%D0%B1%27%D1%8F%D1%87%D0%B5_%D0%BE%D0%BA%D0%BE .

Tilt Angle (Кут нахилу) Компенсує кут нахилу калібрувальної камери.

Offset X (Зсув по осі X) Компенсує зсув калібрувальної камери по горизонталі.

Offset Y (Зсув по осі Y) Компенсує зсув калібрувальної камери по вертикалі.

Offset Z(Зсув по зеніту) Компенсує положення калібрувальної камери ближче або далі від зеніту купола.

PlanarToDome

Нода PlanarToDome — це патч, який дозволяє відтворювати плоске зображення на поверхні купола. В основному використовується для досягнення ефекту картинка в картинці для поєднання на купольному екрані плоского та купольного контенту. В основному використовується для досягнення ефекту картинка в картинці для поєднання на купольному екрані плоского та купольного контенту.

У типових налаштуваннях нода PlanarToDome отримує зображення на свій вхідний порт і виводить модифіковане зображення на ноди Display або Canvas.

Приклад нодового графа з нодою PlanarToDome.
Панель Settings (Налаштування) ноди PlanarToDome надає такі параметри для корекції геометрії:

Grid Size Задає кількість рядків та стовпців полігональної сітки патча.

Subdivisions Задає рівень деталізації полігональної сітки патча.

Aspect Ratio (Співвідношення сторін) Визначає співвідношення сторін зображення.

Projection (Проєкція) Дозволяє вибрати тип форми тривимірного об’єкта, на який накладається проєкція. Доступні такі типи: Planar (Плоский), Conical (Конічний)або Cylindrical (Циліндричний).

Scale (Масштабувати) Масштабує довільне зображення з його центра на заданий коефіцієнт.

Vertical Offset (Вертикальний зсув) Зміщує вертикальну позицію зображення відносно зеніту купола.

Tilt Angle (Кут нахилу) Задає кут нахилу зображення.

Rotation Angle (Кут обертання) Обертає зображення на заданий кут навколо зеніту купола.

LatLongToDome

Нода LatLongToDomeце патч, який дозволяє відтворювати зображення у форматі VR 360° на віртуальній сфері, а також пропонує інструменти для його відображення на поверхні купола.

У типових налаштуваннях нода LatLongToDome отримує зображення на свій вхідний порт і виводить модифіковане зображення на ноди Display або Canvas.

Приклад нодового графа з нодою LatLongToDome.
Панель Settings (Налаштування) ноди LatLongToDome надає такі параметри для коригування геометрії та управління відтворенням зображення:

Initial Orientation (Початкова орієнтація) Дозволяє визначити орієнтацію за замовчуванням, яка застосовується після перезавантаження патча або сервераЗначення X і Y задають кути обертання довготи та широти. Значення Y має граничні значення 90° та -90°, що відповідають зеніту та надиру віртуальної сфери.

Current Orientation (Поточна орієнтація) Дозволяє редагувати поточну позицію зображення. Значення X і Y задають кути обертання довготи та широти. Щоб редагувати параметр, виберіть опцію Manual Position (Визначити позицію вручну) для параметра Position Input (Ввести позицію).

Rotation Speed (Швидкість обертання) Задає кут кроку безперервного обертання зображення вздовж осей X чи Y. Цей параметр вимкнений за замовчуванням. Щоб його редагувати, оберіть Rotation Speed для параметра Position Input.

Speed Multiplier (Множник швидкості) Множник розміру кроку кута обертання, що визначає рівень чутливості. Застосовується, коли обертання контролюється зовнішніми параметрами введення.

Lat. Segments (Кількість сегментів широти) (Кількість сегментів широти) Задає кількість сегментів широти віртуальної сфери.

Long. Segments (Кількість сегментів довготи) Задає кількість сегментів довготи віртуальної сфери.

Camera Offset Z (Зсув камери по Z) Задає вертикальну позицію віртуальної камери щодо зеніту купола.

Position Input (Уведення позиції) Дозволяє обирати тип контролю орієнтації зображення. Для ручного введення виберіть Manual Position (Ручне позиціонування). Якщо орієнтація зображення контролюється зовнішніми параметрами введення, виберіть опцію Rotation Speed (Швидкість обертання).

Camera FOV (Поле зору камери) Задає кут поля зору об’єктива “риб’яче око” для зображення.

Visible FOV (Видиме поле зору) Задає кут маскування для поля зору об’єктива “риб’яче око”.

Примітка.
Коли значення кута поля зору об’єктива “риб’яче око” наближається до 360°, на краях зображення можуть з’являтися артефакти. Щоб цього уникнути, використовуйте маску для обмеження видимої частини зображення.

LedStripesMapper

Нода LedStripesMapper — це патч, який уможливлює ремапінг зображення на стрічках. Зазвичай його використовують для виведення сигналу на контролер світлодіодних стрічок.. Патч також може використовуватися для управління освітлювальними пристроями, які можуть приймати відео на вхід.

Зазвичай нода LedStripesMapper отримує зображення на свій вхідний порт із ноди MediaPlayer (Медіаплеєр) і виводить модифіковане зображення на ноду Canvas.

Приклад нодового графа із нодою LedStripesMapper.
Щоб виконати ремапінг зображення, зробіть такі кроки:

  1. На вкладці Node Graph (Нодовий граф) створіть нодове дерево, додавши нодиMediaPlayer, LedStripesMapper та Canvas, і з’єднайте їх по черзі, натиснувши, Ctrl.
  2. Перейдіть на вкладку Media Player (Медіаплеєр). До списку відтворення додайте зображення, яке ви хочете переформатувати в стрічки. Почніть відтворення, щоб мати візуальний контроль під час роботи з патчем.
  1. Перейдіть на вкладку Canvas Editor (Редактор полотна) та виберіть LedStripesMapper у списку патчів.
  1. На панелі Settings (Налаштування) ноди LinesPatch:
  • У параметрі Source Line Width (Ширина стрічки вхідного зображення) вкажіть у пікселях ширину зображення, яке потрібно переформатувати в стрічки.
  • Укажіть значення параметрів Target Image Size (Розмір цільового зображення), Offset X та Y (Зсув по X та Y), Line Width (Довжина стрічки вихідного зображення) та Spacing (Проміжок). Детальну інформацію про формат міститься в інструкції до LED-стрічки або контролера освітлення.
  • Укажіть значення для параметра Number of Polylines (Кількість поліліній), а для кожної полілінії введіть кількість Segments (Сегменти) та Total Length (Загальна довжина) у пікселях (наприклад, у вас є полілінія з 5 секціями, кожна полілінія — 128 пікселів, тоді загальна довжина становить 5 х 128 = 640 пікселів).
В області UV Layout Area (Область редагування UV) натисніть клавішу F5, щоб завантажити ескіз вихідного зображення, а потім зіставте полілінії по черзі, перетягуючи контрольні точки на кінцеві точки полілінії.