This page has been translated automatically.
Видеоуроки
Interface
Essentials
Advanced
Подсказки и советы
Основы
Программирование на C#
Рендеринг
Принципы работы
Свойства (properties)
Компонентная Система
Рендер
Физика
Редактор UnigineEditor
Обзор интерфейса
Работа с ассетами
Настройки и предпочтения
Работа с проектами
Настройка параметров ноды
Setting Up Materials
Настройка свойств
Освещение
Landscape Tool
Sandworm
Использование инструментов редактора для конкретных задач
Extending Editor Functionality
Встроенные объекты
Ноды (Nodes)
Объекты (Objects)
Эффекты
Декали
Источники света
Geodetics
World Nodes
Звуковые объекты
Объекты поиска пути
Players
Программирование
Основы
Настройка среды разработки
Примеры использования
C++
C#
UnigineScript
Унифицированный язык шейдеров UUSL
Плагины
File Formats
Rebuilding the Engine Tools
GUI
Двойная точность координат
API
Containers
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Objects-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
IG Plugin
CIGIConnector Plugin
Rendering-Related Classes
Работа с контентом
Оптимизация контента
Материалы
Material Nodes Library
Miscellaneous
Input
Math
Matrix
Textures
Art Samples
Tutorials
Внимание! Эта версия документация УСТАРЕЛА, поскольку относится к более ранней версии SDK! Пожалуйста, переключитесь на самую актуальную документацию для последней версии SDK.
Внимание! Эта версия документации описывает устаревшую версию SDK, которая больше не поддерживается! Пожалуйста, обновитесь до последней версии SDK.

Проекции с плагином AppProjection

AppProjection позволяет создавать многопроекторные конфигурации. Поддерживаются компенсация пересвечивания на границах проекций, нелинейная коррекция изображения для криволинейных экранов и цветокоррекция для каждой проекции. Следовательно, AppProjection может при необходимости проецировать изображения на большие изогнутые экраны, охватывающие 360 градусов. Более того, каждую проекцию можно полностью настроить для использования необходимой пирамиды видимости.

Примечание
Этот плагин нельзя использовать в приложении на основе Qt.

Projection setup

Настройка проекции

AppProjection

Настраиваемая проекция с AppProjection

Смотрите также#

Запуск AppProjection#

Чтобы запустить приложение и визуализировать проекции:

  1. Укажите библиотеку плагинов движка (lib/AppProjection_*) вместе с остальными необходимыми аргументы при запуске (например, API рендеринга, размер окна и т. д.). Например:

    Shell-команды
    main_x64.exe -extern_plugin AppProjection

    Вы можете использовать 64-битную отладочную или релизную версию библиотеки. (Движок автоматически загружает соответствующую версию библиотеки в зависимости от указанного основного приложения.)

    Примечание

    Невозможно использовать AppProjection с:

  2. Чтобы изменить количество дисплеев в строке, укажите опцию командной строки -width. Например:

    Shell-команды
    main_x64.exe -extern_plugin AppProjection -width 2

    По умолчанию с одного узла рендеринга поддерживается вывод до проекций 8.

AppProjection with two projections

AppProjection с двумя проекциями

Настройка проекций#

Чтобы настроить проекции, откройте системное меню, нажав Esc, перейдите на вкладку Plugins и нажмите кнопку Projection.

Откроется окно Projection Configurator. Это окно позволяет:

Сначала необходимо выбрать проекцию (Projection) для настройки в правом верхнем углу.

Коррекция геометрии#

Вкладка Warp позволяет вам настроить коррекцию геометрии для ваших проекций. Области, где требуется коррекция геометрии, включают:

  • Расширенная внеосевая коррекция, когда проектор размещается неудобно и требует расширенного сопоставления функции трапецеидального искажения в проекторе
  • Криволинейные (неплоские) экраны, такие как изогнутые экраны и полусферические купола.
  • Проецирование одного изображения с одного проектора на несколько поверхностей
  • Необычные проекционные приложения на специально разработанные экраны

Interface

Интерфейс

Коррекция геометрии выполняется путем изменения отображаемой сетки. Доступны следующие варианты:

Projection Выберите проекцию в раскрывающемся списке, чтобы настроить ее параметры. Вы также можете использовать кнопки Page Up и Page Down для переключения между проекциями.
Multiplier Шаг смещения в пикселях, который будет использоваться при перемещении точек с помощью клавиш со стрелками. Используйте + для увеличения значения или - для его уменьшения.
Resolution

Количество контрольных точек по горизонтальной и вертикальной осям сетки. По умолчанию используется сетка 2 x 2.

Примечание
Максимальный размер сетки 32 x 32.
Points

Визуальный редактор позволяет настроить деформацию для выбранной проекции с помощью контрольных точек и желтых маркеров. Эти маркеры отображаются для каждой выбранной контрольной точки в зависимости от ее типа .

Вы можете выбирать контрольные точки щелчком мыши, а также переключаться между ними с помощью клавиш со стрелками.

Множественный выбор с помощью мыши выполняется также, как обычно выбираются несколько объектов; чтобы добавить или удалить точки из выбранной группы, щелкните по ним, удерживая клавишу Ctrl. Множественный выбор с помощью клавиатуры возможен в виде цепочки с помощью клавиш со стрелками при нажатой клавише Shift.

Комбинации Ctrl + Z / Ctrl + Y используются для действий Undo / Redo. Shift + Ctrl + Z отменяет все преобразования.

Примечание
Точки всегда перемещаются в координатах экранного пространства независимо от ориентации изображения (независимо от того, перевернуто оно или нет), это означает, что если вы нажимаете стрелку влево, точка всегда перемещается влево.
  • Перетащите контрольные точки и их желтые маркеры, чтобы деформировать проекцию и настроить ее в соответствии с требуемой конфигурацией. Вы также можете перемещать точки с помощью клавиш со стрелками при нажатой клавише Ctrl.

    Ниже представлен пример деформированной сетки и соответствующее изображение проекции.

    Warped grid

    Деформированная сетка

    Warped image

    Искаженное изображение
  • Вы можете точно настроить деформацию проекции, настроив параметры каждой контрольной точки, выбрав ее и изменив параметры на панели рядом с настройками разрешения сетки:

    Доступны следующие параметры:

    • Point - горизонтальный и вертикальный индексы выбранной контрольной точки. Нумерация начинается с левого нижнего угла.
    • Position - координаты выбранной контрольной точки по осям X и Y.

      Coordinates for points and handles

      Координаты контрольных точек
    • Type - тип искажения для выбранной контрольной точки:

      • - автоматическая линейная интерполяция (управляющие элементы отсутствуют)
      • - симметричные элементы управления для плавных кривых
      • - асимметричные элементы управления (вы можете управлять каждым элементом независимо)
      • - автоматическая плавная кривая (элементы управления отсутствуют)

Саму сетку также можно перемещать внутри области просмотра:

  • Средняя кнопка мыши для панорамирования (перетаскивание сетки по вертикали или горизонтали)
  • Прокрутка мышью для увеличения и уменьшения масштаба
  • , чтобы отменить все действия панорамирования и масштабирования и подогнать сетку под размер окна.
Canvas

Настройте канву для выбранной проекции: установите угол поворота и включите вертикальное и горизонтальное отражение.

Коррекция цвета и яркости#

Вкладка Color позволяет корректировать интенсивность цвета, а также настраивать цветовой баланс для выбранной проекции.

Brightness

Поканальный множитель цвета для управления интенсивностью:

  • Red
  • Green
  • Blue
  • RGB одновременно

Red channel scale

Яркость для красного канала = 2
Contrast

Настройки, позволяющие настроить цветовой баланс для каждого канала (а также для всех каналов сразу):

  • Положительные значения добавляются к значениям цвета на экране.
  • Отрицательные значения вычитаются из значений цвета на экране.

Red channel bias

Контраст для красного канала = -0,1
Brightness (corners) Настройки для индивидуальной настройки компенсации яркости для каждого угла проекции.
Примечание
Все параметры цвета можно сбросить до значений по умолчанию, щелкнув соответствующее имя параметра (по строке или столбцу для набора параметров Color Balance и индивидуально для каждого угла).

Наложение#

Вкладка Blend позволяет настроить наложение в выбранной области и по краям.

Screen-Space Blending

Управляет наложением в выбранной области. Область наложения экранного пространства не подвержена деформации.

Чтобы выбрать область, щелкните Add, чтобы начать создание области наложения, и в сетке щелкните, чтобы определить одну сторону области, затем щелкните, чтобы определить другую сторону - появится зеленая линия. Третий щелчок показывает направление наложения.

Область наложения экранного пространства разделена на две части: часть между синей и зеленой линиями является сплошной черной областью, а часть между зеленой и красной линиями является областью градиента.

По умолчанию каждая из этих линий имеет две точки, обозначающие границы линии. Используя разрешение , вы можете увеличить количество точек вдоль каждой линии, чтобы отрегулировать его по мере необходимости, перемещая точки. Доступен множественный выбор точек.

Каждая область наложения регулируется с использованием следующих параметров:

  • Enabled - если включено, разрешает использование области наложения, выбранной из списка.
  • Link to Projection - если включено, позволяет настроить Alpha, Contrast и Gamma для двух блендов одновременно для лучшего согласования соседних проекций. Выберите проекцию и область наложения из раскрывающихся списков и настройте необходимые параметры.
  • Name - окно для изменения имени области наложения.
  • Alpha - прозрачность всей области наложения.
  • Contrast - контраст градиентной части области наложения.
  • Gamma - значение гамма-коррекции.

Определение области наложения в экранном пространстве

Область наложения
Warped Edge Blending

Управляет плавным переходом краев для каждой стороны проекции (левой, правой, верхней и нижней). Если вы деформируете изображение, наложение границ тоже искажается.

  • Size контролирует размер области наложения:

    • 0 - наложения нет.
    • 0.5 - наложение размером в половину экрана.
  • Alpha контролирует прозрачность области наложения:

    • 0 - область наложения непрозрачна.
    • 1 - область наложения полностью прозрачна.
  • Contrast определяет контраст области наложения и делает переход от самой темной к самой светлой области нелинейным.
  • Gamma - значение гамма-коррекции.

    Gamma = 0.5
    Gamma = 5
Примечание
Значения границ можно сбросить, щелкнув соответствующий столбец или имя строки.

Использование масок#

Вкладка Mask позволяет с помощью масок вырезать определенные области выбранной проекции.

Чтобы создать маску , щелкните Add и убедитесь, что кнопка Creation Mode включена. Затем создайте не менее трех точек на сетке, щелкнув в нужном месте. Соответствующая область проекции будет вырезана. Список масок для текущей проекции отображается под сеткой. Вы можете добавлять новые маски и удалять существующие с помощью соответствующих кнопок.

Чтобы добавить новые точки к маске, выбранной в списке, убедитесь, что кнопка Creation Mode включена. Затем вы можете добавить новые точки, щелкнув в области сетки. Чтобы вставить новую точку в существующую маску, выберите точку, рядом с которой должна быть добавлена новая точка, и щелкните, чтобы вставить новую. Вы можете перетащить существующую точку, чтобы переместить ее. Чтобы удалить точку , щелкните ее правой кнопкой мыши.

Вы также можете точно настроить маски , указав координаты каждой точки. Выберите точку на сетке (ее цвет станет зеленым) и введите координаты в поля Position ниже.

Вы можете изменить тип выбранной контрольной точки, используя следующие значки:

  • - автоматическая линейная интерполяция (управляющие элементы отсутствуют)
  • - симметричные элементы управления для плавных кривых
  • - асимметричные элементы управления (вы можете управлять каждым элементом независимо)
  • - автоматическая плавная кривая (элементы управления отсутствуют)

При выборе маски в списке ее параметры отображаются на панели рядом с ней:

  • Enabled - включает или отключает отображение выбранной маски. Может использоваться для удобства при настройке перекрывающихся областей, когда много масок.
  • Name - название маски, редактируется.
  • Smooth - сглаживание (скругление) краев маски.

Визуализация#

Блок настроек Render расположен внизу окна Projection Configurator. Эти настройки предназначены для облегчения точной настройки проекции за счет отображения вспомогательных элементов на реальной проекции.

  • Параметр Debug Color позволяет временно установить отдельные цвета для разных проекций. Это помогает визуализировать перекрывающиеся области.
  • Show Grid - отображать сетку на проекции.
  • Warp Points - отображать точки и вспомогательные красные линии, идущие от выбранной точки или точек к центру каждой стороны.
  • Blend Lines - отображать линии смешения экранного пространства и вспомогательные фиолетовые линии, идущие от выбранной точки или точек к центру каждой стороны.

Настройки просмотра нескольких проекций#

Если с помощью AppProjection создано более двух проекций, следующие параметры просмотра могут быть изменены в файле System menu -> Plugins.

FOV

Угол обзора для всех проекций (в этом случае опция камеры Field of View игнорируется).

Small Field of view

FOV = 60

Large Field of view

FOV = 80
Angle

Позволяет регулировать угол обзора между проекциями: когда проекционные поверхности повернуты под некоторым углом друг к другу, этот угол можно ввести как значение Angle, и проекция автоматически пересчитывается для отображения правильного изображения.

Например, если две поверхности повернуты друг к другу на 40 градусов:

Angle

Угол = 40 градусов
Bezel X Компенсирует горизонтальную лицевую панель мониторов. Положительные значения уменьшают пространство области просмотра; отрицательные увеличивают его (на перекрытие).
Bezel Y Компенсирует вертикальную лицевую панель мониторов. Положительные значения уменьшают пространство области просмотра; отрицательные увеличивают его (на перекрытие).

Сохранение и загрузка предустановок#

После того, как конфигурация проекции настроена, ее можно сохранить в файл настроек (*.proj) для загрузки в любое время (например, для настройки другой проекции):

  • Save кнопка для сохранения файла с пресетами
  • Load кнопка для загрузки файла с пресетами
Примечание
  • Сохраняемый файл *.proj содержит настройки только для текущей выбранной проекции.
  • Настройки, загруженные из файла *.proj, применяются к текущей выбранной проекции.

Настройка AppProjection#

AppProjection можно настроить для поддержки пользовательских пирамид видимости (симметричных или асимметричных) для каждой проекции.

Окна просмотра AppProjection#

AppProjection имеет одно основное окно просмотра, в то время как все остальные окна просмотра отображаются как вспомогательные . По умолчанию основным дисплеем является окно просмотра движка UNIGINE, используемое для конфигурации с одним монитором. Он использует матрицы Player, используемые движком для просмотра сцены. Другие дисплеи представляют собой произвольные камеры с любой перспективой и смотрящими в любом направлении. Каждый дисплей имеет свои собственные матрицы вида и проекции. При необходимости можно включить или выключить как первичный, так и дополнительный проецирования.

  • Основное окно просмотра может быть настроено на любую проекцию (для поддерживаемых конфигураций она уже настроена).
  • Каждое окно просмотра имеет свои собственные матрицы вида и проекции.
  • По умолчанию только основной имеет графический пользовательский интерфейс (графический интерфейс системы рендеринга, виджеты редактора, каркас или профилировщик). Однако на всех проекциях можно рисовать отдельные графические интерфейсы.
  • У всех вьюпортов есть свои Viewport и Reflection маски для выборочной визуализации узлов и отражений от них.

Конфигурации по умолчанию#

Для конфигураций по умолчанию основное окно просмотра настроено на следующую проекцию:

  • Для 2 проекций 1-е окно просмотра.
  • Для 3 проекций 2-е окно просмотра.
  • Для 4 проекций 2-е окно просмотра.
  • Для 5 проекций 3-е окно просмотра.

Как настроить проекции#

Рендеринг вьюпортов AppProjection управляется скриптом wall.h (находится в папке <UnigineSDK>/data/core/scripts/system/). Есть две возможные настройки в зависимости от того, как рендеринга основного монитора. Его может отрисовывать:

  • Движковый рендерер по умолчанию (так же, как при рендеринге обычного однооконного приложения).
  • Собственный рендерер AppProjection (что более безопасно, если вы собираетесь использовать асимметричную пирамиду видимости для основного монитора и изменять его матрицу modelview).
Примечание
Одновременно может использоваться только один из двух модулей рендеринга.

В следующем примере показано, как настроить конфигурацию камеры и выбрать средство визуализации для основной проекции.

1. Использование модуля рендеринга движка по умолчанию#

Первый вариант - визуализировать основной монитор средством визуализации движка по умолчанию.

  1. Если созданная конфигурация еще не поддерживается, установите первичную проекцию через Unigine::Plugins::AppProjection::setPrimary():

    Исходный код (C++)
    // Set the first projection as a primary one
    Unigine::Plugins::AppProjection::get()->setPrimary(1);
  2. Включите все неосновные проекции через Unigine::Plugins::AppProjection::SetEnabled(). Основную следует оставить отключенной так как она отрисовывается модулем рендеринга движка по умолчанию.

    Исходный код (C++)
    // Enable the 2nd projection in a row
    // The second argument of the function sets 'enabled' flag
    Unigine::Plugins::AppProjection::get()->setEnabled(1, 1);
  3. Установите матрицы проекции и modelview для вспомогательной проекции через Unigine::Plugins::AppProjection::SetProjection() и Unigine::Plugins::AppProjection::SetModelview().

    Исходный код (C++)
    // Settings for the 2nd projection
    Unigine::Plugins::AppProjection::get()->setProjection(1, projection_1);
    Unigine::Plugins::AppProjection::get()->setModelview(1, projection_1);

2. Использование средства визуализации AppProjection#

Другой вариант - визуализировать основной монитор средством визуализации AppProjection. Этот вариант можно использовать, например, если вы хотите настроить симметричные пирамиды видимости для всех мониторов.

  1. Установите проекцию, которая будет использоваться в качестве основной, и включите ее рендеринг с помощью AppProjection.

    Исходный код (C++)
    // Set the first projection as a primary one
    Unigine::Plugins::AppProjection::get()->setPrimary(1);
  2. Отключите рендеринг во вьюпорте UNIGINE по умолчанию через Unigine::Render::setEnabled():

    Исходный код (C++)
    Unigine::Render::setEnabled(0);
  3. Включите все проекции AppProjection, включая основную. В результате все вьюпорты будут отображаться самим средством визуализации AppProjection:

    Исходный код (C++)
    // Enable all projections
    Unigine::Plugins::AppProjection::get()->setEnabled(0, 1);
    Unigine::Plugins::AppProjection::get()->setEnabled(1, 1);
  4. Установите матрицы modelview и проекции для всех проекций.

    Исходный код (C++)
    // Settings for the 1st projection
    Unigine::Plugins::AppProjection::get()->setProjection(0, projection_0);
    Unigine::Plugins::AppProjection::get()->setModelview(0, modelview_0);
    
    // Settings for the 2nd projection
    Unigine::Plugins::AppProjection::get()->setProjection(1, projection_1);
    Unigine::Plugins::AppProjection::get()->setModelview(1, modelview_1);
Последнее обновление: 13.12.2021
Build: ()