Ручне калібрування
Вступ
- Геометричної корекції (викривлення);
- Трансформації;
- Зведення проєкцій;
- Калібрування проєкції;
- Проєкційного мапінгу.
Ці методи реалізуються за допомогою сім’ї нод з назвою Патчі (Patches) та інших спеціалізованих нод, що описані нижче.
Варто зазначити, що до кожного патча застосовуються загальні принципи роботи з нодами. Для додаткової інформації див. Editing Patches (Редагування патчів).
Rectangle
Зазвичай нода Rectangle отримує зображення на свій вхідний порт і виводить модифіковане зображення на ноди Display або Canvas.

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


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

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

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

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



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

- Створіть полігональну сітку, увівши значення X та Y у параметрі Grid Size (Розмір комірки) на панелі Settings (Налаштування).
Типові значення для проєкції на об’єкт з горизонтальними площинами (сходинками):
- Значення X дорівнює 2 (мінімальна кількість ключових контрольних точок для сітки з одним стовпчиком). Це значення може зростати для відображення проєкції на більш складні об’єкти.
- Значення Y дорівнює загальній кількості видимих поверхонь проступів та підсходинок.
Для проєкції на сходи зі східцями у вертикальному положенні значення X та Y міняються місцями.
- В області Geometry Layout Area (Область редагування геометрії) перетягніть контрольні точки для кожної площини сітки, щоб змінити деформаційну сітку для проєктованого зображення.
- Якщо під час модифікації сітки чотирикутники набудуть трапецієподібної форми, на стику площин можуть виникнути деформаційні артефакти. Щоб цього уникнути, виберіть опцію Linear (Лінійна) для параметрів Horizontal Interpolation (Горизонтальна інтерполяція) або Vertical Interpolation (Вертикальна інтерполяція) на панелі Settings, що обмежить перспективні викривлення горизонтальних чи вертикальних площин сітки.

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

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

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

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

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

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 під’єднується до вхідного параметра нодиBlender й генерує карти змішування для зображень, модифікованих патч-нодами.


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

. Перевага використання ноди 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 під’єднується до ноди Calibrator через ноду RenderTarget.

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 отримує зображення на свій вхідний порт і виводить модифіковане зображення на ноди Display або Canvas.

Grid Size Задає кількість рядків та стовпців полігональної сітки патча.
Subdivisions Задає рівень деталізації полігональної сітки патча.
Aspect Ratio (Співвідношення сторін) Визначає співвідношення сторін зображення.
Projection (Проєкція) Дозволяє вибрати тип форми тривимірного об’єкта, на який накладається проєкція. Доступні такі типи: Planar (Плоский), Conical (Конічний)або Cylindrical (Циліндричний).
Scale (Масштабувати) Масштабує довільне зображення з його центра на заданий коефіцієнт.
Vertical Offset (Вертикальний зсув) Зміщує вертикальну позицію зображення відносно зеніту купола.
Tilt Angle (Кут нахилу) Задає кут нахилу зображення.
Rotation Angle (Кут обертання) Обертає зображення на заданий кут навколо зеніту купола.

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

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 отримує зображення на свій вхідний порт із ноди MediaPlayer (Медіаплеєр) і виводить модифіковане зображення на ноду Canvas.

- На вкладці Node Graph (Нодовий граф) створіть нодове дерево, додавши нодиMediaPlayer, LedStripesMapper та Canvas, і з’єднайте їх по черзі, натиснувши, Ctrl.
- Перейдіть на вкладку Media Player (Медіаплеєр). До списку відтворення додайте зображення, яке ви хочете переформатувати в стрічки. Почніть відтворення, щоб мати візуальний контроль під час роботи з патчем.

- Перейдіть на вкладку Canvas Editor (Редактор полотна) та виберіть LedStripesMapper у списку патчів.

- На панелі 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 пікселів).





